''' ''' Form mit generalisiertem Domain-Table-Editor. ''' ''' ''' ''' ''' Vertragsverwaltung.TKB.VV.Sysadmin.DomainTable 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" ''' ''' Tabellenname übernehmen und Objekt DomainTable initialisieren ''' Initialisierung der Komponenten ''' ''' Tabellenname der Tabelle, welche über den Domaineditor editiert werden soll ''' Benötigt werden entsprechende Stored_Procedures, welche mit LBLLGEN_2 generiert wurden ''' pr_"Tablename"_SelectAll ''' pr_"Tablename"_Update ''' 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 ''' ''' Zuordnung der Daten aus Domaintable und Spaltentitel des Grids setzen ''' ''' ''' ''' 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 ''' ''' Schliessen des Formulars ''' ''' ''' ''' Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click Me.Close() End Sub ''' ''' Ruft BeendetnToolStipMenuItem_Click auf ''' ''' ''' ''' Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click BeendenToolStripMenuItem_Click(sender, e) End Sub ''' ''' 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. ''' ''' ''' ''' 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 ''' ''' Sichern der Daten ''' ''' ''' ''' 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" ''' ''' 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. ''' ''' ''' ''' Je Domaintable ist ein Eintrag in der Key-Tabelle notwendig 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 ''' ''' Aktualisierung der Default-Werte ''' ''' ''' ''' 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 ''' ''' Anzeige allfälliger Cellen-Tips ''' ''' ''' ''' 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