Public Class frmConstructorDesigner Dim formloaded As Boolean = False Private Sub TBPMO_FORM_CONSTRUCTORBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles TBPMO_FORM_CONSTRUCTORBindingNavigatorSaveItem.Click Me.Validate() Me.TBPMO_FORM_CONSTRUCTORBindingSource.EndEdit() Me.TableAdapterManager.UpdateAll(Me.DD_ECMAdmin) End Sub Private Sub frmConstructorDesigner_Load(sender As Object, e As EventArgs) Handles MyBase.Load 'TODO: Diese Codezeile lädt Daten in die Tabelle "DD_ECMAdmin1.TBPMO_FORM_CONSTRUCTOR". Sie können sie bei Bedarf verschieben oder entfernen. Try formloaded = False Me.TBPMO_FORM_CONSTRUCTORTableAdapter.Connection.ConnectionString = MyConnectionString Me.TBPMO_FORM_CONSTRUCTOR_DETAILTableAdapter.Connection.ConnectionString = MyConnectionString Load_Head() Dim sql1 As String = "SELECT T.GUID, T1.FORM_TITLE FROM TBPMO_FORM T, TBPMO_FORM_VIEW T1 WHERE T.GUID = T1.FORM_ID AND T.SHOW_FORM_CONSTRUCT = 1 AND T1.SCREEN_ID = 1 ORDER BY T1.FORM_TITLE" Dim DTFORMS As DataTable = ClassDatabase.Return_Datatable(sql1, "") 'FORM_IDComboBox.DataSource = DTFORMS 'FORM_IDComboBox.DisplayMember = DTFORMS.Columns(1).ColumnName 'FORM_IDComboBox.ValueMember = DTFORMS.Columns(0).ColumnName Dim sql2 As String = "SELECT T.GUID, T1.FORM_TITLE FROM TBPMO_FORM T, TBPMO_FORM_VIEW T1 WHERE T.FORM_TYPE_ID IN (1,2) AND T.GUID = T1.FORM_ID AND T.SHOW_FORM_CONSTRUCT = 1 AND T1.SCREEN_ID = 1 ORDER BY T1.FORM_TITLE" Dim DTParent As DataTable = ClassDatabase.Return_Datatable(sql2, "") 'PARENT_IDComboBox.DataSource = DTParent 'PARENT_IDComboBox.DisplayMember = DTParent.Columns(1).ColumnName 'PARENT_IDComboBox.ValueMember = DTParent.Columns(0).ColumnName Catch ex As Exception MsgBox("Error Loading Form:" & vbNewLine & ex.Message) End Try End Sub Sub Load_Head() Try Me.TBPMO_FORM_CONSTRUCTORTableAdapter.Fill(Me.DD_ECMAdmin.TBPMO_FORM_CONSTRUCTOR) Catch ex As Exception MsgBox("Error Loading Form:" & vbNewLine & ex.Message) End Try End Sub Private Sub Load_Detail(ID As Integer) Try Me.TBPMO_FORM_CONSTRUCTOR_DETAILTableAdapter.Fill(Me.DD_ECMAdmin.TBPMO_FORM_CONSTRUCTOR_DETAIL, ID) Catch ex As System.Exception MsgBox("Error Loading Details:" & vbNewLine & ex.Message) End Try End Sub Private Sub frmConstructorDesigner_Shown(sender As Object, e As EventArgs) Handles Me.Shown formloaded = True Load_TreeViewEbene() End Sub Sub Load_TreeViewEbene() Try Dim CONSTR_ID As Integer = CONSTRUCTOR_IDTextBox.Text Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT * from VWPMO_CONSTRUCTOR_FORMS WHERE FORM_TYPE_ID = 1 AND PARENT_ID = 0 AND FORM_TYPE_ID = 1 AND CONSTRUCT_ID = " & CONSTR_ID) If DT.Rows.Count = 1 Then TreeView1.Nodes.Clear() For Each rowEbene0 As DataRow In DT.Rows Dim Node As TreeNode Node = TreeView1.Nodes.Add("E1: " & rowEbene0.Item("FORM_TITLE").ToString) Node.Tag = rowEbene0.Item("GUID") 'Jetzt die Ebene1Knoten einhängen Dim dtEbene1 As DataTable = ClassDatabase.Return_Datatable("SELECT GUID, CONSTRUCT_ID, FORM_ID, FORM_TITLE FROM VWPMO_CONSTRUCTOR_FORMS WHERE PARENT_ID = " & rowEbene0.Item("FORM_ID") & _ " AND FORM_TYPE_ID in (2,5) AND CONSTRUCT_ID = " & CONSTR_ID & " ORDER BY SEQUENCE") If dtEbene1.Rows.Count > 0 Then For Each rowEbene1 As DataRow In dtEbene1.Rows Dim Node1 As TreeNode Node1 = Node.Nodes.Add("E2: " & rowEbene1.Item("FORM_TITLE").ToString) Node1.Tag = rowEbene1.Item("GUID") 'Jetzt die Ebene2 Knoten einhängen Dim dtEbene2 As DataTable = ClassDatabase.Return_Datatable("SELECT GUID, CONSTRUCT_ID, FORM_ID, FORM_TITLE FROM VWPMO_CONSTRUCTOR_FORMS WHERE PARENT_ID = " & rowEbene1.Item("FORM_ID") & _ " AND FORM_TYPE_ID in (3,5) AND CONSTRUCT_ID = " & CONSTR_ID & " ORDER BY SEQUENCE") If dtEbene2.Rows.Count > 0 Then For Each rowEbene2 As DataRow In dtEbene2.Rows Dim Node2 As TreeNode Node2 = Node1.Nodes.Add("E3: " & rowEbene2.Item("FORM_TITLE").ToString) Node2.Tag = rowEbene2.Item("GUID") Next End If Next End If Next TreeView1.ExpandAll() TreeView1.Nodes(0).EnsureVisible() Else MsgBox("Achtung Konfigurationsfehler: Mehrere oder keine Level 0 Entität gefunden!" & "Korrigieren Sie bitte Ihre Eingaben", MsgBoxStyle.Exclamation) End If Catch ex As Exception MsgBox("Error in Load_TreeView:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub Private Sub TBPMO_FORM_CONSTRUCTORBindingSource_CurrentChanged(sender As Object, e As EventArgs) Handles TBPMO_FORM_CONSTRUCTORBindingSource.CurrentChanged If formloaded = True Then Try If CONSTRUCTOR_IDTextBox.Text <> "" Then Load_TreeViewEbene() End If Catch ex As Exception MsgBox("Error Loading Construct-Data:" & vbNewLine & ex.Message) End Try End If End Sub Private Sub TreeView1_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles TreeView1.AfterSelect Try If Not TreeView1.SelectedNode Is Nothing Then Dim construct_id As Integer = Integer.Parse(TreeView1.SelectedNode.Tag) Me.tslblSaveDetail.Visible = False Load_Detail(construct_id) End If Catch ex As Exception MsgBox("Error in AfterSelect:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub Private Sub LEVEL1_SELECTCheckBox_CheckedChanged(sender As Object, e As EventArgs) Handles LEVEL1_SELECTCheckBox.CheckedChanged Try If LEVEL1_SELECTCheckBox.Checked Then SQL_SELECT_EBENE1TextBox.Enabled = True Else SQL_SELECT_EBENE1TextBox.Enabled = False End If Dim view As String If SQL_SELECT_EBENE1TextBox.Text <> "" Then view = SQL_SELECT_EBENE1TextBox.Text.ToUpper.Replace("SELECT * FROM ", "") view = view.Trim Dim Sql = "SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('" & view & "')" If LogErrorsOnly = False Then ClassLogger.Add(">> " & Sql, False) Dim DT As DataTable = ClassDatabase.Return_Datatable(Sql) If DT IsNot Nothing Then COLUMN_NAME1ComboBox.Items.Clear() For Each row As DataRow In DT.Rows COLUMN_NAME1ComboBox.Items.Add(row.Item(0)) Next End If End If Catch ex As Exception MsgBox("Error in LEVEL1_SELECTCheckBox:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub Private Sub tsbtnSave_Click(sender As Object, e As EventArgs) Handles tsbtnSave.Click Try Me.TBPMO_FORM_CONSTRUCTOR_DETAILBindingSource.EndEdit() If DD_ECMAdmin.TBPMO_FORM_CONSTRUCTOR_DETAIL.GetChanges Is Nothing = False Then Me.CHANGED_WHOTextBox1.Text = Environment.UserName Me.TBPMO_FORM_CONSTRUCTOR_DETAILBindingSource.EndEdit() Me.TBPMO_FORM_CONSTRUCTOR_DETAILTableAdapter.Update(DD_ECMAdmin.TBPMO_FORM_CONSTRUCTOR_DETAIL) tslblSaveDetail.Text = "Constructor-Details erfolgreich gespeichert - " & Now Me.tslblSaveDetail.Visible = True Else Me.tslblSaveDetail.Visible = False End If Catch ex As Exception MsgBox("Error in Save Constructor-Details:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub End Class