Imports System.Data Imports System.Data.Sql Imports System.Data.SqlClient Imports System.Data.SqlTypes Public Class frmAllgDomainEditor Dim ds As New DataSet Dim da As SqlDataAdapter Dim co As New SqlConnection Dim cb As SqlCommandBuilder Dim tablename As String #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, ByVal Connectionstring As String) ' Domaintable = New TKB.VV.Sysadmin.DomainTable(tblname) Me.InitializeComponent() ' Me.Text = "Domaineditor: " & tblname Me.tablename = tblname Me.co.ConnectionString = Connectionstring 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 Try Load_Table() Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub Load_Table() Try da = Nothing cb = Nothing Me.c1Daten.DataSource = Nothing Catch ex As Exception End Try Me.Text = Me.tablename da = New SqlDataAdapter("Select * from " & Me.tablename, Me.co) cb = New SqlCommandBuilder(da) da.Fill(ds, "ExtTable") Me.c1Daten.DataSource = ds.Tables(0) Me.c1Daten.DataMember = ds.Tables(0).TableName 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.ds.HasChanges Then Dim msgboxres As MsgBoxResult msgboxres = MsgBox("Daten wurnde verändert. Wollen Sie diese sichern?", MsgBoxStyle.YesNoCancel + MsgBoxStyle.Question) If msgboxres = MsgBoxResult.Cancel Then e.Cancel = True Exit Sub End If If msgboxres = MsgBoxResult.Yes Then Try da.Update(ds, "ExtTable") Catch ex As Exception MsgBox(ex.Message) End Try End If End If Try Me.co.Close() da.Dispose() co.Dispose() cb.Dispose() ds.Dispose() Catch ex As Exception MsgBox(ex.Message) End Try End Sub ''' ''' Sichern der Daten ''' ''' ''' ''' Private Sub TSBtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnSave.Click Try da.Update(ds, "ExtTable") Catch ex As Exception MsgBox(ex.Message) End Try End Sub #End Region Private Sub DomainList_AfterInsert(ByVal sender As System.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 Me.c1Daten.Columns(i).DataField = "aktiv" Then Me.c1Daten.Columns(i).Value = 1 End If If Me.c1Daten.Columns(i).DataField = "erstellt_am" Then Me.c1Daten.Columns(i).Value = Now End If If Me.c1Daten.Columns(i).DataField = "mutiert_am" Then Me.c1Daten.Columns(i).Value = Now End If If Me.c1Daten.Columns(i).DataField = "mutierer" Then Me.c1Daten.Columns(i).Value = Globals.MitarbeiterNr End If Next Catch End Try End Sub Private Sub c1daten_aftercellupdate(ByVal sender As System.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 Me.c1Daten.Columns(i).DataField = "mutiert_am" Then Me.c1Daten.Columns(i).Value = Now If Me.c1Daten.Columns(i).DataField = "mutierer" Then Me.c1Daten.Columns(i).Value = Globals.MitarbeiterNr If Me.c1Daten.Columns(i).DataField = "korrigiert_am" Then Me.c1Daten.Columns(i).Value = DBNull.Value Next Catch End Try End Sub End Class