diff --git a/app/DD-Record-Organiser/ModuleHelperMethods.vb b/app/DD-Record-Organiser/ModuleHelperMethods.vb index c08caac..31782a5 100644 --- a/app/DD-Record-Organiser/ModuleHelperMethods.vb +++ b/app/DD-Record-Organiser/ModuleHelperMethods.vb @@ -405,10 +405,13 @@ stopwatch.Start() End Sub - Public Sub Done() + Public Function Done() As Long stopwatch.Stop() - Console.WriteLine("{0} took {1} milliseconds to complete", label, stopwatch.ElapsedMilliseconds) - End Sub + Dim message = String.Format("{0} took {1} milliseconds to complete", label, stopwatch.ElapsedMilliseconds) + Console.WriteLine(message) + If LogErrorsOnly = False Then ClassLogger.Add(message, False) + Return stopwatch.ElapsedMilliseconds + End Function End Class diff --git a/app/DD-Record-Organiser/frmConstructor_Main.vb b/app/DD-Record-Organiser/frmConstructor_Main.vb index 53a6099..570b629 100644 --- a/app/DD-Record-Organiser/frmConstructor_Main.vb +++ b/app/DD-Record-Organiser/frmConstructor_Main.vb @@ -221,7 +221,7 @@ Public Class frmConstructor_Main Me.VWPMO_WF_ACTIVETableAdapter.Connection.ConnectionString = MyConnectionString Dim SQL = String.Format("SELECT *, [dbo].[FNPMO_GETOBJECTCAPTION]('{0}','FORMVIEW_TITLE' + CONVERT(VARCHAR(5), FORM_VIEW_ID), {1}) AS 'CAPTION' " & _ "FROM VWPMO_CONSTRUCTOR_FORMS WHERE SCREEN_ID = {2} AND CONSTRUCT_ID = {3} ORDER BY SEQUENCE", USER_LANGUAGE, CURRENT_SCREEN_ID, CURRENT_SCREEN_ID, CONSTRUCTORID) - sd() + DT_VWPMO_CONSTRUCTOR_FORMS = ClassDatabase.Return_Datatable(SQL) DT_CONSTRUCT_VIEW = ClassDatabase.Return_Datatable("SELECT * FROM TBPMO_FORM_CONSTRUCTOR WHERE GUID = " & CONSTRUCTORID) If DT_CONSTRUCT_VIEW.Rows.Count = 1 Then @@ -241,7 +241,6 @@ Public Class frmConstructor_Main 'System.Windows.Forms.MessageBox.Show(ex.Message) End Try Me.Cursor = Cursors.Default - End Sub #Region "Layout" @@ -565,28 +564,6 @@ Public Class frmConstructor_Main End Sub - 'Public Function Get_Grid_Sql(ConstructorId As Integer, FormId As Integer) - ' If GRID_TYPE = GridType.Grid Then - ' _ENTITYSQL = "SELECT T.* FROM VWTEMP_PMO_FORM" & FormId.ToString & " T" - ' Else 'Tiles und Carousel bekommen Quick View - ' _ENTITYSQL = String.Format("SELECT SQL_QUICK_VIEW FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0} AND FORM_ID = {1}", ConstructorId, FormId) - ' _ENTITYSQL = ClassDatabase.Execute_Scalar(_ENTITYSQL, True) - ' If _ENTITYSQL = String.Empty Then - ' _ENTITYSQL = "SELECT T.* FROM VWTEMP_PMO_FORM" & FormId.ToString & " T" - ' If IS_SINGLE_RECORD = True Or FORM_TYPE = 5 Then - - ' Else - ' GRID_TYPE = GridType.Grid - ' GridControlMain.MainView = grvwGrid - ' VIEW_ID = 3 - ' End If - - - ' GridControlMain.MainView = grvwGrid - ' End If - ' End If - 'End Function - Public Function Get_Grid_Sql(ConstructorId As Integer, FormId As Integer, ConstructorDetailID As Integer) Try If GRID_TYPE = GridType.Grid Then @@ -594,19 +571,13 @@ Public Class frmConstructor_Main _VIEWNAME = "VWTEMP_PMO_FORM" & FormId.ToString _ENTITYSQL = "SELECT T.* FROM VWTEMP_PMO_FORM" & FormId.ToString & " T" Else 'Tiles und Carousel bekommen Quick View - ' Define the filter - Dim DT As DataTable = DT_VWPMO_CONSTRUCTOR_FORMS - Dim filter As String = "FORM_ID = " & FormId & " AND SCREEN_ID = " & CURRENT_SCREEN_ID - ' Filter the rows using Select() method of DataTable - Dim FilteredRows As DataRow() = DT.Select(filter) + ' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS + Dim query = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() + Select form + Where form.Item("FORM_ID") = FormId - For Each row As DataRow In FilteredRows - _ENTITYSQL = row("SQL_QUICK_VIEW") - ' ListBox1.Items.Add(String.Format("{0}, {1}", row("CompanyName"), row("City"))) - Next + _ENTITYSQL = query.Single().Item("SQL_QUICK_VIEW") - ' _ENTITYSQL = String.Format("SELECT SQL_QUICK_VIEW FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0} AND FORM_ID = {1} AND SCREEN_ID = {2}", ConstructorId, FormId, CURRENT_SCREEN_ID) - ' _ENTITYSQL = ClassDatabase.Execute_Scalar(_ENTITYSQL, True) If _ENTITYSQL = String.Empty Then _ENTITYSQL = "SELECT T.* FROM VWTEMP_PMO_FORM" & FormId.ToString & " T" If IS_SINGLE_RECORD = True Or FORM_TYPE = 5 Then @@ -1018,88 +989,83 @@ Public Class frmConstructor_Main End Sub Sub Load_Tree_View(ConstructorId As Integer) - Dim sw As New Stopwatch - sw.Start() + Dim sw As New SW("Load_Tree_View") + TreeViewMain.Nodes.Clear() - Dim SQL As String - Dim DT, DT2, DT3 As DataTable - ' Daten für Level1 Nodes Laden - SQL = String.Format("SELECT *, [dbo].[FNPMO_GETOBJECTCAPTION]('{0}','FORMVIEW_TITLE' + CONVERT(VARCHAR(5), FORM_VIEW_ID), {1}) AS 'CAPTION' " & _ - "from VWPMO_CONSTRUCTOR_FORMS WHERE PARENT_ID = 0 AND CONSTRUCT_ID = {2} AND SCREEN_ID = {3} ORDER BY SEQUENCE", USER_LANGUAGE, CURRENT_SCREEN_ID, ConstructorId, CURRENT_SCREEN_ID) - DT = ClassDatabase.Return_Datatable(SQL) + ' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS + Dim query1 = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() + Select form + Order By form.Item("SEQUENCE") + Where form.Item("PARENT_ID") = 0 - If DT Is Nothing Then - Exit Sub - End If + Dim Rows1 = query1.ToList() - If DT.Rows.Count >= 1 Then - For Each Row1 As DataRow In DT.Rows - Dim LEVEL1_NODE As TreeNode - Dim LEVEL2_NODE As TreeNode - Dim LEVEL3_NODE As TreeNode - Dim LEVEL1_TITLE = Row1.Item("CAPTION").ToString - Dim LEVEL1_ID = Row1.Item("FORM_ID").ToString + For Each Row1 In Rows1 - ' Rootnode erstellen und taggen - LEVEL1_NODE = New TreeNode(LEVEL1_TITLE) - LEVEL1_NODE.Tag = LEVEL1_ID + Dim LEVEL1_NODE As TreeNode + Dim LEVEL2_NODE As TreeNode + Dim LEVEL3_NODE As TreeNode - ' TreeView Rootnode einfügen + Dim LEVEL1_TITLE = Row1.Item("CAPTION").ToString + Dim LEVEL1_ID = Row1.Item("FORM_ID").ToString - TreeViewMain.Nodes.Add(LEVEL1_NODE) - Dim SQL2 As String - ' Daten für Level2 Nodes Laden - SQL2 = String.Format("SELECT *, [dbo].[FNPMO_GETOBJECTCAPTION]('{0}','FORMVIEW_TITLE' + CONVERT(VARCHAR(5), FORM_VIEW_ID), {1}) AS 'CAPTION' " & _ - "FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {2} AND PARENT_ID = {3} ORDER BY SEQUENCE", USER_LANGUAGE, CURRENT_SCREEN_ID, ConstructorId, LEVEL1_ID) - If LogErrorsOnly = False Then ClassLogger.Add(" >> Level2 Nodes SQL: " & SQL2, False) - DT2 = ClassDatabase.Return_Datatable(SQL2) + ' Rootnode erstellen und taggen + LEVEL1_NODE = New TreeNode(LEVEL1_TITLE) + LEVEL1_NODE.Tag = LEVEL1_ID - If Not (DT2 Is Nothing) Then - For Each row As DataRow In DT2.Rows - Dim LEVEL2_TITLE As String = row.Item("CAPTION").ToString - Dim LEVEL2_ID As Integer = row.Item("FORM_ID") - Dim LEVEL2_PARENT_ID As Integer = row.Item("PARENT_ID") + ' TreeView Rootnode einfügen + TreeViewMain.Nodes.Add(LEVEL1_NODE) - ' Node erstellen.. - LEVEL2_NODE = New TreeNode(LEVEL2_TITLE) - LEVEL2_NODE.Tag = LEVEL2_ID - ' ..und einfügen - LEVEL1_NODE.Nodes.Add(LEVEL2_NODE) + ' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS + Dim query2 = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() + Select form + Order By form.Item("SEQUENCE") + Where form.Item("PARENT_ID") = LEVEL1_ID - ' Daten für Level3 Nodes laden - SQL = String.Format("SELECT *, [dbo].[FNPMO_GETOBJECTCAPTION]('{0}','FORMVIEW_TITLE' + CONVERT(VARCHAR(5), FORM_VIEW_ID), {1}) AS 'CAPTION' " & _ - "FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {2} AND PARENT_ID = {3} ORDER BY SEQUENCE", USER_LANGUAGE, CURRENT_SCREEN_ID, ConstructorId, LEVEL2_ID) - If LogErrorsOnly = False Then ClassLogger.Add(" >> Level3 Nodes SQL " & SQL, False) - DT3 = ClassDatabase.Return_Datatable(SQL) + Dim Rows2 = query2.ToList() - For Each subrow As DataRow In DT3.Rows - Dim LEVEL3_TITLE As String = subrow.Item("CAPTION") - Dim LEVEL3_ID As Integer = subrow.Item("FORM_ID") + For Each Row2 In Rows2 - ' Node erstellen.. - LEVEL3_NODE = New TreeNode(LEVEL3_TITLE) - LEVEL3_NODE.Tag = LEVEL3_ID - ' ..und einfügen - LEVEL2_NODE.Nodes.Add(LEVEL3_NODE) - Next - Next + Dim LEVEL2_TITLE As String = Row2.Item("CAPTION").ToString + Dim LEVEL2_ID As Integer = Row2.Item("FORM_ID") + Dim LEVEL2_PARENT_ID As Integer = Row2.Item("PARENT_ID") - End If + ' Node erstellen.. + LEVEL2_NODE = New TreeNode(LEVEL2_TITLE) + LEVEL2_NODE.Tag = LEVEL2_ID + ' ..und einfügen + LEVEL1_NODE.Nodes.Add(LEVEL2_NODE) + ' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS + Dim query3 = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() + Select form + Order By form.Item("SEQUENCE") + Where form.Item("PARENT_ID") = LEVEL2_ID + + Dim Rows3 = query3.ToList() + + For Each Row3 In Rows3 + + Dim LEVEL3_TITLE As String = Row3.Item("CAPTION") + Dim LEVEL3_ID As Integer = Row3.Item("FORM_ID") + + ' Node erstellen.. + LEVEL3_NODE = New TreeNode(LEVEL3_TITLE) + LEVEL3_NODE.Tag = LEVEL3_ID + ' ..und einfügen + LEVEL2_NODE.Nodes.Add(LEVEL3_NODE) + + Next Next + Next - TreeViewMain.ExpandAll() - TreeViewMain.Nodes(0).EnsureVisible() - Dim elapsed As Double - elapsed = sw.Elapsed.TotalSeconds - sw.Stop() - sw.Reset() - If LogErrorsOnly = False Then ClassLogger.Add(" >> TreeView Load took " & Format(elapsed, "0.000000000") & " seconds", False) - End If TreeViewMain.ExpandAll() + TreeViewMain.Nodes(0).EnsureVisible() + + sw.Done() End Sub Sub Load_Tree_View_Data() Dim sw As New Stopwatch @@ -1122,8 +1088,14 @@ Public Class frmConstructor_Main Else ACT_EBENE = 1 End If - Dim Sql = "SELECT GUID from VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID - CONSTRUCTOR_DETAIL_ID = ClassDatabase.Execute_Scalar(Sql, True) + + Dim result = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() + Select form + Where form.Item("FORM_ID") = ENTITY_ID).Single() + + CONSTRUCTOR_DETAIL_ID = result.Item("GUID") + 'Dim Sql = "SELECT GUID from VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID + 'CONSTRUCTOR_DETAIL_ID = ClassDatabase.Execute_Scalar(Sql, True) Dim elapsed As Double elapsed = sw.Elapsed.TotalSeconds @@ -1145,6 +1117,12 @@ Public Class frmConstructor_Main Dim PARENT_ID As Integer Dim TYPE_ID As Integer If a = 0 Then + 'Dim result = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() + ' Select form + ' Where form.Item("FORM_ID") = childNodeLevel1.Tag).Single() + 'PARENT_ID = result.Item("PARENT_ID") + 'TYPE_ID = result.Item("FORM_TYPE_ID") + Dim sql As String = "SELECT PARENT_ID, FORM_TYPE_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & childNodeLevel1.Tag & " AND SCREEN_ID = " & CURRENT_SCREEN_ID Dim DT As DataTable = ClassDatabase.Return_Datatable(sql, "ShowNodeAmounts") PARENT_ID = DT.Rows(0).Item(0) @@ -1827,9 +1805,8 @@ Public Class frmConstructor_Main End Sub Sub Load_Entity_Data(ClickedLevel As Integer) Try - Dim sw As New Stopwatch - sw.Start() - Dim elapsed As Double + Dim sw As New SW("Load_Entity_Data") + Me.Cursor = Cursors.WaitCursor RECORD_CHANGED = False RECORD_ID = 0 @@ -1837,14 +1814,28 @@ Public Class frmConstructor_Main 'Setzen von Rechten 'GetSet_Rights() 'VerknüpfungenToolStripMenuItem.Enabled = False + + Dim result = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() + Select form + Where form.Item("FORM_ID") = ENTITY_ID).Single() + + LOAD_DIRECT = result.Item("LOAD_DIRECT") + CURRENT_CONSTRUCTOR_DETAIL_ID = result.Item("GUID") + CONTROL_DOCTYPE_MATCH = result.Item("CONTROL_DOCTYPE_MATCH") + SQL_RIGHT_READ_AND_VIEW_ONLY = result.Item("SQL_RIGHT_READ_AND_VIEW_ONLY") + SQL_RIGHT_WINDREAM_FORBIDDEN = result.Item("SQL_RIGHT_WINDREAM_VIEW") + + 'LOAD_DIRECT = ClassDatabase.Execute_Scalar("SELECT LOAD_DIRECT FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID) + 'CURRENT_CONSTRUCTOR_DETAIL_ID = ClassDatabase.Execute_Scalar("SELECT GUID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID) + 'CONTROL_DOCTYPE_MATCH = ClassDatabase.Execute_Scalar("SELECT CONTROL_DOCTYPE_MATCH FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID) + 'SQL_RIGHT_READ_AND_VIEW_ONLY = ClassDatabase.Execute_Scalar("SELECT SQL_RIGHT_READ_AND_VIEW_ONLY FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID) + 'SQL_RIGHT_WINDREAM_FORBIDDEN = ClassDatabase.Execute_Scalar("SELECT SQL_RIGHT_WINDREAM_VIEW FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID) + + + FORM_TYPE = ClassDatabase.Execute_Scalar("SELECT FORM_TYPE_ID FROM TBPMO_FORM WHERE GUID = " & ENTITY_ID) IS_SINGLE_RECORD = ClassDatabase.Execute_Scalar("SELECT SINGLE_RECORD FROM TBPMO_FORM WHERE GUID = " & ENTITY_ID) - LOAD_DIRECT = ClassDatabase.Execute_Scalar("SELECT LOAD_DIRECT FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID) - CURRENT_CONSTRUCTOR_DETAIL_ID = ClassDatabase.Execute_Scalar("SELECT GUID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID) POS_ENTITY = ClassDatabase.Execute_Scalar("SELECT POS_ENTITY FROM TBPMO_FORM WHERE GUID = " & ENTITY_ID) - CONTROL_DOCTYPE_MATCH = ClassDatabase.Execute_Scalar("SELECT CONTROL_DOCTYPE_MATCH FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID) - SQL_RIGHT_READ_AND_VIEW_ONLY = ClassDatabase.Execute_Scalar("SELECT SQL_RIGHT_READ_AND_VIEW_ONLY FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID) - SQL_RIGHT_WINDREAM_FORBIDDEN = ClassDatabase.Execute_Scalar("SELECT SQL_RIGHT_WINDREAM_VIEW FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID) If VIEW_ID_RUNTIME <> -1 Then GRID_TYPE_ID = VIEW_ID_RUNTIME Else @@ -1870,8 +1861,15 @@ Public Class frmConstructor_Main End Select SELECTED_RECORD_ID = 0 Dim DT As DataTable - Dim sql As String = "SELECT PARENT_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID - Dim PARENT_ID = ClassDatabase.Execute_Scalar(sql) + + ' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS + Dim result1 = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() + Select form + Where form.Item("FORM_ID") = ENTITY_ID).Single() + Dim PARENT_ID = result1.Item("PARENT_ID") + 'Dim sql As String = "SELECT PARENT_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID + 'Dim PARENT_ID = ClassDatabase.Execute_Scalar(sql) + If PARENT_ID Is Nothing Then MsgBox("Error in GetParentID for selectedNode - Check Logfile", MsgBoxStyle.Exclamation) Exit Sub @@ -1879,8 +1877,7 @@ Public Class frmConstructor_Main 'Abhängig von der Entität die Selektierungs-Daten laden Get_Grid_Sql(CONSTRUCTORID, ENTITY_ID, CURRENT_CONSTRUCTOR_DETAIL_ID) - elapsed = sw.Elapsed.TotalSeconds - If LogErrorsOnly = False Then ClassLogger.Add(" >> Get_Grid_Sql took " & Format(elapsed, "0.000000000") & " seconds", False) + 'Anzahl der Datensätze ENTITY_RECORD_COUNT = ClassDatabase.Execute_Scalar("SELECT COUNT(*) FROM TBPMO_RECORD where FORM_ID = " & ENTITY_ID, True) Select Case ClickedLevel @@ -1902,7 +1899,13 @@ Public Class frmConstructor_Main 'tslblEntity2.Visible = False 'tslblEntity3.Visible = False - EBENE1_COLUMNNAME = ClassDatabase.Execute_Scalar("SELECT COLUMN_NAME1 FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID) + + Dim result2 = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() + Select form + Where form.Item("FORM_ID") = ENTITY_ID).Single() + + EBENE1_COLUMNNAME = result2.Item("COLUMN_NAME1") + 'EBENE1_COLUMNNAME = ClassDatabase.Execute_Scalar("SELECT COLUMN_NAME1 FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID) EBENE2_COLUMNNAME = "" EBENE3_COLUMNNAME = "" EBENE2_GRID_RESULT = Nothing @@ -1949,7 +1952,12 @@ Public Class frmConstructor_Main ' End If 'End Select - EBENE2_COLUMNNAME = ClassDatabase.Execute_Scalar("SELECT COLUMN_NAME1 FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID) + Dim result3 = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() + Select form + Where form.Item("FORM_ID") = ENTITY_ID).Single() + EBENE2_COLUMNNAME = result3.Item("COLUMN_NAME1") + + 'EBENE2_COLUMNNAME = ClassDatabase.Execute_Scalar("SELECT COLUMN_NAME1 FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID) EBENE3_COLUMNNAME = "" EBENE2_GRID_RESULT = Nothing EBENE3_GRID_RESULT = Nothing @@ -1959,7 +1967,12 @@ Public Class frmConstructor_Main ACT_EBENE_STRING = EBENE3_ENTITY If LogErrorsOnly = False Then ClassLogger.Add(" >> Level 3 selected in TreeView", False) - EBENE3_COLUMNNAME = ClassDatabase.Execute_Scalar("SELECT COLUMN_NAME1 FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID) + Dim result4 = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() + Select form + Where form.Item("FORM_ID") = ENTITY_ID).Single() + + EBENE3_COLUMNNAME = result4.Item("COLUMN_NAME1") + 'EBENE3_COLUMNNAME = ClassDatabase.Execute_Scalar("SELECT COLUMN_NAME1 FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID) 'Wenn bereits ein Record für Ebene 1 gewählt wurde dann eisnchränken If EBENE2_RECID > 0 Then 'Parent-ID setzen @@ -1995,8 +2008,7 @@ Public Class frmConstructor_Main EBENE3_GRID_RESULT = Nothing End Select - elapsed = sw.Elapsed.TotalSeconds - elapsed - If LogErrorsOnly = False Then ClassLogger.Add(" >> Select Case entities took " & Format(elapsed, "0.000000000") & " seconds", False) + _ENTITYSTRING = ACT_EBENE_STRING PARENT_ID = PARENT_RECORDID act_FormViewID = ClassDatabase.Execute_Scalar("SELECT GUID FROM TBPMO_FORM_VIEW where FORM_ID = " & ENTITY_ID) @@ -2157,10 +2169,8 @@ Public Class frmConstructor_Main - elapsed = sw.Elapsed.TotalSeconds - sw.Stop() - sw.Reset() - If LogErrorsOnly = False Then ClassLogger.Add(" >> Load_Entity_Data took " & Format(elapsed, "0.000000000") & " seconds", False) + sw.Done() + If ENTITY_RELOAD_AFT_CONTROL_LOAD = True Then Reload_Entity_while_Control_Load() End If @@ -4669,16 +4679,28 @@ Public Class frmConstructor_Main Dim sw As Stopwatch = Stopwatch.StartNew() Dim elapsed As Double - Dim sql As String = "SELECT * from VWPMO_CONSTRUCTOR_FORMS WHERE PARENT_ID = 0 AND CONSTRUCT_ID = " & CONSTRUCTORID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID & " ORDER BY SEQUENCE" - Dim dt As DataTable = ClassDatabase.Return_Datatable(sql) - If Not IsNothing(dt) Then - If dt.Rows.Count >= 1 Then - Dim tn As TreeNode = TreeViewMain.Nodes(0) - TreeViewMain.SelectedNode = tn - TreeViewMain.Select() - End If + ' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS + Dim result = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() + Select form + Order By form.Item("SEQUENCE") + Where form.Item("PARENT_ID") = 0 + + If result.Count >= 1 Then + Dim tn As TreeNode = TreeViewMain.Nodes(0) + TreeViewMain.SelectedNode = tn + TreeViewMain.Select() End If + + 'Dim sql As String = "SELECT * from VWPMO_CONSTRUCTOR_FORMS WHERE PARENT_ID = 0 AND CONSTRUCT_ID = " & CONSTRUCTORID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID & " ORDER BY SEQUENCE" + 'Dim dt As DataTable = ClassDatabase.Return_Datatable(sql) + 'If Not IsNothing(dt) Then + ' If dt.Rows.Count >= 1 Then + ' Dim tn As TreeNode = TreeViewMain.Nodes(0) + ' TreeViewMain.SelectedNode = tn + ' TreeViewMain.Select() + ' End If + 'End If elapsed = sw.Elapsed.TotalSeconds sw.Stop() If LogErrorsOnly = False Then ClassLogger.Add(String.Format(" >> Load_Level1 took {0} to load", Format(elapsed, "0.000000000") & " seconds"), False) @@ -4832,25 +4854,34 @@ Public Class frmConstructor_Main Sub Load_ParentConnections() Try ' SELECT COLUMN_NAME1 FROM VWTEMP_cPMO_FORM - Dim sql = String.Format("SELECT TOP 1 PARENT_ID, [dbo].[FNPMO_GETOBJECTCAPTION]('{0}','FORMVIEW_TITLE' + CONVERT(VARCHAR(5), FORM_VIEW_ID), {1}) AS 'FORM_TITLE' " & _ - "from VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {2} AND SCREEN_ID = {3} AND FORM_ID = {4}", USER_LANGUAGE, CURRENT_SCREEN_ID, CONSTRUCTORID, CURRENT_SCREEN_ID, ENTITY_ID) - Dim DT As DataTable = ClassDatabase.Return_Datatable(sql, "Parent-Data") + 'Dim sql = String.Format("SELECT TOP 1 PARENT_ID, [dbo].[FNPMO_GETOBJECTCAPTION]('{0}','FORMVIEW_TITLE' + CONVERT(VARCHAR(5), FORM_VIEW_ID), {1}) AS 'FORM_TITLE' " & _ + ' "from VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {2} AND SCREEN_ID = {3} AND FORM_ID = {4}", USER_LANGUAGE, CURRENT_SCREEN_ID, CONSTRUCTORID, CURRENT_SCREEN_ID, ENTITY_ID) + 'Dim DT As DataTable = ClassDatabase.Return_Datatable(sql, "Parent-Data") - Dim Parent_ID = DT.Rows(0).Item(0) - Dim Title = DT.Rows(0).Item(1) - Dim Colname = "[" & ClassDatabase.Execute_Scalar("SELECT TOP 1 COLUMN_NAME1 from VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & Parent_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID, True) & "]" + ' TODO: LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS + Dim result = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() + Select form + Where form.Item("FORM_ID") = ENTITY_ID).Single() + Dim Parent_ID = result.Item("PARENT_ID") + Dim Title = result.Item("CAPTION") + Dim Colname = "[" & result.Item("COLUMN_NAME1") & "]" + + 'Dim Parent_ID = DT.Rows(0).Item(0) + 'Dim Title = DT.Rows(0).Item(1) + 'Dim Colname = "[" & ClassDatabase.Execute_Scalar("SELECT TOP 1 COLUMN_NAME1 from VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & Parent_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID, True) & "]" 'Load_GridViewParentEntity_Layout() If Not IsNothing(Parent_ID) And Not IsNothing(Colname) Then + Dim sql If Colname = "[]" Then - sql = "select * from VWTEMP_PMO_FORM" & Parent_ID.ToString + Sql = "select * from VWTEMP_PMO_FORM" & Parent_ID.ToString Else Try - sql = "select [Record-ID], " & Colname & " from VWTEMP_PMO_FORM" & Parent_ID.ToString + Sql = "select [Record-ID], " & Colname & " from VWTEMP_PMO_FORM" & Parent_ID.ToString Catch ex As Exception - sql = "select * from VWTEMP_PMO_FORM" & Parent_ID.ToString + Sql = "select * from VWTEMP_PMO_FORM" & Parent_ID.ToString End Try End If - Dim DTGrid As DataTable = ClassDatabase.Return_Datatable(sql, "VariableSelect ParentEntity") + Dim DTGrid As DataTable = ClassDatabase.Return_Datatable(Sql, "VariableSelect ParentEntity") GridControlParent.DataSource = Nothing GridViewParent.Columns.Clear() 'Databinding Neu