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.

255 lines
9.9 KiB

'''<summary> SLAKatalog-Verwaltung</summary>
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"
''' <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()
Dim tblname As String = "SLAKatalog"
Domaintable = New TKB.VV.SLA.clsSLAKatalogdaten(tblname)
Me.InitializeComponent()
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
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
''' <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
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()
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) = "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
''' <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.Columns(e.ColIndex).DataField
ts.getspalte()
e.CellTip = ts.TipText
Catch
End Try
ts = Nothing
End Sub
#End Region
End Class