600 lines
34 KiB
VB.net
600 lines
34 KiB
VB.net
Public Class ClassNodeNavigation
|
|
Public Shared NODE_CONFIGURABLE_ID As Integer
|
|
Public Shared MyTreeView As TreeView
|
|
Public Shared Datatable_Nodes As DataTable
|
|
Public Shared TREEVIEW_IMAGELIST As ImageList
|
|
Public Shared Function Return_Node(PARENT_ID As Integer, ParentNode As TreeNode)
|
|
Dim expression As String
|
|
expression = "PARENT_GUID = " & PARENT_ID 'Einschränkung auf Type und Parent_Guid
|
|
Dim foundRows() As DataRow
|
|
foundRows = Datatable_Nodes.Select(expression)
|
|
Dim q As Integer
|
|
For q = 0 To foundRows.GetUpperBound(0)
|
|
Dim ID9 = foundRows(q)("GUID")
|
|
Dim LevelEntity9 = foundRows(q)("ENTITY_ID")
|
|
Dim controlID9 = foundRows(q)("CONTROL_ID")
|
|
Dim nodetext9 = foundRows(q)("NODE_CAPTION")
|
|
Dim RECORD_ID = foundRows(q)("RECORD_ID")
|
|
Dim NODE_CONFIG_ID = foundRows(q)("NODE_CONFIG_ID")
|
|
' Node erstellen..
|
|
Dim NEW_NODE As TreeNode
|
|
NEW_NODE = New TreeNode(nodetext9)
|
|
ClassNodeNavigation.Check_NODE_CONFIG_ID(LevelEntity9)
|
|
NEW_NODE.Tag = ClassNodeNavigation.CreateNODE_TAG(LevelEntity9, ID9, RECORD_ID, NODE_CONFIG_ID)
|
|
|
|
Dim index = 0
|
|
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
|
If img.Replace("LEVEL#ENTITY", "") = "6" & LevelEntity9.ToString Then
|
|
Exit For
|
|
End If
|
|
index += 1
|
|
Next
|
|
NEW_NODE.ImageIndex = index
|
|
NEW_NODE.SelectedImageIndex = index
|
|
' ..und einfügen
|
|
ParentNode.Nodes.Add(NEW_NODE)
|
|
Next '
|
|
End Function
|
|
Public Shared Sub Check_NODE_CONFIG_ID(ENTITY_ID As Integer)
|
|
Try
|
|
If CURRENT_DT_NODE_CONFIGURABLE_NODES.Rows.Count > 0 Then
|
|
'Prüfen ob es für dieses Level einen konfigurierbaren Knoten gibt
|
|
Dim result = (From form In CURRENT_DT_NODE_CONFIGURABLE_NODES.AsEnumerable()
|
|
Select form
|
|
Where form.Item("ENTITY_ID") = ENTITY_ID).Single()
|
|
|
|
Dim ID = result.Item("GUID")
|
|
If Not IsNothing(ID) Then
|
|
ClassNodeNavigation.NODE_CONFIGURABLE_ID = ID
|
|
CURRENT_NODE_CONFIGURABLE_ID = ID
|
|
End If
|
|
End If
|
|
Catch ex As Exception
|
|
ClassNodeNavigation.NODE_CONFIGURABLE_ID = 0
|
|
CURRENT_NODE_CONFIGURABLE_ID = 0
|
|
End Try
|
|
|
|
End Sub
|
|
Public Shared Function CreateNODE_TAG(Entity As Integer, IDNode As String, Record As Object, NODE_CONFIG_ID As Integer)
|
|
Dim vType, TagString As String
|
|
Try
|
|
If NODE_CONFIGURABLE_ID = NODE_CONFIG_ID Then
|
|
vType = "CONFIG_NODE-" & NODE_CONFIG_ID.ToString
|
|
Else
|
|
vType = "NODE-TYPE-" & NODE_CONFIG_ID.ToString
|
|
End If
|
|
If Not IsDBNull(Record) Then
|
|
TagString = vType & "#" & Entity & "#NODE_ID-" & IDNode & "#RECORD-ID" & Record.ToString
|
|
Else
|
|
TagString = vType & "#" & Entity & "#NODE_ID-" & IDNode
|
|
End If
|
|
Return TagString
|
|
Catch ex As Exception
|
|
ClassLogger.Add(">> Unexpected Error in CreateNODE_TAG (NodeNavigation): " & ex.Message, True)
|
|
MsgBox("Error in CreateNODE_TAG (NodeNavigation):" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
TagString = "ERROR NODETAG_CREATION"
|
|
Return TagString
|
|
End Try
|
|
End Function
|
|
Public Shared Function CreateTreeViewNodesNew1(DT_TREEVIEW_NODES As DataTable, TREEVIEW_IMAGELIST As ImageList)
|
|
Try
|
|
Dim mytrv As New TreeView
|
|
Dim ENTITY_ID As Integer
|
|
Dim expression As String
|
|
expression = "PARENT_GUID = 0"
|
|
Dim MAIN_NODES() As DataRow
|
|
'Use the Select method to find all rows matching the filter.
|
|
MAIN_NODES = DT_TREEVIEW_NODES.Select(expression, "SEQUENCE, NODE_CAPTION")
|
|
' For each row create a Node
|
|
For i = 0 To MAIN_NODES.GetUpperBound(0)
|
|
If ENTITY_ID <> MAIN_NODES(i)("ENTITY_ID") Then
|
|
ENTITY_ID = MAIN_NODES(i)("ENTITY_ID")
|
|
ClassNodeNavigation.Check_NODE_CONFIG_ID(MAIN_NODES(i)("ENTITY_ID"))
|
|
End If
|
|
Dim NODE_Tag = CreateNODE_TAG(MAIN_NODES(i)("ENTITY_ID"), MAIN_NODES(i)("GUID"), MAIN_NODES(i)("RECORD_ID"), MAIN_NODES(i)("NODE_CONFIG_ID"))
|
|
Dim MAIN_NODE = New TreeNode(MAIN_NODES(i)("NODE_CAPTION")) '"NODE_CAPTION"
|
|
MAIN_NODE.Tag = NODE_Tag
|
|
Dim index As Integer = 0
|
|
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
|
If img = MAIN_NODES(i)("NODE_CONFIG_ID") & "#" & MAIN_NODES(i)("ENTITY_ID") Then
|
|
Exit For
|
|
End If
|
|
index += 1
|
|
Next
|
|
MAIN_NODE.ImageIndex = index
|
|
MAIN_NODE.SelectedImageIndex = index
|
|
MAIN_NODE = CheckSubNodes(DT_TREEVIEW_NODES, MAIN_NODES(i)("GUID"), TREEVIEW_IMAGELIST, MAIN_NODE, MAIN_NODES(i)("EXPAND_NODE"))
|
|
'Add the node
|
|
mytrv.Nodes.Add(MAIN_NODE)
|
|
|
|
Next
|
|
|
|
Return mytrv
|
|
Catch ex As System.Exception
|
|
ClassLogger.Add(">> Unexpected Error in CreateTreeViewNodesNew (NodeNavigation): " & ex.Message, True)
|
|
MsgBox("Error in CreateTreeViewNodesNew (NodeNavigation):" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
Return Nothing
|
|
End Try
|
|
End Function
|
|
Private Shared Function CheckSubNodes(DT_TREEVIEW_NODES As DataTable, PARENT_GUID As Integer, TREEVIEW_IMAGELIST As ImageList, MY_NODE As TreeNode, EXPAND As Boolean)
|
|
Dim ENTITY_ID As Integer
|
|
Dim expression As String
|
|
expression = "PARENT_GUID = " & PARENT_GUID.ToString
|
|
Dim SUB_NODE_ROW() As DataRow
|
|
' Use the Select method to find all rows matching the filter.
|
|
SUB_NODE_ROW = DT_TREEVIEW_NODES.Select(expression, "SEQUENCE, NODE_CAPTION")
|
|
' For each row create a Node
|
|
For i = 0 To SUB_NODE_ROW.GetUpperBound(0)
|
|
If ENTITY_ID <> SUB_NODE_ROW(i)("ENTITY_ID") Then
|
|
ENTITY_ID = SUB_NODE_ROW(i)("ENTITY_ID")
|
|
ClassNodeNavigation.Check_NODE_CONFIG_ID(SUB_NODE_ROW(i)("ENTITY_ID"))
|
|
End If
|
|
Dim NODE_Tag = CreateNODE_TAG(SUB_NODE_ROW(i)("ENTITY_ID"), SUB_NODE_ROW(i)("GUID"), SUB_NODE_ROW(i)("RECORD_ID"), SUB_NODE_ROW(i)("NODE_CONFIG_ID"))
|
|
Dim SUB_NODE = New TreeNode(SUB_NODE_ROW(i)("NODE_CAPTION"))
|
|
SUB_NODE.Tag = NODE_Tag
|
|
Dim index As Integer = 0
|
|
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
|
If img = SUB_NODE_ROW(i)("NODE_CONFIG_ID") & "#" & SUB_NODE_ROW(i)("ENTITY_ID") Then
|
|
Exit For
|
|
End If
|
|
index += 1
|
|
Next
|
|
SUB_NODE.ImageIndex = index
|
|
SUB_NODE.SelectedImageIndex = index
|
|
|
|
CheckSubNodes(DT_TREEVIEW_NODES, SUB_NODE_ROW(i)("GUID"), TREEVIEW_IMAGELIST, SUB_NODE, SUB_NODE_ROW(i)("EXPAND_NODE"))
|
|
'Add the node
|
|
MY_NODE.Nodes.Add(SUB_NODE)
|
|
'If EXPAND = True Then
|
|
' MY_NODE.ExpandAll()
|
|
'End If
|
|
Next
|
|
|
|
Return MY_NODE
|
|
End Function
|
|
Public Shared Function CreateTreeViewNodesNew(DT_TREEVIEW_PER_CONTROLS As DataTable, TREEVIEW_IMAGELIST As ImageList)
|
|
Try
|
|
Dim mytrv As New TreeView
|
|
Dim node As TreeNode
|
|
Dim subNode As TreeNode
|
|
Dim ENTITY_ID As Integer
|
|
For Each row As DataRow In DT_TREEVIEW_PER_CONTROLS.Rows
|
|
If ENTITY_ID <> row.Item("ENTITY_ID") Then
|
|
ENTITY_ID = row.Item("ENTITY_ID")
|
|
ClassNodeNavigation.Check_NODE_CONFIG_ID(row.Item("ENTITY_ID"))
|
|
End If
|
|
Dim NODE_Tag = CreateNODE_TAG(row.Item("ENTITY_ID"), row.Item("GUID"), row.Item("RECORD_ID"), row.Item("NODE_CONFIG_ID"))
|
|
'search in the treeview if any country is already present
|
|
node = FindNode(mytrv.Nodes, row.Item("PARENT_GUID"))
|
|
If node IsNot Nothing Then
|
|
'ParentNode Foun
|
|
subNode = New TreeNode(row.Item("NODE_CAPTION"))
|
|
subNode.Tag = NODE_Tag
|
|
Dim index As Integer = 0
|
|
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
|
If img = row.Item("NODE_CONFIG_ID") & "#" & row.Item("ENTITY_ID") Then
|
|
Exit For
|
|
End If
|
|
index += 1
|
|
Next
|
|
subNode.ImageIndex = index
|
|
subNode.SelectedImageIndex = index
|
|
'Add new Node to parentNode
|
|
node.Nodes.Add(subNode)
|
|
Else
|
|
Dim NEW_NODE = New TreeNode(row.Item("NODE_CAPTION"))
|
|
NEW_NODE.Tag = NODE_Tag
|
|
Dim index As Integer = 0
|
|
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
|
If img = row.Item("NODE_CONFIG_ID") & "#" & row.Item("ENTITY_ID") Then
|
|
Exit For
|
|
End If
|
|
index += 1
|
|
Next
|
|
NEW_NODE.ImageIndex = index
|
|
NEW_NODE.SelectedImageIndex = index
|
|
|
|
'Add the node
|
|
'node.Nodes.Add(NEW_NODE)
|
|
mytrv.Nodes.Add(NEW_NODE)
|
|
End If
|
|
Next
|
|
Return mytrv
|
|
Catch ex As System.Exception
|
|
ClassLogger.Add(">> Unexpected Error in CreateTreeViewNodesNew (NodeNavigation): " & ex.Message, True)
|
|
MsgBox("Error in CreateTreeViewNodesNew (NodeNavigation):" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
Return Nothing
|
|
End Try
|
|
End Function
|
|
Private Shared Function FindNode(tncoll As TreeNodeCollection, PARENT_GUID As Integer) As TreeNode
|
|
Try
|
|
Dim tnFound As TreeNode
|
|
For Each tnCurr As TreeNode In tncoll
|
|
If tnCurr.Tag.ToString.Contains("#NODE_ID-" & PARENT_GUID) Then
|
|
Return tnCurr
|
|
End If
|
|
tnFound = FindNode(tnCurr.Nodes, PARENT_GUID)
|
|
If tnFound IsNot Nothing Then
|
|
Return tnFound
|
|
End If
|
|
Next
|
|
Return Nothing
|
|
Catch ex As Exception
|
|
ClassLogger.Add(">> Unexpected Error in FindNode (NodeNavigation): " & ex.Message, True)
|
|
MsgBox("Error in FindNode (NodeNavigation):" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
Return Nothing
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Public Shared Function CreateTreeViewNodes(DT_TREEVIEW_PER_CONTROLS As DataTable, TREEVIEW_IMAGELIST As ImageList)
|
|
Try
|
|
Dim mytrv As New TreeView
|
|
' Rootnode erstellen und taggen
|
|
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 = 0"
|
|
Dim foundRowsLevel0() As DataRow
|
|
' Use the Select method to find all rows matching the filter.
|
|
foundRowsLevel0 = DT_TREEVIEW_PER_CONTROLS.Select(expression, "SEQUENCE,NODE_CAPTION")
|
|
Dim i As Integer
|
|
Dim NODE_CONFIG_ID
|
|
Dim LEVEL0_NODE As TreeNode
|
|
|
|
' For each row create a Node
|
|
For i = 0 To foundRowsLevel0.GetUpperBound(0)
|
|
Dim ID = foundRowsLevel0(i)("GUID")
|
|
Dim LevelEntity = foundRowsLevel0(i)("ENTITY_ID")
|
|
ClassNodeNavigation.Check_NODE_CONFIG_ID(LevelEntity)
|
|
Dim controlID = foundRowsLevel0(i)("CONTROL_ID")
|
|
Dim nodetext = foundRowsLevel0(i)("NODE_CAPTION")
|
|
Dim Type_node = foundRowsLevel0(i)("TYPE_NODE")
|
|
Dim RECORD_ID = foundRowsLevel0(i)("RECORD_ID")
|
|
NODE_CONFIG_ID = foundRowsLevel0(i)("NODE_CONFIG_ID")
|
|
LEVEL0_NODE = New TreeNode(nodetext)
|
|
LEVEL0_NODE.Tag = CreateNODE_TAG(LevelEntity, ID, RECORD_ID, NODE_CONFIG_ID)
|
|
|
|
Dim index As Integer = 0
|
|
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
|
If img = NODE_CONFIG_ID & "#" & LevelEntity Then
|
|
Exit For
|
|
End If
|
|
index += 1
|
|
Next
|
|
LEVEL0_NODE.ImageIndex = index
|
|
LEVEL0_NODE.SelectedImageIndex = index
|
|
|
|
'### LEVEL 1 laden #######
|
|
Dim expressionLevel1 As String
|
|
expressionLevel1 = "PARENT_GUID = " & ID 'TYPE_NODE = 1 AND Einschränkung auf Type 2 und Parent_Guid
|
|
Dim foundRowsLevel1() As DataRow
|
|
foundRowsLevel1 = DT_TREEVIEW_PER_CONTROLS.Select(expressionLevel1, "SEQUENCE,NODE_CAPTION")
|
|
Dim j As Integer
|
|
For j = 0 To foundRowsLevel1.GetUpperBound(0)
|
|
Dim ID1 = foundRowsLevel1(j)("GUID")
|
|
Dim LevelEntity1 = foundRowsLevel1(j)("ENTITY_ID")
|
|
ClassNodeNavigation.Check_NODE_CONFIG_ID(LevelEntity1)
|
|
Dim controlID1 = foundRowsLevel1(j)("CONTROL_ID")
|
|
Dim nodetext1 = foundRowsLevel1(j)("NODE_CAPTION")
|
|
Dim Type_node1 = foundRowsLevel1(j)("TYPE_NODE")
|
|
RECORD_ID = foundRowsLevel1(j)("RECORD_ID")
|
|
NODE_CONFIG_ID = foundRowsLevel1(j)("NODE_CONFIG_ID")
|
|
' Node erstellen..
|
|
Dim LEVEL1_NODE As TreeNode
|
|
LEVEL1_NODE = New TreeNode(nodetext1)
|
|
|
|
LEVEL1_NODE.Tag = CreateNODE_TAG(LevelEntity, ID, RECORD_ID, NODE_CONFIG_ID)
|
|
|
|
index = 0
|
|
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
|
If img = NODE_CONFIG_ID & "#" & LevelEntity1 Then
|
|
Exit For
|
|
End If
|
|
index += 1
|
|
Next
|
|
LEVEL1_NODE.ImageIndex = index
|
|
LEVEL1_NODE.SelectedImageIndex = index
|
|
' ..und einfügen
|
|
LEVEL0_NODE.Nodes.Add(LEVEL1_NODE)
|
|
'### LEVEL 2 laden #######
|
|
Dim expressionLevel2 As String
|
|
expressionLevel2 = "PARENT_GUID = " & ID1 'TYPE_NODE = 2 AND Einschränkung auf Type und Parent_Guid
|
|
Dim foundRowsLevel2() As DataRow
|
|
foundRowsLevel2 = DT_TREEVIEW_PER_CONTROLS.Select(expressionLevel2, "SEQUENCE,NODE_CAPTION")
|
|
Dim k As Integer
|
|
For k = 0 To foundRowsLevel2.GetUpperBound(0)
|
|
Dim ID2 = foundRowsLevel2(k)("GUID")
|
|
Dim LevelEntity2 = foundRowsLevel2(k)("ENTITY_ID")
|
|
ClassNodeNavigation.Check_NODE_CONFIG_ID(LevelEntity2)
|
|
Dim controlID2 = foundRowsLevel2(k)("CONTROL_ID")
|
|
Dim nodetext2 = foundRowsLevel2(k)("NODE_CAPTION")
|
|
RECORD_ID = foundRowsLevel2(k)("RECORD_ID")
|
|
NODE_CONFIG_ID = foundRowsLevel2(k)("NODE_CONFIG_ID")
|
|
' Node erstellen..
|
|
Dim LEVEL2_NODE As TreeNode
|
|
LEVEL2_NODE = New TreeNode(nodetext2)
|
|
LEVEL2_NODE.Tag = CreateNODE_TAG(LevelEntity, ID, RECORD_ID, NODE_CONFIG_ID)
|
|
|
|
index = 0
|
|
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
|
If img = NODE_CONFIG_ID & "#" & LevelEntity2 Then
|
|
Exit For
|
|
End If
|
|
index += 1
|
|
Next
|
|
LEVEL2_NODE.ImageIndex = index
|
|
LEVEL2_NODE.SelectedImageIndex = index
|
|
' ..und einfügen
|
|
LEVEL1_NODE.Nodes.Add(LEVEL2_NODE)
|
|
'### LEVEL 3 laden #######
|
|
Dim expressionLevel3 As String
|
|
expressionLevel3 = "PARENT_GUID = " & ID2 'TYPE_NODE = 3 AND Einschränkung auf Type und Parent_Guid
|
|
Dim foundRowsLevel3() As DataRow
|
|
foundRowsLevel3 = DT_TREEVIEW_PER_CONTROLS.Select(expressionLevel3, "SEQUENCE,NODE_CAPTION")
|
|
Dim l As Integer
|
|
For l = 0 To foundRowsLevel3.GetUpperBound(0)
|
|
Dim ID3 = foundRowsLevel3(l)("GUID")
|
|
Dim LevelEntity3 = foundRowsLevel3(l)("ENTITY_ID")
|
|
ClassNodeNavigation.Check_NODE_CONFIG_ID(LevelEntity3)
|
|
Dim controlID3 = foundRowsLevel3(l)("CONTROL_ID")
|
|
Dim nodetext3 = foundRowsLevel3(l)("NODE_CAPTION")
|
|
RECORD_ID = foundRowsLevel3(l)("RECORD_ID")
|
|
NODE_CONFIG_ID = foundRowsLevel3(l)("NODE_CONFIG_ID")
|
|
' Node erstellen..
|
|
Dim LEVEL3_NODE As TreeNode
|
|
LEVEL3_NODE = New TreeNode(nodetext3)
|
|
LEVEL3_NODE.Tag = CreateNODE_TAG(LevelEntity, ID, RECORD_ID, NODE_CONFIG_ID)
|
|
|
|
index = 0
|
|
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
|
If img = NODE_CONFIG_ID & "#" & LevelEntity3 Then
|
|
Exit For
|
|
End If
|
|
index += 1
|
|
Next
|
|
LEVEL3_NODE.ImageIndex = index
|
|
LEVEL3_NODE.SelectedImageIndex = index
|
|
' ..und einfügen
|
|
LEVEL2_NODE.Nodes.Add(LEVEL3_NODE)
|
|
'### LEVEL 4 laden #######
|
|
Dim expressionLevel4 As String
|
|
expressionLevel4 = "PARENT_GUID = " & ID3 'TYPE_NODE = 4 AND Einschränkung auf Type und Parent_Guid
|
|
Dim foundRowsLevel4() As DataRow
|
|
foundRowsLevel4 = DT_TREEVIEW_PER_CONTROLS.Select(expressionLevel4, "SEQUENCE,NODE_CAPTION")
|
|
Dim m As Integer
|
|
For m = 0 To foundRowsLevel4.GetUpperBound(0)
|
|
Dim ID5 = foundRowsLevel4(m)("GUID")
|
|
Dim LevelEntity5 = foundRowsLevel4(m)("ENTITY_ID")
|
|
ClassNodeNavigation.Check_NODE_CONFIG_ID(LevelEntity5)
|
|
Dim controlID5 = foundRowsLevel4(m)("CONTROL_ID")
|
|
Dim nodetext5 = foundRowsLevel4(m)("NODE_CAPTION")
|
|
RECORD_ID = foundRowsLevel4(m)("RECORD_ID")
|
|
NODE_CONFIG_ID = foundRowsLevel4(m)("NODE_CONFIG_ID")
|
|
' Node erstellen..
|
|
Dim LEVEL4_NODE As TreeNode
|
|
LEVEL4_NODE = New TreeNode(nodetext5)
|
|
LEVEL4_NODE.Tag = CreateNODE_TAG(LevelEntity, ID, RECORD_ID, NODE_CONFIG_ID)
|
|
|
|
index = 0
|
|
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
|
If img = NODE_CONFIG_ID & "#" & LevelEntity5 Then
|
|
Exit For
|
|
End If
|
|
index += 1
|
|
Next
|
|
LEVEL4_NODE.ImageIndex = index
|
|
LEVEL4_NODE.SelectedImageIndex = index
|
|
' ..und einfügen
|
|
LEVEL3_NODE.Nodes.Add(LEVEL4_NODE)
|
|
'### LEVEL 5 laden #######
|
|
Dim expressionLevel5 As String
|
|
Dim sortExp As String = "NODE_CONFIG_ID, SEQUENCE"
|
|
expressionLevel5 = "PARENT_GUID = " & ID5 'TYPE_NODE = 5 AND Einschränkung auf Type und Parent_Guid
|
|
Dim foundRowsLevel5() As DataRow
|
|
foundRowsLevel5 = DT_TREEVIEW_PER_CONTROLS.Select(expressionLevel5, sortExp)
|
|
Dim n As Integer
|
|
If ID5 = 1146 Then
|
|
Console.WriteLine("Aha")
|
|
End If
|
|
For n = 0 To foundRowsLevel5.GetUpperBound(0)
|
|
Dim ID6 = foundRowsLevel5(n)("GUID")
|
|
Dim LevelEntity6 = foundRowsLevel5(n)("ENTITY_ID")
|
|
ClassNodeNavigation.Check_NODE_CONFIG_ID(LevelEntity6)
|
|
Dim controlID6 = foundRowsLevel5(n)("CONTROL_ID")
|
|
Dim nodetext6 = foundRowsLevel5(n)("NODE_CAPTION")
|
|
RECORD_ID = foundRowsLevel5(n)("RECORD_ID")
|
|
NODE_CONFIG_ID = foundRowsLevel5(n)("NODE_CONFIG_ID")
|
|
' Node erstellen..
|
|
Dim LEVEL5_NODE As TreeNode
|
|
LEVEL5_NODE = New TreeNode(nodetext6)
|
|
LEVEL5_NODE.Tag = CreateNODE_TAG(LevelEntity, ID, RECORD_ID, NODE_CONFIG_ID)
|
|
|
|
index = 0
|
|
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
|
If img = NODE_CONFIG_ID & "#" & LevelEntity6 Then
|
|
Exit For
|
|
End If
|
|
index += 1
|
|
Next
|
|
LEVEL5_NODE.ImageIndex = index
|
|
LEVEL5_NODE.SelectedImageIndex = index
|
|
' ..und einfügen
|
|
LEVEL4_NODE.Nodes.Add(LEVEL5_NODE)
|
|
'### LEVEL 5 laden #######
|
|
Dim expressionLevel6 As String
|
|
expressionLevel6 = "PARENT_GUID = " & ID6 'TYPE_NODE = 6 AND Einschränkung auf Type und Parent_Guid
|
|
Dim foundRowsLevel6() As DataRow
|
|
foundRowsLevel6 = DT_TREEVIEW_PER_CONTROLS.Select(expressionLevel6, sortExp)
|
|
If ID6 = 1146 Then
|
|
Console.WriteLine("Aha")
|
|
End If
|
|
Dim o As Integer
|
|
For o = 0 To foundRowsLevel6.GetUpperBound(0)
|
|
Dim ID7 = foundRowsLevel6(o)("GUID")
|
|
Dim LevelEntity7 = foundRowsLevel6(o)("ENTITY_ID")
|
|
ClassNodeNavigation.Check_NODE_CONFIG_ID(LevelEntity7)
|
|
Dim controlID7 = foundRowsLevel6(o)("CONTROL_ID")
|
|
Dim nodetext7 = foundRowsLevel6(o)("NODE_CAPTION")
|
|
RECORD_ID = foundRowsLevel6(o)("RECORD_ID")
|
|
NODE_CONFIG_ID = foundRowsLevel6(o)("NODE_CONFIG_ID")
|
|
' Node erstellen..
|
|
Dim LEVEL6_NODE As TreeNode
|
|
LEVEL6_NODE = New TreeNode(nodetext7)
|
|
|
|
LEVEL6_NODE.Tag = CreateNODE_TAG(LevelEntity, ID, RECORD_ID, NODE_CONFIG_ID)
|
|
|
|
index = 0
|
|
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
|
If img = NODE_CONFIG_ID & "#" & LevelEntity7 Then
|
|
Exit For
|
|
End If
|
|
index += 1
|
|
Next
|
|
LEVEL6_NODE.ImageIndex = index
|
|
LEVEL6_NODE.SelectedImageIndex = index
|
|
' ..und einfügen
|
|
LEVEL5_NODE.Nodes.Add(LEVEL6_NODE)
|
|
'### LEVEL 7 laden #######
|
|
Dim expressionLevel7 As String
|
|
expressionLevel7 = "PARENT_GUID = " & ID7 'TYPE_NODE = 7 AND Einschränkung auf Type und Parent_Guid
|
|
Dim foundRowsLevel7() As DataRow
|
|
foundRowsLevel7 = DT_TREEVIEW_PER_CONTROLS.Select(expressionLevel7, sortExp)
|
|
Dim p As Integer
|
|
For p = 0 To foundRowsLevel7.GetUpperBound(0)
|
|
Dim ID8 = foundRowsLevel7(p)("GUID")
|
|
Dim LevelEntity8 = foundRowsLevel7(p)("ENTITY_ID")
|
|
ClassNodeNavigation.Check_NODE_CONFIG_ID(LevelEntity8)
|
|
Dim controlID8 = foundRowsLevel7(p)("CONTROL_ID")
|
|
Dim nodetext8 = foundRowsLevel7(p)("NODE_CAPTION")
|
|
RECORD_ID = foundRowsLevel7(p)("RECORD_ID")
|
|
NODE_CONFIG_ID = foundRowsLevel7(p)("NODE_CONFIG_ID")
|
|
' Node erstellen..
|
|
Dim LEVEL7_NODE As TreeNode
|
|
LEVEL7_NODE = New TreeNode(nodetext8)
|
|
LEVEL7_NODE.Tag = CreateNODE_TAG(LevelEntity, ID, RECORD_ID, NODE_CONFIG_ID)
|
|
|
|
index = 0
|
|
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
|
If img = NODE_CONFIG_ID & "#" & LevelEntity8 Then
|
|
Exit For
|
|
End If
|
|
index += 1
|
|
Next
|
|
LEVEL7_NODE.ImageIndex = index
|
|
LEVEL7_NODE.SelectedImageIndex = index
|
|
' ..und einfügen
|
|
LEVEL6_NODE.Nodes.Add(LEVEL7_NODE)
|
|
'### LEVEL 7 laden #######
|
|
Dim expressionLevel8 As String
|
|
expressionLevel8 = "PARENT_GUID = " & ID8 'TYPE_NODE = 7 AND Einschränkung auf Type und Parent_Guid
|
|
Dim foundRowsLevel8() As DataRow
|
|
foundRowsLevel8 = DT_TREEVIEW_PER_CONTROLS.Select(expressionLevel8, sortExp)
|
|
Dim q As Integer
|
|
For q = 0 To foundRowsLevel8.GetUpperBound(0)
|
|
Dim ID9 = foundRowsLevel8(q)("GUID")
|
|
Dim LevelEntity9 = foundRowsLevel8(q)("ENTITY_ID")
|
|
ClassNodeNavigation.Check_NODE_CONFIG_ID(LevelEntity9)
|
|
Dim controlID9 = foundRowsLevel8(q)("CONTROL_ID")
|
|
Dim nodetext9 = foundRowsLevel8(q)("NODE_CAPTION")
|
|
RECORD_ID = foundRowsLevel8(q)("RECORD_ID")
|
|
NODE_CONFIG_ID = foundRowsLevel8(q)("NODE_CONFIG_ID")
|
|
' Node erstellen..
|
|
Dim LEVEL8_NODE As TreeNode
|
|
LEVEL8_NODE = New TreeNode(nodetext9)
|
|
LEVEL8_NODE.Tag = CreateNODE_TAG(LevelEntity, ID, RECORD_ID, NODE_CONFIG_ID)
|
|
index = 0
|
|
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
|
If img = NODE_CONFIG_ID & "#" & LevelEntity9 Then
|
|
Exit For
|
|
End If
|
|
index += 1
|
|
Next
|
|
LEVEL8_NODE.ImageIndex = index
|
|
LEVEL8_NODE.SelectedImageIndex = index
|
|
' ..und einfügen
|
|
LEVEL7_NODE.Nodes.Add(LEVEL8_NODE)
|
|
'### LEVEL 8 laden #######
|
|
Next ' Level 7 Ende
|
|
Next ' Level 7 Ende
|
|
Next ' Level 6 Ende
|
|
Next ' Level 5 Ende
|
|
Next 'Level 4 Ende
|
|
Next 'Level 3 Ende
|
|
Next ' Level 2 Ende
|
|
Next 'Level 1 Ende
|
|
Next
|
|
mytrv.Nodes.Add(LEVEL0_NODE)
|
|
Else
|
|
MsgBox("No Nodes for Navigation. Check the Control Navigation Option or inform Digital Data!", MsgBoxStyle.Critical)
|
|
Return Nothing
|
|
End If
|
|
Return mytrv
|
|
Catch ex As Exception
|
|
ClassLogger.Add(">> Unexpected Error in CreateTreeViewNodes (NodeNavigation): " & ex.Message, True)
|
|
MsgBox("Error in CreateTreeViewNodes (NodeNavigation):" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
Return Nothing
|
|
End Try
|
|
End Function
|
|
Public Shared Function Return_ENTITY_FOR_TAG(NodeString As String)
|
|
|
|
If IsNumeric(NodeString) Then
|
|
Return NodeString
|
|
Else
|
|
Try
|
|
Dim staticListItems = NodeString.Split("#")
|
|
Return staticListItems(1)
|
|
Catch ex As Exception
|
|
ClassLogger.Add("Unexpected Error in Return_ENTITY_FOR_TAG ('" & NodeString & "'): " & ex.Message, True)
|
|
Return 0
|
|
End Try
|
|
End If
|
|
End Function
|
|
Public Shared Function Return_RECORD_forTag(NodeString As String)
|
|
If IsNumeric(NodeString) Then
|
|
Return NodeString
|
|
Else
|
|
Dim staticListItems = NodeString.Split("#")
|
|
If staticListItems(3).Contains("RECORD-ID") Then
|
|
Try
|
|
Dim _RECORD = staticListItems(3).ToString.Replace("RECORD-ID", "")
|
|
If IsNumeric(_RECORD) Then
|
|
Return _RECORD
|
|
Else
|
|
Return 0
|
|
End If
|
|
Catch ex As Exception
|
|
ClassLogger.Add("Unexpected Error in Return_RECORD_forTag ('" & NodeString & "'): " & ex.Message, True)
|
|
Return 0
|
|
End Try
|
|
Else
|
|
Return 0
|
|
End If
|
|
|
|
End If
|
|
End Function
|
|
Public Shared Function Return_NODEID_forTag(NodeString As String)
|
|
'If NODE_CONFIGURABLE_ID = NODE_CONFIG_ID Then
|
|
' vType = "CONFIG_NODE-" & NODE_CONFIG_ID.ToString
|
|
'Else
|
|
' vType = "NODE-TYPE-" & NODE_CONFIG_ID.ToString
|
|
'End If
|
|
'If Not IsDBNull(Record) Then
|
|
' TagString = vType & "#" & Entity & "#" & "NODE_ID-" & IDNode & "#RECORD-ID" & Record.ToString
|
|
'Else
|
|
' TagString = vType & "#" & Entity & "#" & "NODE_ID-" & IDNode
|
|
'End If
|
|
If IsNumeric(NodeString) Then
|
|
Return NodeString
|
|
Else
|
|
Dim staticListItems = NodeString.Split("#")
|
|
If staticListItems(2).Contains("NODE_ID") Then
|
|
Return staticListItems(2).ToString.Replace("NODE_ID-", "")
|
|
Else
|
|
Return 0
|
|
End If
|
|
|
|
End If
|
|
End Function
|
|
End Class
|