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