Public Class clsStammdaten_Bez Dim spalten As New Tabellenspalte Dim m_connectionstring As String Property Connectionstring As String Get Return m_connectionstring End Get Set(value As String) m_connectionstring = value End Set End Property Dim m_tablename_left As String Property Tablename_left As String Get Return m_tablename_left End Get Set(value As String) m_tablename_left = value get_data_left() Me.GroupBox1.Text = value End Set End Property Dim m_tablename_right As String Property Tablename_right As String Get Return m_tablename_right End Get Set(value As String) m_tablename_right = value get_data_right() Me.GroupBox2.Text = value If value = "Tarif" Or value = "Dentotar" Then Me.ToolStrip2.Visible = True If value = "Tarif" Then KeyField_right = "nrtarif" If value = "Dentotar" Then KeyField_right = "LeistungNrNeu" Else Me.ToolStrip2.Visible = False End If End Set End Property Dim m_tablename_bottom As String Property Tablename_bottom As String Get Return m_tablename_bottom End Get Set(value As String) m_tablename_bottom = value get_data_bottom() Me.GroupBox3.Text = value Refresh_Bottom() End Set End Property Dim m_keyfield_left As String Property KeyField_left As String Get Return m_keyfield_left End Get Set(value As String) m_keyfield_left = value End Set End Property Dim m_keyfieldbez_left As String Property Keyfieldbez_left As String Get Return m_keyfieldbez_left End Get Set(value As String) m_keyfieldbez_left = value End Set End Property Dim m_keyfield_right As String Property KeyField_right As String Get Return m_keyfield_right End Get Set(value As String) m_keyfield_right = value End Set End Property Dim m_keyfieldbez_right As String Property Keyfieldbez_right As String Get Return m_keyfieldbez_right End Get Set(value As String) m_keyfieldbez_right = value End Set End Property Dim db_left As New clsDB Dim db_right As New clsDB Dim db_bottom As New clsDB Dim Focus_Left As Boolean = True Private Sub get_data_left() Try db_left.dsDaten.Tables.Clear() db_left.Get_Tabledata(Me.Tablename_left) Me.c1Datenleft.DataSource = db_left.dsDaten.Tables(0) spalten.Spaltentitel_aktualisieren(Me.c1Datenleft, Me.Tablename_left, db_left.dsDaten.Tables(0)) Catch End Try End Sub Private Sub get_data_right() Try db_right.dsDaten.Tables.Clear() db_right.Get_Tabledata(Me.Tablename_right) Me.c1DatenRight.DataSource = db_right.dsDaten.Tables(0) spalten.Spaltentitel_aktualisieren(Me.c1DatenRight, Me.Tablename_right, db_right.dsDaten.Tables(0)) Catch End Try End Sub Private Sub get_data_bottom(Optional wherestatement As String = "") Try db_bottom.dsDaten.Tables.Clear() db_bottom.Get_Tabledata(Me.Tablename_bottom, wherestatement) Me.c1DatenBottom.DataSource = db_bottom.dsDaten.Tables(0) spalten.Spaltentitel_aktualisieren(Me.c1DatenBottom, Me.Tablename_bottom, db_bottom.dsDaten.Tables(0)) Me.C1DropDownLeft.DataSource = db_left.dsDaten.Tables(0) Me.C1DropDownLeft.DisplayMember = Me.Keyfieldbez_left Me.C1DropDownLeft.ValueMember = Me.KeyField_left Me.c1DatenBottom.Columns(Me.KeyField_left).DropDown = Me.C1DropDownLeft Me.C1DropDownLeft.ValueTranslate = True Me.C1DropDownLeft.DisplayColumns(0).Width = 0 Me.c1DatenBottom.Columns(Me.KeyField_left).ValueItems.Translate = True Me.C1DropDownRight.DataSource = db_right.dsDaten.Tables(0) Me.C1DropDownRight.DisplayMember = Me.Keyfieldbez_right Me.C1DropDownRight.ValueMember = Me.KeyField_right Me.c1DatenBottom.Columns(Me.KeyField_right).DropDown = Me.C1DropDownRight Me.C1DropDownRight.ValueTranslate = True Me.C1DropDownRight.DisplayColumns(0).Width = 0 Me.c1DatenBottom.Columns(Me.KeyField_right).ValueItems.Translate = True Catch ex As Exception End Try End Sub Private Sub clsStammdaten_Bez_Load(sender As Object, e As EventArgs) Handles Me.Load Me.BtnFocusRight.Left = Me.Panel1.Width - 10 - Me.BtnFocusRight.Width Me.BtnVerbinden.Left = Me.SplitContainer2.SplitterDistance - (Me.BtnVerbinden.Width / 2) clsStammdaten_Bez_Resize(sender, e) End Sub Private Sub clsStammdaten_Bez_Resize(sender As Object, e As EventArgs) Handles Me.Resize Me.BtnFocusRight.Left = Me.Panel1.Width - 10 - Me.BtnFocusRight.Width Me.BtnVerbinden.Left = Me.SplitContainer2.SplitterDistance - (Me.BtnVerbinden.Width / 2) End Sub Private Sub ToolStrip1_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClicked End Sub Private Sub BtnFocusLeft_Click(sender As Object, e As EventArgs) Handles BtnFocusLeft.Click Me.Focus_Left = True refresh_bottom() End Sub Private Sub BtnFocusRight_Click(sender As Object, e As EventArgs) Handles BtnFocusRight.Click Me.Focus_Left = False Refresh_Bottom() End Sub Sub Refresh_Bottom() Try Dim s As String If Me.Focus_Left Then s = " where " + Me.KeyField_left + "=" + Me.c1Datenleft.Columns(KeyField_left).Value.ToString Else s = " where " + Me.KeyField_right + "=" + Me.c1DatenRight.Columns(KeyField_right).Value.ToString End If Me.get_data_bottom(s) Catch End Try End Sub Private Sub c1Datenleft_RowColChange(sender As Object, e As C1.Win.C1TrueDBGrid.RowColChangeEventArgs) Handles c1Datenleft.RowColChange, c1DatenRight.RowColChange If db_bottom.dsDaten.HasChanges Then If MsgBox("Daten wurden verändert. Wollen Sie diese speichern?", MsgBoxStyle.YesNo + vbQuestion) = MsgBoxResult.Yes Then db_bottom.Update_Data() End If End If Refresh_Bottom() End Sub Private Sub C1DatenBottom_AfterColUpdate(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.ColEventArgs) Handles c1DatenBottom.AfterColUpdate Dim i As Integer For i = 0 To Me.C1DatenBottom.Columns.Count - 1 If LCase(Me.C1DatenBottom.Columns(i).DataField) = "mutiert_am" Then Me.C1DatenBottom.Columns(i).Value = Now If LCase(Me.c1DatenBottom.Columns(i).DataField) = "mutierer" Then Me.c1DatenBottom.Columns(i).Value = Globals.ActUser Next End Sub Private Sub BtnVerbinden_Click(sender As Object, e As EventArgs) Handles BtnVerbinden.Click Dim s As String If Me.GroupBox2.Text = "Dentotar" Then s = Me.c1DatenRight.Columns(KeyField_right).Value s = s.Replace(".", "") If Len(s) < 5 Then MsgBox("Bitte wählen Sie eine Tarifpostionen mit einer 5-stelligen Nummer") Exit Sub End If End If Dim r As DataRow r = db_bottom.dsDaten.Tables(0).NewRow If Me.GroupBox2.Text = "Dentotar" Then r("Dentotar") = True r("nrtarif") = s Else r("Dentotar") = False r(KeyField_right) = Me.c1DatenRight.Columns(KeyField_right).Value End If r(KeyField_left) = Me.c1Datenleft.Columns(KeyField_left).Value r("erstellt_am") = Now r("mutiert_am") = Now r("mutierer") = Globals.actuser r("aktiv") = True db_bottom.dsDaten.Tables(0).Rows.Add(r) db_bottom.Update_Data() Refresh_Bottom() End Sub Private Sub ToolStripButton5_Click(sender As Object, e As EventArgs) Handles ToolStripButton5.Click db_bottom.Update_Data() End Sub Private Sub btnStandard_Click(sender As Object, e As EventArgs) Handles btnStandard.Click Me.Tablename_right = "Tarif" End Sub Private Sub btnDentotar_Click(sender As Object, e As EventArgs) Handles btnDentotar.Click Me.Tablename_right = "Dentotar" End Sub End Class