''' SLAKatalog-Verwaltung Public Class frmSLAKatalog #Region "Deklarationen" Dim Domaintable As TKB.VV.SLA.clsSLAKatalogdaten Dim tablename As String Dim Zeiteinheittyp As DataTable Dim Zeiteinheittypdata As New TKB.VV.DB.myZeiteinheittyp Dim SLA As New TKB.VV.SLA.clsSLA Dim SLADaten As New DataTable Dim SpaltenTitel As New TKB.VV.Utils.Tabellenspalte Dim sec As New TKB.VV.Utils.MySecurity #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() Dim tblname As String = "SLAKatalog" Domaintable = New TKB.VV.SLA.clsSLAKatalogdaten(tblname) Me.InitializeComponent() 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 Me.C1Daten.DataSource = Domaintable.Tabledata Me.C1Daten.DataMember = Domaintable.Tabledata.Tables(0).TableName Me.SpaltenTitel.Spaltentitel_aktualisieren(Me.C1Daten, "SLAKatalog", Me.SLADaten) Me.Zeiteinheittypdata.cpMainConnectionProvider = Globals.conn Globals.conn.OpenConnection() Me.Zeiteinheittyp = Me.Zeiteinheittypdata.SelectAll_aktive Globals.conn.CloseConnection(True) Me.SLA.cpMainConnectionProvider = Globals.conn Me.SLADaten = SLA.SelectAll_Active Me.C1DropDownSLA.DataSource = Me.SLADaten Me.C1DropDownSLA.ValueMember = "SLANr" Me.C1DropDownSLA.DisplayMember = "Sla" Me.C1DropdownZeitheinheittyp.DataSource = Me.Zeiteinheittyp Me.C1DropdownZeitheinheittyp.ValueMember = "Zeiteinheittypnr" Me.C1DropdownZeitheinheittyp.DisplayMember = "Bezeichnung" Me.C1Daten.Columns("SLANr").DropDown = Me.C1DropDownSLA Me.C1Daten.Columns("Zeiteinheittypnr").DropDown = Me.C1DropdownZeitheinheittyp Me.C1Daten.Columns("SLANr").ValueItems.Translate = True Me.C1Daten.Columns("Zeiteinheittypnr").ValueItems.Translate = True Me.C1DropDownSLA.ValueTranslate = True Me.C1DropdownZeitheinheittyp.ValueTranslate = True Me.C1DropDownSLA.DisplayColumns(0).Width = 0 Me.C1DropDownSLA.DisplayColumns(1).Width = Me.C1DropDownSLA.Width Me.C1DropdownZeitheinheittyp.DisplayColumns(0).Width = 0 Me.C1DropdownZeitheinheittyp.DisplayColumns(1).Width = Me.C1DropdownZeitheinheittyp.Width sec.Set_Form_Security(Me) If Me.TSBtnSave.Visible = False Or Me.TSBtnSave.Enabled = False Then Me.C1Daten.AllowAddNew = False Me.C1Daten.AllowUpdate = False End If Dim i As Integer For i = 0 To Me.C1Daten.Splits(0).DisplayColumns.Count - 1 If Me.C1Daten.Columns(i).DataField = "SLANr" Then Me.C1Daten.Splits(0).DisplayColumns(i).Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Near End If Next 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 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() 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) = "securitylevel" Then Me.C1Daten.Columns(i).Value = 0 End If If LCase(Me.C1Daten.Columns(i).DataField) = "aktiv" Then Me.C1Daten.Columns(i).Value = 1 End If If LCase(Me.C1Daten.Columns(i).DataField) = "extern" Then Me.C1Daten.Columns(i).Value = 0 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.Columns(e.ColIndex).DataField ts.getspalte() e.CellTip = ts.TipText Catch End Try ts = Nothing End Sub #End Region End Class