''' 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