This commit is contained in:
SchreiberM
2016-07-01 09:00:01 +02:00
parent b8f390b15b
commit fa66fe01eb
20 changed files with 1526 additions and 725 deletions

View File

@@ -13,9 +13,8 @@ Imports WINDREAMLib
Imports System.Runtime.InteropServices
Public Class frmConstructor_Main
Private DT_VWPMO_CONSTRUCTOR_FORMS As DataTable
Private DT_ENTITY_DATA As DataTable
Private DT_FORM As DataTable
Private Const SEE_MASK_INVOKEIDLIST = &HC
Private Const SEE_MASK_NOCLOSEPROCESS = &H40
Private Const SEE_MASK_FLAG_NO_UI = &H400
@@ -46,6 +45,13 @@ Public Class frmConstructor_Main
Private CONSTRUCTORID As Integer
Private CONSTRUCTOR_DETAIL_ID As Integer
Private DT_CONSTRUCT_VIEW As DataTable
Private DT_VWPMO_CONSTRUCTOR_FORMS As DataTable
Private DT_ENTITY_DATA As DataTable
Private DT_FORM As DataTable
Private DT_TREEVIEW_PER_CONTROLS As DataTable
Private CONTROL_NAVIGATION As Boolean = False
Private EBENE2_PARENT_ID As Integer
Private EBENE3_PARENT_ID As Integer
Private ACT_EBENE As Integer
@@ -56,6 +62,8 @@ Public Class frmConstructor_Main
Private POS_SQL As String = ""
Private POS_RECORD_ID
Private TreeView_perControl As Boolean = False
Dim IsTopFirstRow As Boolean = True
Private RightMouse_Clicked = False
@@ -119,10 +127,12 @@ Public Class frmConstructor_Main
Private FOLLOW_UPisActive As Boolean = False
Private DT_FU_Record As DataTable
Private DT_FU_ENTITY As DataTable
Private gridGUID = 2
' Private gridGUID = 2
Private COL_ARRAY_RESULTLIST As List(Of String)
Private DT_WINDREAM_RESULTLIST_DEF As DataTable
Private DT_WINDREAM_RESULTLIST As DataTable
Private DT_RESULTLIST_OPTIONS As DataTable
Private USER_RESULTLIST_CONFIG_GUID As Integer = 0
Private DT_TBPMO_FORM_VIEW As DataTable
@@ -148,6 +158,7 @@ Public Class frmConstructor_Main
Private _ENTITYSTRING As String
Private RESULT_DOC_PATH
Private RESULT_OBJECTTYPE
Private BACKGROUND_HELPER As ClassBackgroundHelper
@@ -224,41 +235,51 @@ Public Class frmConstructor_Main
FormDesignerToolStripMenuItem.Visible = False
End If
Try
'SplitCont_Details.Collapsed = True
CONSTRUCTORID = CURRENT_CONSTRUCTOR_ID
ClassWindowLocation.LoadFormLocationSize(Me, CONSTRUCTORID, CURRENT_SCREEN_ID, "CONSTRUCTOR_MAIN")
VWPMO_WF_USER_ACTIVETableAdapter.Connection.ConnectionString = MyConnectionString
Me.TBPMO_FILES_USERTableAdapter.Connection.ConnectionString = MyConnectionString
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)
'Try
''SplitCont_Details.Collapsed = True
'CONSTRUCTORID = CURRENT_CONSTRUCTOR_ID
ClassWindowLocation.LoadFormLocationSize(Me, CONSTRUCTORID, CURRENT_SCREEN_ID, "CONSTRUCTOR_MAIN")
VWPMO_WF_USER_ACTIVETableAdapter.Connection.ConnectionString = MyConnectionString
Me.TBPMO_FILES_USERTableAdapter.Connection.ConnectionString = MyConnectionString
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)
DT_VWPMO_CONSTRUCTOR_FORMS = ClassDatabase.Return_Datatable(SQL)
DT_CONSTRUCT_VIEW = ClassDatabase.Return_Datatable("SELECT * FROM TBPMO_FORM_CONSTRUCTOR WHERE GUID = " & CONSTRUCTORID)
Dim SEL1 = String.Format("SELECT * FROM TBPMO_FORM WHERE GUID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE SCREEN_ID = {0} AND CONSTRUCT_ID = {1})", CURRENT_SCREEN_ID, CONSTRUCTORID)
DT_ENTITY_DATA = ClassDatabase.Return_Datatable(SEL1)
DT_VWPMO_CONSTRUCTOR_FORMS = ClassDatabase.Return_Datatable(SQL)
SQL = String.Format("select * from TBPMO_STRUCTURE_NODES where ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", CONSTRUCTORID)
Dim DT As DataTable = ClassDatabase.Return_Datatable(SQL)
If DT.Rows.Count > 1 Then
TreeView_perControl = True
DT_TREEVIEW_PER_CONTROLS = DT
Me.SplitContainerTop.Panel1.Controls.Remove(Me.TreeViewMain)
Me.SplitContainer1.Panel1.Controls.Add(Me.TreeViewMain)
SplitContainer1.Collapsed = False
SplitContainer1.PanelVisibility = SplitPanelVisibility.Both
SplitContainerTop.Collapsed = True
SplitContainerTop.PanelVisibility = SplitPanelVisibility.Panel2
CONTROL_NAVIGATION = True
End If
DT_CONSTRUCT_VIEW = ClassDatabase.Return_Datatable("SELECT * FROM TBPMO_FORM_CONSTRUCTOR WHERE GUID = " & CONSTRUCTORID)
Dim SEL1 = String.Format("SELECT * FROM TBPMO_FORM WHERE GUID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE SCREEN_ID = {0} AND CONSTRUCT_ID = {1})", CURRENT_SCREEN_ID, CONSTRUCTORID)
DT_ENTITY_DATA = ClassDatabase.Return_Datatable(SEL1)
If DT_CONSTRUCT_VIEW.Rows.Count = 1 Then
'Load Input Grid
Me.Text = DT_CONSTRUCT_VIEW.Rows(0).Item("FORM_TITLE")
'Die Standards ein/ausblenden
End If
Load_Tree_View(CONSTRUCTORID)
If DT_CONSTRUCT_VIEW.Rows.Count = 1 Then
'Load Input Grid
Me.Text = DT_CONSTRUCT_VIEW.Rows(0).Item("FORM_TITLE")
'Die Standards ein/ausblenden
End If
Load_Tree_View(CONSTRUCTORID)
Dim sql_ResultList = "select * from TBPMO_WINDREAM_RESULTLIST_CONFIG"
DT_WINDREAM_RESULTLIST_DEF = ClassDatabase.Return_Datatable(sql_ResultList, "GETRESULTLIST KONFIG")
FORM_LOADED = True
Dim elapsed As Double
elapsed = sw.Elapsed.TotalSeconds
sw.Stop()
sw.Reset()
If LogErrorsOnly = False Then ClassLogger.Add(" >> Form Load took " & Format(elapsed, "0.000000000") & " seconds", False)
Catch ex As System.Exception
MsgBox("Error while Loading Form part 2" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
'System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
FORM_LOADED = True
Dim elapsed As Double
elapsed = sw.Elapsed.TotalSeconds
sw.Stop()
sw.Reset()
If LogErrorsOnly = False Then ClassLogger.Add(" >> Form Load took " & Format(elapsed, "0.000000000") & " seconds", False)
'Catch ex As System.Exception
' MsgBox("Error while Loading Form part 2" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
' 'System.Windows.Forms.MessageBox.Show(ex.Message)
'End Try
Me.Cursor = Cursors.Default
End Sub
@@ -368,7 +389,12 @@ Public Class frmConstructor_Main
Case "SplitViewTopSplitterPosition"
SplitContainerTop.SplitterPosition = Integer.Parse(setting._value)
Case "SplitViewMainSplitterPosition"
SplitContainerMain.SplitterPosition = Integer.Parse(setting._value)
If CONTROL_NAVIGATION = False Then
SplitContainerMain.SplitterPosition = Integer.Parse(setting._value)
Else
SplitContainer1.SplitterPosition = Integer.Parse(setting._value)
End If
End Select
Next
Catch ex As Exception
@@ -381,8 +407,14 @@ Public Class frmConstructor_Main
Dim XMLPath = Get_Splitter_Layout_Filename()
Dim layout As New ClassLayout(XMLPath)
Dim settings As New System.Collections.Generic.List(Of ClassSetting)
settings.Add(New ClassSetting("SplitViewTopSplitterPosition", SplitContainerTop.SplitterPosition))
settings.Add(New ClassSetting("SplitViewMainSplitterPosition", SplitContainerMain.SplitterPosition))
If CONTROL_NAVIGATION = False Then
settings.Add(New ClassSetting("SplitViewTopSplitterPosition", SplitContainerTop.SplitterPosition))
settings.Add(New ClassSetting("SplitViewMainSplitterPosition", SplitContainerMain.SplitterPosition))
Else
settings.Add(New ClassSetting("SplitViewTopSplitterPosition", SplitContainerTop.SplitterPosition))
settings.Add(New ClassSetting("SplitViewMainSplitterPosition", SplitContainer1.SplitterPosition))
End If
layout.Save(settings)
Catch ex As Exception
MsgBox("Error in Save_Splitter_Layout:" & vbNewLine & ex.Message)
@@ -1014,81 +1046,163 @@ Public Class frmConstructor_Main
Dim sw As New SW("Load_Tree_View")
TreeViewMain.Nodes.Clear()
' 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
Dim Rows1 = query1.ToList()
For Each Row1 In Rows1
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
If CONTROL_NAVIGATION = True Then
' Rootnode erstellen und taggen
LEVEL1_NODE = New TreeNode(LEVEL1_TITLE)
LEVEL1_NODE.Tag = LEVEL1_ID
' TreeView Rootnode einfügen
TreeViewMain.Nodes.Add(LEVEL1_NODE)
If DT_TREEVIEW_PER_CONTROLS.Rows.Count > 1 Then
' Presuming the DataTable has a column named ENTITY_ID and TYPE_NODE.
Dim expression As String
expression = "TYPE_NODE = 1"
Dim foundRowsLevel1() As DataRow
' Use the Select method to find all rows matching the filter.
foundRowsLevel1 = DT_TREEVIEW_PER_CONTROLS.Select(expression)
Dim i As Integer
' For each row create a Node
For i = 0 To foundRowsLevel1.GetUpperBound(0)
Dim ID = foundRowsLevel1(i)("GUID")
Dim LevelEntity = foundRowsLevel1(i)("ENTITY_ID")
Dim controlID = foundRowsLevel1(i)("CONTROL_ID")
Dim nodetext = foundRowsLevel1(i)("ID2")
Dim LEVEL1_NODE As TreeNode
LEVEL1_NODE = New TreeNode(nodetext)
LEVEL1_NODE.Tag = LevelEntity & "CONTROL-ID" & controlID.ToString
TreeViewMain.Nodes.Add(LEVEL1_NODE)
'### LEVEL 2 laden #######
Dim expressionLevel2 As String
expressionLevel2 = "TYPE_NODE = 2 AND PARENT_GUID = " & ID 'Einschränkung auf Type 2 und Parent_Guid
Dim foundRowsLevel2() As DataRow
foundRowsLevel2 = DT_TREEVIEW_PER_CONTROLS.Select(expressionLevel2)
Dim j As Integer
For j = 0 To foundRowsLevel2.GetUpperBound(0)
Dim ID2 = foundRowsLevel2(j)("GUID")
Dim LevelEntity2 = foundRowsLevel2(j)("ENTITY_ID")
Dim controlID2 = foundRowsLevel2(j)("CONTROL_ID")
Dim nodetext2 = foundRowsLevel2(j)("ID2")
' Node erstellen..
Dim LEVEL2_NODE As TreeNode
LEVEL2_NODE = New TreeNode(nodetext2)
LEVEL2_NODE.Tag = LevelEntity2 & "CONTROL-ID" & controlID2.ToString
' ..und einfügen
LEVEL1_NODE.Nodes.Add(LEVEL2_NODE)
'### LEVEL 3 laden #######
Dim expressionLevel3 As String
expressionLevel3 = "TYPE_NODE = 3 AND PARENT_GUID = " & ID2 'Einschränkung auf Type und Parent_Guid
Dim foundRowsLevel3() As DataRow
foundRowsLevel3 = DT_TREEVIEW_PER_CONTROLS.Select(expressionLevel3)
Dim k As Integer
For k = 0 To foundRowsLevel3.GetUpperBound(0)
Dim ID3 = foundRowsLevel3(k)("GUID")
Dim LevelEntity3 = foundRowsLevel3(k)("ENTITY_ID")
Dim controlID3 = foundRowsLevel3(k)("CONTROL_ID")
Dim nodetext3 = foundRowsLevel3(k)("ID2")
' Node erstellen..
Dim LEVEL3_NODE As TreeNode
LEVEL3_NODE = New TreeNode(nodetext3)
LEVEL3_NODE.Tag = LevelEntity3 & "CONTROL-ID" & controlID3.ToString
' ..und einfügen
LEVEL2_NODE.Nodes.Add(LEVEL3_NODE)
Next k
Next j
'### Level 2 Ende ########
Next i
Else
MsgBox("Check the Control Navigation Option or inform Digital Data!", MsgBoxStyle.Critical)
Me.Close()
End If
Else
' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS
Dim query2 = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
Dim query1 = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
Select form
Order By form.Item("SEQUENCE")
Where form.Item("PARENT_ID") = LEVEL1_ID
Where form.Item("PARENT_ID") = 0
Dim Rows2 = query2.ToList()
Dim Rows1 = query1.ToList()
For Each Row2 In Rows2
For Each LEVEL1ROW In Rows1
Dim LEVEL1_NODE As TreeNode
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")
Dim LEVEL3_NODE As TreeNode
' Node erstellen..
LEVEL2_NODE = New TreeNode(LEVEL2_TITLE)
LEVEL2_NODE.Tag = LEVEL2_ID
' ..und einfügen
LEVEL1_NODE.Nodes.Add(LEVEL2_NODE)
'################## LEVEL 1 wird geladen ###########################
Dim LEVEL1_TITLE = LEVEL1ROW.Item("CAPTION").ToString
Dim NODE1_ENTITY_ID = LEVEL1ROW.Item("FORM_ID").ToString
Dim ENTITY_ID = LEVEL1ROW.Item("FORM_ID")
' Rootnode erstellen und taggen
LEVEL1_NODE = New TreeNode(LEVEL1_TITLE)
LEVEL1_NODE.Tag = NODE1_ENTITY_ID
' TreeView Rootnode einfügen
TreeViewMain.Nodes.Add(LEVEL1_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
'################## LEVEL 2 wird geladen #########
Dim LEVEL2_NODE As TreeNode
Dim Rows3 = query3.ToList()
Dim query2 = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
Select form
Order By form.Item("SEQUENCE")
Where form.Item("PARENT_ID") = NODE1_ENTITY_ID
For Each Row3 In Rows3
Dim Rows2 = query2.ToList()
For Each Row2 In Rows2
Dim LEVEL3_TITLE As String = Row3.Item("CAPTION")
Dim LEVEL3_ID As Integer = Row3.Item("FORM_ID")
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")
' Node erstellen..
LEVEL3_NODE = New TreeNode(LEVEL3_TITLE)
LEVEL3_NODE.Tag = LEVEL3_ID
LEVEL2_NODE = New TreeNode(LEVEL2_TITLE)
LEVEL2_NODE.Tag = LEVEL2_ID
' ..und einfügen
LEVEL2_NODE.Nodes.Add(LEVEL3_NODE)
LEVEL1_NODE.Nodes.Add(LEVEL2_NODE)
'##### LEVEL 3 wird geladen #########
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
End If
Next
TreeViewMain.ExpandAll()
TreeViewMain.Nodes(0).EnsureVisible()
sw.Done()
End Sub
Sub Create_variable_node()
End Sub
Private Function Return_ENTITY_FOR_TAG(NodeString As String)
If IsNumeric(NodeString) Then
Return NodeString
Else
If NodeString.Contains("CONTROL-ID") Then
Try
Dim _index = NodeString.IndexOf("C")
Dim Entity = NodeString.Substring(0, _index)
Return Entity
Catch ex As Exception
ClassLogger.Add("Unexpected Error in Return_ENTITY_FOR_TAG ('" & NodeString & "'): " & ex.Message, True)
Return 0
End Try
End If
End If
End Function
Sub Load_Tree_View_Data()
Try
Dim sw As New Stopwatch
@@ -1097,7 +1211,7 @@ Public Class frmConstructor_Main
If SelectedNode IsNot Nothing Then
ENTITY_LOADED = False
ENTITY_ID = SelectedNode.Tag
ENTITY_ID = Return_ENTITY_FOR_TAG(SelectedNode.Tag)
CURRENT_FORM_ID = ENTITY_ID
Dim parentNode As TreeNode = TryCast(SelectedNode.Parent, TreeNode)
@@ -1119,32 +1233,32 @@ Public Class frmConstructor_Main
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 sql_ResultList = "select * from TBPMO_USER_WINDREAM_RESULTLIST_CONFIG where USER_ID = " & USER_GUID & " AND CONSTRUCTOR_DETAIL_ID = " & CONSTRUCTOR_DETAIL_ID
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql_ResultList, "GET USER_RESULTLIST KONFIG")
If DT.Rows.Count = 1 Then
USER_RESULTLIST_CONFIG_GUID = DT.Rows(0).Item(0)
DT_WINDREAM_RESULTLIST = Nothing
DT_WINDREAM_RESULTLIST = DT
Else
USER_RESULTLIST_CONFIG_GUID = 0
If USER_LANGUAGE <> "de-DE" Then
'Grid wird in englisch dargestellt!
gridGUID = 3
End If
Dim filteredDatatable = DT_WINDREAM_RESULTLIST_DEF.Copy()
For Each row As DataRow In filteredDatatable.Rows
If row.Item(0) <> gridGUID Then
row.Delete()
End If
Next
filteredDatatable.AcceptChanges()
If filteredDatatable.Rows.Count = 1 Then
DT_WINDREAM_RESULTLIST = Nothing
DT_WINDREAM_RESULTLIST = filteredDatatable
End If
End If
'DT_WINDREAM_RESULTLIST = DT_WINDREAM_RESULTLIST_DEF
'Dim sql_ResultList = "select * from TBPMO_USER_WINDREAM_RESULTLIST_CONFIG where USER_ID = " & USER_GUID & " AND CONSTRUCTOR_DETAIL_ID = " & CONSTRUCTOR_DETAIL_ID
'Dim DT As DataTable = ClassDatabase.Return_Datatable(sql_ResultList, "GET USER_RESULTLIST KONFIG")
'If DT.Rows.Count = 1 Then
' USER_RESULTLIST_CONFIG_GUID = DT.Rows(0).Item(0)
' DT_WINDREAM_RESULTLIST = Nothing
' DT_WINDREAM_RESULTLIST = DT
'Else
' USER_RESULTLIST_CONFIG_GUID = 0
'If USER_LANGUAGE <> "de-DE" Then
' 'Grid wird in englisch dargestellt!
' gridGUID = 3
'End If
'Dim filteredDatatable = DT_WINDREAM_RESULTLIST_DEF.Copy()
'For Each row As DataRow In filteredDatatable.Rows
' If row.Item(0) <> gridGUID Then
' row.Delete()
' End If
'Next
'filteredDatatable.AcceptChanges()
'If filteredDatatable.Rows.Count = 1 Then
'DT_WINDREAM_RESULTLIST = Nothing
'DT_WINDREAM_RESULTLIST = filteredDatatable
'End If
'End If
Dim elapsed As Double
elapsed = sw.Elapsed.TotalSeconds
If LogErrorsOnly = False Then ClassLogger.Add(" >> Load_Tree_View_Data1 took " & Format(elapsed, "0.000000000") & " seconds", False)
@@ -1171,7 +1285,7 @@ Public Class frmConstructor_Main
Dim PARENT_ID1 As Integer
Dim TYPE_ID1 As Integer
If a = 0 Then
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 sql As String = "SELECT PARENT_ID, FORM_TYPE_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & Return_ENTITY_FOR_TAG(childNodeLevel1.Tag) & " AND SCREEN_ID = " & CURRENT_SCREEN_ID
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql, "ShowNodeAmounts")
PARENT_ID1 = DT.Rows(0).Item(0)
TYPE_ID1 = DT.Rows(0).Item(1)
@@ -1180,7 +1294,7 @@ Public Class frmConstructor_Main
If childNodeLevel1.Text = "Allgemein" Then
Console.WriteLine("Allgemein-Reiter")
End If
Dim result As Integer = ReturnAmountofRecords(childNodeLevel1.Tag)
Dim result As Integer = ReturnAmountofRecords(Return_ENTITY_FOR_TAG(childNodeLevel1.Tag))
If result <> 99999999 Then
Dim origtext As String = childNodeLevel1.Text
If origtext.Contains(" (") Then
@@ -1661,7 +1775,12 @@ Public Class frmConstructor_Main
DisableEditMode()
Load_Entity_Data(ACT_EBENE)
RECORD_CHANGED = False
Else
msg = "Der Datensatz '" & SELECTED_RECORD_ID & "' konnte nicht gelöscht werden. Überprüfen Sie das log"
If USER_LANGUAGE <> "de-DE" Then
msg = "The record '" & SELECTED_RECORD_ID & "' could not be deleted. Check the log"
End If
MsgBox(msg, MsgBoxStyle.Exclamation)
End If
End If
End Sub
@@ -1904,6 +2023,11 @@ Public Class frmConstructor_Main
SQL_RIGHT_READ_AND_VIEW_ONLY = result.Item("SQL_RIGHT_READ_AND_VIEW_ONLY")
SQL_RIGHT_WINDREAM_FORBIDDEN = result.Item("SQL_RIGHT_WINDREAM_VIEW")
Dim sql_ResultList = String.Format("select * from TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE ENTITY_ID = {0} AND LANGUAGE = '{1}'", ENTITY_ID, USER_LANGUAGE) 'TBPMO_WINDREAM_RESULTLIST_CONFIG"
DT_WINDREAM_RESULTLIST = ClassDatabase.Return_Datatable(sql_ResultList, "GETRESULTLIST KONFIG")
sql_ResultList = String.Format("select * from TBPMO_DOCSEARCH_VARIABLE_CONTROLS WHERE ENTITY_ID = {0}", ENTITY_ID) 'TBPMO_WINDREAM_RESULTLIST_CONFIG"
DT_RESULTLIST_OPTIONS = ClassDatabase.Return_Datatable(sql_ResultList, "GETVARIABLE CONTROLS")
Dim ENTITY_ROW = (From form In DT_ENTITY_DATA.AsEnumerable()
Select form
Where form.Item("GUID") = ENTITY_ID).Single()
@@ -3671,7 +3795,36 @@ Public Class frmConstructor_Main
If Type = "ENTITY" Then
SQL_DOC_SEARCH = String.Format("SELECT * FROM VWPMO_WD_DOC_SEARCH WHERE [ENTITY_ID] = {0}", ENTITY_ID)
Else
SQL_DOC_SEARCH = String.Format("SELECT * FROM VWPMO_WD_DOC_SEARCH WHERE [RECORD_ID] = {0}", RECORD_ID)
Dim OPTION1 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION1_CTRL")
Dim OPTION2 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION2_CTRL")
Dim OPTION3 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION3_CTRL")
Dim OPTION4 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION4_CTRL")
Dim OPTION5 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION5_CTRL")
If DT_RESULTLIST_OPTIONS.Rows.Count = 0 Then
OPTION1 = 0
OPTION2 = 0
OPTION3 = 0
OPTION4 = 0
OPTION5 = 0
End If
SQL_DOC_SEARCH = String.Format("SELECT * ," & _
"(CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = {0}) " & _
"WHEN {1} THEN " & _
" (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {2} AND RECORD_ID = {0}) " & _
"ELSE '' END) AS OPTION1," & _
"CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = 3305) " & _
"WHEN {1} THEN " & _
" (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {3} AND RECORD_ID = {0}) " & _
"ELSE '' END AS OPTION2," & _
"CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = 3305) " & _
"WHEN {1} THEN " & _
" (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {4} AND RECORD_ID = {0}) " & _
"ELSE '' END AS OPTION3," & _
"CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = 3305) " & _
"WHEN {1} THEN " & _
" (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {5} AND RECORD_ID = {0}) " & _
"ELSE '' END AS OPTION4 " & _
"FROM VWPMO_WD_DOC_SEARCH WHERE RECORD_ID LIKE '%#{0}%'", RECORD_ID, ENTITY_ID, OPTION1, OPTION2, OPTION3, OPTION4)
End If
Return ClassDatabase.Return_Datatable_Connection(SQL_DOC_SEARCH, 1)
Catch ex As Exception
@@ -3730,39 +3883,28 @@ Public Class frmConstructor_Main
colPath.Caption = "Fullpath"
DTGrid.Columns.Add(colPath)
Dim colOtype As New System.Data.DataColumn()
colOtype.DataType = GetType(String)
colOtype.ColumnName = "OBJECTTYPE"
colOtype.Caption = "Objecttype"
DTGrid.Columns.Add(colOtype)
If Not DT_WINDREAM_RESULTLIST Is Nothing And DT_WINDREAM_RESULTLIST.Rows.Count = 1 Then
If Not DT_WINDREAM_RESULTLIST Is Nothing And DT_WINDREAM_RESULTLIST.Rows.Count >= 1 Then
Dim ColCount As Integer = 1
For Each Column As DataColumn In DT_WINDREAM_RESULTLIST.Columns
If Column.ColumnName.StartsWith("COLUMN") And Column.ColumnName.EndsWith("WIDTH") = False Then
Dim ColumnName = DT_WINDREAM_RESULTLIST.Rows(0).Item(Column.ColumnName)
If Not IsDBNull(ColumnName) Then
If Not IsDBNull(ColumnName) Or IsNothing(ColumnName) Or ColumnName <> "" Or ColumnName <> "{}" Then
'Jetzt die Spalten aus Array hinzufügen und Breite konfigurieren
Dim Width = DT_WINDREAM_RESULTLIST.Rows(0).Item(String.Format("COLUMN{0}_WIDTH", ColCount))
If IsNothing(Width) Or IsDBNull(Width) Then
Width = 200
End If
'Die Spalte definieren
DTGrid.Columns.Add(ColumnName)
ColCount += 1
End If
End If
For Each rw As DataRow In DT_WINDREAM_RESULTLIST.Rows
Dim ColumnName = rw.Item("HEADER_CAPTION")
Dim Width = rw.Item("WIDTH")
If IsNothing(Width) Or IsDBNull(Width) Then
Width = 200
End If
'Die Spalte definieren
DTGrid.Columns.Add(ColumnName)
ColCount += 1
Next
'Jetzt das Array zusammenbauen um die Spaltenwerte zu erhalten
ColCount = 1
For Each Column As DataColumn In DT_WINDREAM_RESULTLIST.Columns
If Column.ColumnName = String.Format("COLUMN{0}", ColCount) Then
Dim ColumnName = DT_WINDREAM_RESULTLIST.Rows(0).Item(Column.ColumnName)
If Not IsDBNull(ColumnName) Then
If Not IsDBNull(ColumnName) Or IsNothing(ColumnName) Or ColumnName <> "" Or ColumnName <> "{}" Then
'Jetzt die Spalten aus Array hinzufügen und Breite konfigurieren
ColArrayDEFINITION.Add(Column.ColumnName)
End If
End If
ColCount += 1
End If
For Each rw As DataRow In DT_WINDREAM_RESULTLIST.Rows
ColArrayDEFINITION.Add(rw.Item("COLUMN_VIEW"))
Next
End If
Catch ex As Exception
@@ -3770,9 +3912,10 @@ Public Class frmConstructor_Main
End Try
COL_ARRAY_RESULTLIST = ColArrayDEFINITION
For Each row As DataRow In DT_FILE_RESULT.Rows
For Each FILE_ROW As DataRow In DT_FILE_RESULT.Rows
Dim fullpath = row.Item("FULL_FILENAME")
Dim fullpath = FILE_ROW.Item("FULL_FILENAME")
Dim objecttype = FILE_ROW.Item("OBJECTTYPE")
'Dim Folderpath = Path.GetDirectoryName(fullpath)
Dim filename = Path.GetFileName(fullpath)
Dim extension = Path.GetExtension(fullpath)
@@ -3807,23 +3950,13 @@ Public Class frmConstructor_Main
End Select
'Den Filepath mitgeben
NewRow.Item(1) = fullpath
Dim i = 2 'Fängt bei 2 an, um die ICON Column zu überspringen
For Each Column As String In ColArrayDEFINITION
Dim Colname = DT_WINDREAM_RESULTLIST.Rows(0).Item(Column)
NewRow.Item(2) = objecttype
Dim i = 3 'Fängt bei 2 an, um die ICON Column zu überspringen
For Each Colname As String In ColArrayDEFINITION
Dim rowvalue
Try
If LogErrorsOnly = False Then ClassLogger.Add(" >> now rowvalue for Colname '" & Colname & "'", False)
If Colname = "Dateiname" Or Colname = "filename" Then
rowvalue = filename
ElseIf Colname = "Dokumentart" Or Colname = "doctype" Then
rowvalue = row.Item("Doctype")
ElseIf Colname = "Erstellt" Or Colname = "created" Then
rowvalue = row.Item("Creation_DateTime")
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> else: row.Item(" & Colname & ")", False)
rowvalue = row.Item(Colname)
End If
rowvalue = FILE_ROW.Item(Colname)
If LogErrorsOnly = False Then ClassLogger.Add(" >> rowvalue : '" & rowvalue.ToString & "'", False)
Catch ex As Exception
ClassLogger.Add("Unexpected Error in GetVariableValue for Column '" & Colname & "- Error: " & ex.Message)
@@ -3847,18 +3980,11 @@ Public Class frmConstructor_Main
GridViewDoc_Search.Columns.Item("ICON").MaxWidth = 24
GridViewDoc_Search.Columns.Item("ICON").MinWidth = 24
GridViewDoc_Search.Columns.Item("FULLPATH").Visible = False
For Each col As DataColumn In DT_WINDREAM_RESULTLIST.Columns
If col.ColumnName.EndsWith("WIDTH") Or col.ColumnName.StartsWith("ADDED") Or col.ColumnName.StartsWith("CHANGED") Then
Continue For
End If
Dim rowvalue = DT_WINDREAM_RESULTLIST.Rows(0).Item(col.ColumnName)
If IsDBNull(rowvalue) Or IsNumeric(rowvalue) Then
Continue For
End If
Dim Width = DT_WINDREAM_RESULTLIST.Rows(0).Item(String.Format("{0}_WIDTH", col.ColumnName))
GridViewDoc_Search.Columns.Item("OBJECTTYPE").Visible = False
For Each rw As DataRow In DT_WINDREAM_RESULTLIST.Rows
Dim Width = rw.Item("WIDTH") 'DT_WINDREAM_RESULTLIST.Rows(0).Item(String.Format("{0}_WIDTH", col.ColumnName))
If Not IsNothing(Width) And Not IsDBNull(Width) Then
Dim column = DirectCast(GridViewDoc_Search.Columns.Item(rowvalue), DevExpress.XtraGrid.Columns.GridColumn)
Dim column = DirectCast(GridViewDoc_Search.Columns.Item(rw.Item("HEADER_CAPTION")), DevExpress.XtraGrid.Columns.GridColumn)
column.Width = Width
Console.WriteLine("ColumnWidth {0} set to {1}", column.FieldName, Width)
Console.WriteLine("ColumnWidth {0} really set to {1}", column.FieldName, column.VisibleWidth)
@@ -4138,7 +4264,7 @@ Public Class frmConstructor_Main
CURRENT_PARENT_ENTITY_ID = PARENT_ENTITYID
CURRENT_RECORD_ID = RECORD_ID
CURRENT_FORMVIEW_ID = FORMVIEW_ID
frmWD_Index_Dokart.ShowDialog()
frmWD_IndexFile.ShowDialog()
RUN_WDSEARCH_GRID("RECORD")
'RUN_WD_SEARCH(WD_Suche, "RECORD")
End If
@@ -4206,7 +4332,7 @@ Public Class frmConstructor_Main
CURRENT_FORM_ID = ENTITY_ID
CURRENT_FORMVIEW_ID = FORMVIEW_ID
If ClassDatabase.Execute_Scalar("SELECT COUNT(*) FROM TBPMO_FILES_USER WHERE GUID = " & CURRENT_FILEID & " AND WORKED = 0") = 1 Then
frmWD_Index_Dokart.ShowDialog()
frmWD_IndexFile.ShowDialog()
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> File was deleted or worked meanwhile!")
End If
@@ -4239,6 +4365,9 @@ Public Class frmConstructor_Main
Private Sub TCDetails_DragEnter(sender As Object, e As DragEventArgs) Handles TCDetails.DragEnter
Drag_Enter(e)
End Sub
Private Sub GridControlDocSearch_DragEnter(sender As Object, e As DragEventArgs) Handles GridControlDocSearch.DragEnter
Drag_Enter(e)
End Sub
#End Region
#Region "Follow Up"
@@ -4511,7 +4640,7 @@ Public Class frmConstructor_Main
Try
Dim SelectedNode As TreeNode = TryCast(TreeViewMain.SelectedNode, TreeNode)
If SelectedNode IsNot Nothing Then
Dim FormId As Integer = SelectedNode.Tag
Dim FormId As Integer = Return_ENTITY_FOR_TAG(SelectedNode.Tag)
If FormId > 0 Then
CURRENT_FORM_ID = FormId
OpenFormLevelDesigner()
@@ -4588,7 +4717,7 @@ Public Class frmConstructor_Main
Private Sub CheckNode(ByVal n As TreeNode, FormID As Integer)
Dim aNode As TreeNode
If CInt(n.Tag) = FormID Then
If CInt(Return_ENTITY_FOR_TAG(n.Tag)) = FormID Then
'Gefunden also selektieren
TreeViewMain.SelectedNode = n
TreeViewMain.SelectedNode.EnsureVisible()
@@ -4604,7 +4733,7 @@ Public Class frmConstructor_Main
End If
For Each aNode In n.Nodes
If CInt(aNode.Tag) = FormID Then
If CInt(Return_ENTITY_FOR_TAG(aNode.Tag)) = FormID Then
'Gefunden also selektieren
TreeViewMain.SelectedNode = aNode
TreeViewMain.SelectedNode.EnsureVisible()
@@ -5015,7 +5144,9 @@ Public Class frmConstructor_Main
Private Sub GridViewDoc_Search_FocusedRowChanged(sender As Object, e As FocusedRowChangedEventArgs) Handles GridViewDoc_Search.FocusedRowChanged
Try
RESULT_DOC_PATH = GridViewDoc_Search.GetFocusedRowCellValue(GridViewDoc_Search.Columns("FULLPATH"))
RESULT_OBJECTTYPE = GridViewDoc_Search.GetFocusedRowCellValue(GridViewDoc_Search.Columns("OBJECTTYPE"))
Catch ex As Exception
ClassLogger.Add(">> Attention: Could not set DocVariables Path or Objecttype: " & ex.Message, False)
RESULT_DOC_PATH = Nothing
End Try
@@ -5069,6 +5200,7 @@ Public Class frmConstructor_Main
Private Sub GridControlDocSearch_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch.DoubleClick
Try
RESULT_DOC_PATH = GridViewDoc_Search.GetFocusedRowCellValue(GridViewDoc_Search.Columns("FULLPATH"))
RESULT_OBJECTTYPE = GridViewDoc_Search.GetFocusedRowCellValue(GridViewDoc_Search.Columns("OBJECTTYPE"))
Catch ex As Exception
RESULT_DOC_PATH = Nothing
End Try
@@ -5286,36 +5418,36 @@ Public Class frmConstructor_Main
End Sub
Private Sub GridViewDoc_Search_ColumnWidthChanged(sender As Object, e As ColumnEventArgs) Handles GridViewDoc_Search.ColumnWidthChanged
Try
If USER_RESULTLIST_CONFIG_GUID = 0 Then
Dim insert = String.Format("INSERT INTO TBPMO_USER_WINDREAM_RESULTLIST_CONFIG (USER_ID,CONSTRUCTOR_DETAIL_ID,COLUMN1,COLUMN1_WIDTH,COLUMN2,COLUMN2_WIDTH,COLUMN3,COLUMN3_WIDTH,COLUMN4,COLUMN4_WIDTH,COLUMN5,COLUMN5_WIDTH,COLUMN6,COLUMN6_WIDTH,COLUMN7,COLUMN7_WIDTH,ADDED_WHO)" & _
" SELECT {0},{1},COLUMN1,COLUMN1_WIDTH,COLUMN2,COLUMN2_WIDTH,COLUMN3,COLUMN3_WIDTH,COLUMN4,COLUMN4_WIDTH,COLUMN5,COLUMN5_WIDTH,COLUMN6,COLUMN6_WIDTH,COLUMN7,COLUMN7_WIDTH,'{2}' FROM TBPMO_WINDREAM_RESULTLIST_CONFIG WHERE GUID = {3}", USER_GUID, CONSTRUCTOR_DETAIL_ID, Environment.UserName, gridGUID)
If ClassDatabase.Execute_non_Query(insert) = True Then
USER_RESULTLIST_CONFIG_GUID = ClassDatabase.Execute_Scalar("SELECT MAX GUID FROM TBPMO_USER_WINDREAM_RESULTLIST_CONFIG WHERE USER_ID = " & USER_GUID)
Else
Exit Sub
End If
End If
Console.WriteLine("Column changed - Column name: " & e.Column.Name)
Dim colNameGrid = e.Column.Name.Replace("col", "")
'Jetzt über die Column der Configtabelle auf den Inhalt schliessen
For Each col As DataColumn In DT_WINDREAM_RESULTLIST.Columns
Dim rowvalue = DT_WINDREAM_RESULTLIST.Rows(0).Item(col.ColumnName)
If IsDBNull(rowvalue) Or IsNumeric(rowvalue) Then
Continue For
End If
If rowvalue = colNameGrid Then
Dim update = String.Format("UPDATE TBPMO_USER_WINDREAM_RESULTLIST_CONFIG SET {0}_WIDTH = {1} WHERE GUID = {2}", col.ColumnName, e.Column.VisibleWidth, USER_RESULTLIST_CONFIG_GUID)
ClassDatabase.Execute_non_Query(update)
Exit For
End If
Next
If USER_RESULTLIST_CONFIG_GUID > 0 Then
'DT_WINDREAM_RESULTLIST zu USER NEU LADEN
'If USER_RESULTLIST_CONFIG_GUID = 0 Then
' Dim insert = String.Format("INSERT INTO TBPMO_USER_WINDREAM_RESULTLIST_CONFIG (USER_ID,CONSTRUCTOR_DETAIL_ID,COLUMN1,COLUMN1_WIDTH,COLUMN2,COLUMN2_WIDTH,COLUMN3,COLUMN3_WIDTH,COLUMN4,COLUMN4_WIDTH,COLUMN5,COLUMN5_WIDTH,COLUMN6,COLUMN6_WIDTH,COLUMN7,COLUMN7_WIDTH,ADDED_WHO)" & _
' " SELECT {0},{1},COLUMN1,COLUMN1_WIDTH,COLUMN2,COLUMN2_WIDTH,COLUMN3,COLUMN3_WIDTH,COLUMN4,COLUMN4_WIDTH,COLUMN5,COLUMN5_WIDTH,COLUMN6,COLUMN6_WIDTH,COLUMN7,COLUMN7_WIDTH,'{2}' FROM TBPMO_WINDREAM_RESULTLIST_CONFIG WHERE GUID = {3}", USER_GUID, CONSTRUCTOR_DETAIL_ID, Environment.UserName, gridGUID)
' If ClassDatabase.Execute_non_Query(insert) = True Then
' USER_RESULTLIST_CONFIG_GUID = ClassDatabase.Execute_Scalar("SELECT MAX GUID FROM TBPMO_USER_WINDREAM_RESULTLIST_CONFIG WHERE USER_ID = " & USER_GUID)
' Else
' Exit Sub
' End If
'End If
'Console.WriteLine("Column changed - Column name: " & e.Column.Name)
'Dim colNameGrid = e.Column.Name.Replace("col", "")
''Jetzt über die Column der Configtabelle auf den Inhalt schliessen
'For Each col As DataColumn In DT_WINDREAM_RESULTLIST.Columns
' Dim rowvalue = DT_WINDREAM_RESULTLIST.Rows(0).Item(col.ColumnName)
' If IsDBNull(rowvalue) Or IsNumeric(rowvalue) Then
' Continue For
' End If
' If rowvalue = colNameGrid Then
' Dim update = String.Format("UPDATE TBPMO_USER_WINDREAM_RESULTLIST_CONFIG SET {0}_WIDTH = {1} WHERE GUID = {2}", col.ColumnName, e.Column.VisibleWidth, USER_RESULTLIST_CONFIG_GUID)
' ClassDatabase.Execute_non_Query(update)
' Exit For
' End If
'Next
'If USER_RESULTLIST_CONFIG_GUID > 0 Then
' 'DT_WINDREAM_RESULTLIST zu USER NEU LADEN
Dim sql_ResultList = "select * from TBPMO_USER_WINDREAM_RESULTLIST_CONFIG where USER_ID = " & USER_GUID & " AND CONSTRUCTOR_DETAIL_ID = " & CONSTRUCTOR_DETAIL_ID
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql_ResultList, "GET USER_RESULTLIST KONFIG")
DT_WINDREAM_RESULTLIST = DT
End If
' Dim sql_ResultList = "select * from TBPMO_USER_WINDREAM_RESULTLIST_CONFIG where USER_ID = " & USER_GUID & " AND CONSTRUCTOR_DETAIL_ID = " & CONSTRUCTOR_DETAIL_ID
' Dim DT As DataTable = ClassDatabase.Return_Datatable(sql_ResultList, "GET USER_RESULTLIST KONFIG")
' DT_WINDREAM_RESULTLIST = DT
'End If
Catch ex As Exception
ClassLogger.Add(">> Unexpected Error in ColumnWidth-Change DocResult: " & ex.Message, False)
End Try
@@ -5366,7 +5498,8 @@ Public Class frmConstructor_Main
Private Sub DateiMitDatensatzVerknüpfenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DateiMitDatensatzVerknüpfenToolStripMenuItem.Click
Dim fileName As String = RESULT_DOC_PATH
Dim frm As New frmWD_Link_to_Record(fileName)
Dim frm As New frmWD_Link_to_Record(fileName, RESULT_OBJECTTYPE)
frm.Show()
End Sub
End Class