You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
236 lines
9.4 KiB
236 lines
9.4 KiB
''' <summary>
|
|
''' Form mit generalisiertem Domain-Table-Editor.
|
|
''' </summary>
|
|
''' <remarks>
|
|
''' <img src="SampleDomainEditor.png"/>
|
|
''' </remarks>
|
|
''' <seealso
|
|
''' cref="Vertragsverwaltung.TKB.VV.Sysadmin.DomainTable">Vertragsverwaltung.TKB.VV.Sysadmin.DomainTable</seealso>
|
|
Public Class frmDomainEditor
|
|
|
|
#Region "Deklarationen"
|
|
Dim Domaintable As TKB.VV.Sysadmin.DomainTable
|
|
Dim tablename As String
|
|
Dim SpaltenTitel As New TKB.VV.Utils.Tabellenspalte
|
|
#End Region
|
|
|
|
#Region "Formular-Funktionen"
|
|
''' <summary>
|
|
''' Tabellenname übernehmen und Objekt DomainTable initialisieren
|
|
''' Initialisierung der Komponenten
|
|
''' </summary>
|
|
''' <param name="tblname">Tabellenname der Tabelle, welche über den Domaineditor editiert werden soll</param>
|
|
''' <remarks>Benötigt werden entsprechende Stored_Procedures, welche mit LBLLGEN_2 generiert wurden
|
|
''' pr_"Tablename"_SelectAll
|
|
''' pr_"Tablename"_Update
|
|
''' </remarks>
|
|
Public Sub New(ByVal tblname As String)
|
|
Domaintable = New TKB.VV.Sysadmin.DomainTable(tblname)
|
|
Me.InitializeComponent()
|
|
Me.Text = "Domaineditor: " & tblname
|
|
Me.tablename = tblname
|
|
End Sub
|
|
''' <summary>
|
|
''' Zuordnung der Daten aus Domaintable und Spaltentitel des Grids setzen
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub frmDomainEditor_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
|
|
|
|
If Me.Domaintable.Tablename = "Auswertung" Then
|
|
Me.C1Daten.ContextMenuStrip = Me.ContextMenuStripAuswertung
|
|
End If
|
|
Me.C1Daten.DataSource = Domaintable.Tabledata
|
|
Me.C1Daten.DataMember = Domaintable.Tabledata.Tables(0).TableName
|
|
SpaltenTitel.Spaltentitel_aktualisieren(Me.C1Daten, Me.tablename, Me.Domaintable.Tabledata.Tables(0))
|
|
End Sub
|
|
|
|
|
|
''' <summary>
|
|
''' Schliessen des Formulars
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click
|
|
Me.Close()
|
|
End Sub
|
|
''' <summary>
|
|
''' Ruft BeendetnToolStipMenuItem_Click auf
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click
|
|
BeendenToolStripMenuItem_Click(sender, e)
|
|
End Sub
|
|
''' <summary>
|
|
''' Prüfung auf allfällige Daten-Changes. Wurden Daten verändert, kann der User entscheiden, ob gespeichert, nichtgespeichert oder
|
|
''' das Formular nicht gespeichert werden soll.
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub frmDomainEditor_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
|
|
If Me.Domaintable.Tabledata.HasChanges Then
|
|
Dim msg As New TKB.VV.Utils.MyMessage
|
|
Dim msgboxres As MsgBoxResult
|
|
msgboxres = msg.Show_MessageYesNoCancel(3)
|
|
If msgboxres = MsgBoxResult.Cancel Then
|
|
e.Cancel = True
|
|
Exit Sub
|
|
End If
|
|
If msgboxres = MsgBoxResult.Yes Then
|
|
Domaintable.Save_Data()
|
|
End If
|
|
End If
|
|
If UCase(Me.tablename) = "SPALTEN" Then
|
|
Globals.Spaltendaten.Rows.Clear()
|
|
End If
|
|
Domaintable.dispose()
|
|
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Sichern der Daten
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub TSBtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnSave.Click
|
|
Try
|
|
Domaintable.Save_Data()
|
|
If UCase(Me.tablename) = "SPALTEN" Then
|
|
Globals.Spaltendaten.Rows.Clear()
|
|
End If
|
|
If UCase(Me.tablename) = "TOOLTIP" Then
|
|
Globals.ToolTipDaten.Tables.Clear()
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message)
|
|
End Try
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "C1 Handling"
|
|
''' <summary>
|
|
''' Aktualisierung der Spalten mutiert_am und mutierern. Sofern noch kein Schlüsselwert gesetzt ist (bei neuem Datensatz)
|
|
''' wird dieser aus der Keytabelle ausgelesen und zugewiesen.
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks>Je Domaintable ist ein Eintrag in der Key-Tabelle notwendig</remarks>
|
|
Private Sub C1Daten_AfterColUpdate(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.ColEventArgs) Handles C1Daten.AfterColUpdate
|
|
'Aktualisieren von Mutierer und Mutiert_am
|
|
|
|
Dim i As Integer
|
|
Try
|
|
For i = 0 To Me.C1Daten.Columns.Count - 1
|
|
If LCase(Me.C1Daten.Columns(i).DataField) = "mutiert_am" Then Me.C1Daten.Columns(i).Value = Now
|
|
If LCase(Me.C1Daten.Columns(i).DataField) = "mutierer" Then Me.C1Daten.Columns(i).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value
|
|
Next
|
|
|
|
'neuer DB-Key auslösen, sofern kein Key vorhanden ist
|
|
If Me.C1Daten.Columns(0).Value Is DBNull.Value Then
|
|
Dim dbkey As New TKB.VV.DB.clsMyKey_Tabelle()
|
|
Dim key As Long
|
|
dbkey.cpMainConnectionProvider = conn
|
|
key = dbkey.get_dbkey(tablename)
|
|
Me.C1Daten.Columns(0).Value = key
|
|
For i = 0 To Me.C1Daten.Columns.Count - 1
|
|
If LCase(Me.C1Daten.Columns(i).DataField) = "mandantnr" Then
|
|
Me.C1Daten.Columns(i).Value = Globals.clsmitarbeiter.iMandantnr.Value
|
|
End If
|
|
If LCase(Me.C1Daten.Columns(i).DataField) = "erstellt_am" Then
|
|
Me.C1Daten.Columns(i).Value = Now
|
|
End If
|
|
If LCase(Me.C1Daten.Columns(i).DataField) = "aktiv" Then
|
|
Me.C1Daten.Columns(i).Value = 1
|
|
End If
|
|
Next
|
|
dbkey.Dispose()
|
|
End If
|
|
Catch
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Aktualisierung der Default-Werte
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub C1Daten_AfterInsert(ByVal sender As Object, ByVal e As System.EventArgs) Handles C1Daten.AfterInsert
|
|
'Dim i As Integer
|
|
''Defaulwerte erstellt_am, mutiert_am, mutierer und aktiv setzen
|
|
'Try
|
|
|
|
' For i = 0 To C1Daten.Columns.Count - 1
|
|
' If LCase(Me.C1Daten.Columns(i).DataField) = "aktiv" Then
|
|
' Me.C1Daten.Columns(i).Value = 1
|
|
' End If
|
|
' If LCase(Me.C1Daten.Columns(i).DataField) = "mutiert_am" Then
|
|
' Me.C1Daten.Columns(i).Value = Now
|
|
' End If
|
|
' If LCase(Me.C1Daten.Columns(i).DataField) = "mutierer" Then
|
|
' Me.C1Daten.Columns(i).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value
|
|
' End If
|
|
' If LCase(Me.C1Daten.Columns(i).DataField) = "mandantnr" Then
|
|
' Me.C1Daten.Columns(i).Value = Globals.clsmitarbeiter.iMandantnr.Value
|
|
' End If
|
|
' If LCase(Me.C1Daten.Columns(i).DataField) = "mandnat" Then
|
|
' Me.C1Daten.Columns(i).Value = Globals.clsmitarbeiter.iMandantnr.Value
|
|
' End If
|
|
' Next
|
|
'Catch
|
|
'End Try
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Anzeige allfälliger Cellen-Tips
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub C1Daten_FetchCellTips(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchCellTipsEventArgs) Handles C1Daten.FetchCellTips
|
|
Dim ts As New TKB.VV.Utils.Tabellenspalte
|
|
ts.Tabelle = Me.tablename
|
|
Try
|
|
'ts.Feld = Me.C1Daten.Splits(0).DisplayColumns(e.ColIndex).Name
|
|
ts.Feld = Me.C1Daten.Columns(e.ColIndex).DataField
|
|
ts.getspalte()
|
|
e.CellTip = ts.TipText
|
|
Catch
|
|
End Try
|
|
ts = Nothing
|
|
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
|
|
Private Sub ReportdateiDBToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ReportdateiDBToolStripMenuItem.Click
|
|
Me.OpenFileDialog1.Filter = "Report-Dateien|*.rpt|Alle Dateien|*.*"
|
|
Me.OpenFileDialog1.ShowDialog()
|
|
If Me.OpenFileDialog1.FileName <> "" Then
|
|
Dim dms As New TKB.VV.Utils.MyDocMgmt
|
|
Me.C1Daten.Columns("CR_Filename").Value = dms.Save_RptDatei(Me.C1Daten.Columns("Auswertungnr").Value, Me.OpenFileDialog1.FileName)
|
|
dms = Nothing
|
|
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub ReportdateiFilesystemToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ReportdateiFilesystemToolStripMenuItem.Click
|
|
Me.SaveFileDialog1.Filter = "Report-Dateien|*.rpt|Alle Dateien|*.*"
|
|
Me.SaveFileDialog1.ShowDialog()
|
|
If Me.SaveFileDialog1.FileName <> "" Then
|
|
Dim dms As New TKB.VV.Utils.MyDocMgmt
|
|
dms.Get_RptDatei(Me.C1Daten.Columns("Auswertungnr").Value, Me.SaveFileDialog1.FileName)
|
|
dms = Nothing
|
|
End If
|
|
|
|
End Sub
|
|
End Class
|