MS_05072016
This commit is contained in:
@@ -52,6 +52,8 @@ Public Class frmConstructor_Main
|
||||
Private DT_TREEVIEW_CONFIGURATION As DataTable
|
||||
Private TREEVIEW_IMAGELIST As ImageList
|
||||
Private CONTROL_NAVIGATION As Boolean = False
|
||||
Private CONTROL_NAVIGATION_LOADED As Boolean = False
|
||||
|
||||
|
||||
Private EBENE2_PARENT_ID As Integer
|
||||
Private EBENE3_PARENT_ID As Integer
|
||||
@@ -261,9 +263,8 @@ Public Class frmConstructor_Main
|
||||
Dim bimage() As Byte = row.Item("NODE_IMAGE")
|
||||
If Not IsDBNull(bimage) Then
|
||||
Dim Node_image = ByteArrayToBitmap(bimage)
|
||||
TREEVIEW_IMAGELIST.Images.Add(row.Item("TYPE_NODE"), Node_image)
|
||||
TREEVIEW_IMAGELIST.Images.Add("LEVEL#ENTITY" & row.Item("TYPE_NODE").ToString & row.Item("ENTITY_ID"), Node_image)
|
||||
End If
|
||||
|
||||
Next
|
||||
TreeViewMain.ImageList = TREEVIEW_IMAGELIST
|
||||
Catch ex As Exception
|
||||
@@ -458,6 +459,9 @@ Public Class frmConstructor_Main
|
||||
End Function
|
||||
Private Function Get_Grid_Layout_Filename()
|
||||
Dim EntityRegex As New RegularExpressions.Regex("\s+\(\d+\)")
|
||||
If CONTROL_NAVIGATION = True Then
|
||||
ACT_EBENE_STRING = "NODE_NAVIGATION"
|
||||
End If
|
||||
Dim EntityName As String = EntityRegex.Replace(ACT_EBENE_STRING, "")
|
||||
Dim Filename As String = String.Format("{0}-{1}-{2}-UserLayout.xml", grvwGrid.Name, GetSafeFilename(EntityName), CONSTRUCTORID)
|
||||
Return System.IO.Path.Combine(Application.UserAppDataPath(), Filename)
|
||||
@@ -720,22 +724,22 @@ Public Class frmConstructor_Main
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Function Get_Grid_Row_Handle(value As String)
|
||||
Try
|
||||
Dim rowHandle As Integer = DT_SELECTION.Rows.IndexOf(DT_SELECTION.Rows.Find(value))
|
||||
If rowHandle > 0 Then
|
||||
If GRID_TYPE = GridType.Grid Then
|
||||
grvwGrid.FocusedRowHandle = rowHandle
|
||||
ElseIf GRID_TYPE = GridType.Tiles Then
|
||||
grvwTiles.FocusedRowHandle = rowHandle
|
||||
Else
|
||||
grvwCarousel.FocusedRowHandle = rowHandle
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Error in Search_RowHandle: " & ex.Message, False)
|
||||
End Try
|
||||
End Function
|
||||
'Public Function Get_Grid_Row_Handle(value As String)
|
||||
' Try
|
||||
' Dim rowHandle As Integer = DT_SELECTION.Rows.IndexOf(DT_SELECTION.Rows.Find(value))
|
||||
' If rowHandle > 0 Then
|
||||
' If GRID_TYPE = GridType.Grid Then
|
||||
' grvwGrid.FocusedRowHandle = rowHandle
|
||||
' ElseIf GRID_TYPE = GridType.Tiles Then
|
||||
' grvwTiles.FocusedRowHandle = rowHandle
|
||||
' Else
|
||||
' grvwCarousel.FocusedRowHandle = rowHandle
|
||||
' End If
|
||||
' End If
|
||||
' Catch ex As Exception
|
||||
' ClassLogger.Add("Error in Search_RowHandle: " & ex.Message, False)
|
||||
' End Try
|
||||
'End Function
|
||||
Public Function Get_Grid_Column_Count() As Integer
|
||||
If GRID_TYPE = GridType.Grid Then
|
||||
Return grvwGrid.Columns.Count
|
||||
@@ -807,95 +811,101 @@ Public Class frmConstructor_Main
|
||||
e.Info.ImageIndex = -1
|
||||
End If
|
||||
End Sub
|
||||
Sub Column_Row_Handler()
|
||||
Sub Column_Row_Handler(Optional RECID As Integer = 0, Optional _navload As Boolean = False)
|
||||
|
||||
Dim sw As New Stopwatch
|
||||
sw.Start()
|
||||
Dim elapsed As Double
|
||||
If _FormClosing = True Then 'Or SaveRoutine_Active = True
|
||||
Exit Sub
|
||||
End If
|
||||
'Aussteigen, wenng erade die Entität gewechselt wird
|
||||
If ENTITY_LOADED = False Then
|
||||
Exit Sub
|
||||
End If
|
||||
If RightMouse_Clicked Then
|
||||
Exit Sub
|
||||
End If
|
||||
Dim Grid_RecordID = Get_Focused_Row_Cell_Value("Record-ID")
|
||||
If IsNothing(Grid_RecordID) Then
|
||||
Console.WriteLine("No Record ID selectable")
|
||||
Else
|
||||
If Grid_RecordID = 0 Then
|
||||
Console.WriteLine("Grid_RecordID = 0")
|
||||
If RECID = 0 Then
|
||||
If _FormClosing = True Then 'Or SaveRoutine_Active = True
|
||||
Exit Sub
|
||||
End If
|
||||
'Aussteigen, wenng erade die Entität gewechselt wird
|
||||
If ENTITY_LOADED = False Then
|
||||
Exit Sub
|
||||
End If
|
||||
If RightMouse_Clicked Then
|
||||
Exit Sub
|
||||
End If
|
||||
Dim Grid_RecordID = Get_Focused_Row_Cell_Value("Record-ID")
|
||||
If IsNothing(Grid_RecordID) Then
|
||||
Console.WriteLine("No Record ID selectable")
|
||||
Else
|
||||
If Grid_RecordID = RECORD_ID And ENTITY_RECORD_COUNT > 1 Then
|
||||
Exit Sub
|
||||
End If
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> RowHandler: RID: " & Grid_RecordID.ToString & " - " & Now, False)
|
||||
'Hier jetzt erst das Anzeigen für einen selektierten Datensatz
|
||||
If GRID_TYPE = GridType.Grid Then
|
||||
If IsTopFirstRow Then
|
||||
IsTopFirstRow = False
|
||||
'grvwGrid.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus
|
||||
'grvwGrid.OptionsBehavior.Editable = Not IsTopFirstRow
|
||||
'grvwGrid.OptionsSelection.EnableAppearanceFocusedCell = Not IsTopFirstRow
|
||||
'grvwGrid.OptionsSelection.EnableAppearanceFocusedRow = Not IsTopFirstRow
|
||||
'grvwGrid.OptionsSelection.EnableAppearanceHideSelection = Not IsTopFirstRow
|
||||
End If
|
||||
ElseIf GRID_TYPE = GridType.Carousel Then
|
||||
If IsTopFirstRow Then
|
||||
IsTopFirstRow = False
|
||||
grvwCarousel.OptionsBehavior.Editable = Not IsTopFirstRow
|
||||
End If
|
||||
ElseIf GRID_TYPE = GridType.Tiles Then
|
||||
If IsTopFirstRow Then
|
||||
IsTopFirstRow = False
|
||||
grvwTiles.OptionsBehavior.Editable = Not IsTopFirstRow
|
||||
End If
|
||||
End If
|
||||
|
||||
'Wird jetzt bei BeforeRowChange überprüft
|
||||
'Check_Record_Changed()
|
||||
|
||||
DisableEditMode()
|
||||
VerknüpfungenAnzeigenToolStripMenuItem.Enabled = True
|
||||
elapsed = sw.Elapsed.TotalSeconds
|
||||
sw.Stop()
|
||||
sw.Reset()
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Precheck Row took " & Format(elapsed, "0.000000000") & " seconds", False)
|
||||
sw.Start()
|
||||
' muss vor show selected record data kommen,
|
||||
' sodass die datasource für die angehakten werte existiert (checked list box)
|
||||
CtrlBuilder.WatchRecordChanges = False
|
||||
ClassControlValues.LoadControlValuesListWithPlaceholders(ENTITY_ID, Grid_RecordID, PARENT_RECORDID, CtrlBuilder.AllControls, ENTITY_ID)
|
||||
CtrlBuilder.WatchRecordChanges = True
|
||||
Show_Selected_Record_Data(Grid_RecordID, False)
|
||||
Dim sw1 As New Stopwatch
|
||||
sw1.Start()
|
||||
Check_Rights()
|
||||
elapsed = sw1.Elapsed.TotalSeconds
|
||||
sw1.Stop()
|
||||
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Check Rights took " & Format(elapsed, "0.000000000") & " seconds", False)
|
||||
If TCDetails.SelectedTabPage Is Nothing Then
|
||||
Exit Sub
|
||||
End If
|
||||
If TabPos.PageVisible = True And TCDetails.SelectedTabPage.Text.StartsWith("Posi") Then
|
||||
Clear_GridPos_View()
|
||||
Dim POS_GRID_RECORD = Get_Focused_Row_Cell_Value_pos("Record-ID")
|
||||
Load_Pos_Data()
|
||||
Load_POSGrid_Layout()
|
||||
End If
|
||||
|
||||
If RECORD_ID > 0 Then
|
||||
If RIGHT_ONLY_READ = False Then
|
||||
tsButtonEdit.Enabled = True
|
||||
End If
|
||||
Get_RecordCounts_Nodes()
|
||||
If Grid_RecordID = 0 Then
|
||||
Console.WriteLine("Grid_RecordID = 0")
|
||||
Else
|
||||
RECID = Grid_RecordID
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
If RECID = RECORD_ID And ENTITY_RECORD_COUNT > 1 Then
|
||||
Exit Sub
|
||||
End If
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> RowHandler: RID: " & RECID.ToString & " - " & Now, False)
|
||||
'Hier jetzt erst das Anzeigen für einen selektierten Datensatz
|
||||
If GRID_TYPE = GridType.Grid Then
|
||||
If IsTopFirstRow Then
|
||||
IsTopFirstRow = False
|
||||
'grvwGrid.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus
|
||||
'grvwGrid.OptionsBehavior.Editable = Not IsTopFirstRow
|
||||
'grvwGrid.OptionsSelection.EnableAppearanceFocusedCell = Not IsTopFirstRow
|
||||
'grvwGrid.OptionsSelection.EnableAppearanceFocusedRow = Not IsTopFirstRow
|
||||
'grvwGrid.OptionsSelection.EnableAppearanceHideSelection = Not IsTopFirstRow
|
||||
End If
|
||||
ElseIf GRID_TYPE = GridType.Carousel Then
|
||||
If IsTopFirstRow Then
|
||||
IsTopFirstRow = False
|
||||
grvwCarousel.OptionsBehavior.Editable = Not IsTopFirstRow
|
||||
End If
|
||||
ElseIf GRID_TYPE = GridType.Tiles Then
|
||||
If IsTopFirstRow Then
|
||||
IsTopFirstRow = False
|
||||
grvwTiles.OptionsBehavior.Editable = Not IsTopFirstRow
|
||||
End If
|
||||
End If
|
||||
|
||||
'Wird jetzt bei BeforeRowChange überprüft
|
||||
'Check_Record_Changed()
|
||||
|
||||
DisableEditMode()
|
||||
VerknüpfungenAnzeigenToolStripMenuItem.Enabled = True
|
||||
elapsed = sw.Elapsed.TotalSeconds
|
||||
sw.Stop()
|
||||
sw.Reset()
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Precheck Row took " & Format(elapsed, "0.000000000") & " seconds", False)
|
||||
sw.Start()
|
||||
' muss vor show selected record data kommen,
|
||||
' sodass die datasource für die angehakten werte existiert (checked list box)
|
||||
CtrlBuilder.WatchRecordChanges = False
|
||||
ClassControlValues.LoadControlValuesListWithPlaceholders(ENTITY_ID, RECID, PARENT_RECORDID, CtrlBuilder.AllControls, ENTITY_ID)
|
||||
CtrlBuilder.WatchRecordChanges = True
|
||||
Show_Selected_Record_Data(RECID, False)
|
||||
Dim sw1 As New Stopwatch
|
||||
sw1.Start()
|
||||
Check_Rights()
|
||||
elapsed = sw1.Elapsed.TotalSeconds
|
||||
sw1.Stop()
|
||||
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Check Rights took " & Format(elapsed, "0.000000000") & " seconds", False)
|
||||
If TCDetails.SelectedTabPage Is Nothing Then
|
||||
Exit Sub
|
||||
End If
|
||||
If TabPos.PageVisible = True And TCDetails.SelectedTabPage.Text.StartsWith("Posi") Then
|
||||
Clear_GridPos_View()
|
||||
Dim POS_GRID_RECORD = Get_Focused_Row_Cell_Value_pos("Record-ID")
|
||||
Load_Pos_Data()
|
||||
Load_POSGrid_Layout()
|
||||
End If
|
||||
|
||||
If RECORD_ID > 0 Then
|
||||
If RIGHT_ONLY_READ = False Then
|
||||
tsButtonEdit.Enabled = True
|
||||
End If
|
||||
If CONTROL_NAVIGATION = False Then
|
||||
Get_RecordCounts_Nodes()
|
||||
End If
|
||||
|
||||
End If
|
||||
'Liste der geänderten Control Values leeren
|
||||
CtrlBuilder.ControlsChanged.Clear()
|
||||
|
||||
@@ -904,6 +914,9 @@ Public Class frmConstructor_Main
|
||||
Console.WriteLine("Column_Row_Handler took {0}ms to load", sw.ElapsedMilliseconds)
|
||||
sw.Reset()
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >>>> Column/Row Change took " & Format(elapsed, "0.000000000") & " seconds", False)
|
||||
If CONTROL_NAVIGATION = True And _navload = False Then
|
||||
SearchNode(TreeViewMain.Nodes, RECORD_ID)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub Check_Rights()
|
||||
@@ -913,6 +926,8 @@ Public Class frmConstructor_Main
|
||||
tsmi_RecordDelete.Enabled = True
|
||||
MassenänderungToolStripMenuItem.Enabled = True
|
||||
DeleteToolStripMenuItem.Enabled = True
|
||||
UmbenennenToolStripMenuItem.Enabled = True
|
||||
DateiMitDatensatzVerknüpfenToolStripMenuItem.Enabled = True
|
||||
CopyToolStripMenuItem.Enabled = True
|
||||
RecordKopierenToolStripMenuItem.Enabled = True
|
||||
PropertiesToolStripMenuItem.Enabled = True
|
||||
@@ -964,6 +979,8 @@ Public Class frmConstructor_Main
|
||||
tsButtonDelete.Enabled = False
|
||||
tsmi_RecordDelete.Enabled = False
|
||||
MassenänderungToolStripMenuItem.Enabled = False
|
||||
UmbenennenToolStripMenuItem.Enabled = False
|
||||
DateiMitDatensatzVerknüpfenToolStripMenuItem.Enabled = False
|
||||
PropertiesToolStripMenuItem.Enabled = False
|
||||
CopyToolStripMenuItem.Enabled = False
|
||||
DeleteToolStripMenuItem.Enabled = False
|
||||
@@ -1049,16 +1066,76 @@ Public Class frmConstructor_Main
|
||||
Next
|
||||
TreeViewMain.Refresh()
|
||||
End Sub
|
||||
Private Sub NodeRecursive(ByVal n As TreeNode, searchRecord As Integer)
|
||||
Dim aNode As TreeNode
|
||||
For Each aNode In n.Nodes
|
||||
If Not IsNothing(aNode.Tag) Then
|
||||
If aNode.Tag.ToString.Contains("RECORD-ID") Then
|
||||
Dim Record = Return_RECORD_forTag(aNode.Tag)
|
||||
If IsNumeric(Record) And Record <> 0 And searchRecord = Record Then
|
||||
TreeViewMain.SelectedNode = aNode
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
End If
|
||||
End If
|
||||
NodeRecursive(aNode, searchRecord)
|
||||
Next
|
||||
End Sub
|
||||
Public Sub SearchNode(tncoll As TreeNodeCollection, searchRecord As Integer)
|
||||
Try
|
||||
Dim n As TreeNode
|
||||
For Each n In TreeViewMain.Nodes
|
||||
NodeRecursive(n, searchRecord)
|
||||
Next
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Error in SearchNode: " & ex.Message, True)
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub TreeViewMain_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles TreeViewMain.AfterSelect
|
||||
DisableEditMode()
|
||||
SetSelectedNodeStyle(TreeViewMain.Nodes)
|
||||
If CONTROL_NAVIGATION = False Then
|
||||
SetSelectedNodeStyle(TreeViewMain.Nodes)
|
||||
|
||||
Else
|
||||
ACT_EBENE_STRING = "NODE_NAVIGATION"
|
||||
Dim SelectedNode As TreeNode = TryCast(TreeViewMain.SelectedNode, TreeNode)
|
||||
If SelectedNode IsNot Nothing Then
|
||||
SelectedNode.NodeFont = New Font(TreeViewMain.Font.FontFamily, TreeViewMain.Font.Size, FontStyle.Bold)
|
||||
SelectedNode.Text = SelectedNode.Text
|
||||
End If
|
||||
End If
|
||||
|
||||
Load_Tree_View_Data()
|
||||
If CONTROL_NAVIGATION = True Then
|
||||
Dim SelectedNode As TreeNode = TryCast(TreeViewMain.SelectedNode, TreeNode)
|
||||
If SelectedNode IsNot Nothing Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> NodeTag: " & SelectedNode.Tag.ToString, False)
|
||||
If SelectedNode.Tag.ToString.Contains("RECORD-ID") Then
|
||||
Dim Record = Return_RECORD_forTag(SelectedNode.Tag)
|
||||
If Record <> 0 Then
|
||||
Column_Row_Handler(Record, True)
|
||||
LocateRecordById(RECORD_ID)
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub TreeViewMain_BeforeSelect(sender As Object, e As TreeViewCancelEventArgs) Handles TreeViewMain.BeforeSelect
|
||||
If grvwGrid.Columns.Count > 0 Then
|
||||
Save_Grid_Layout()
|
||||
If CONTROL_NAVIGATION = False Then
|
||||
If grvwGrid.Columns.Count > 0 Then
|
||||
Save_Grid_Layout()
|
||||
End If
|
||||
Else
|
||||
If Not IsNothing(TreeViewMain.SelectedNode) Then
|
||||
TreeViewMain.SelectedNode.NodeFont = New Font(TreeViewMain.Font.FontFamily, TreeViewMain.Font.Size, FontStyle.Regular)
|
||||
End If
|
||||
|
||||
End If
|
||||
End Sub
|
||||
|
||||
@@ -1083,11 +1160,24 @@ Public Class frmConstructor_Main
|
||||
Dim controlID = foundRowsLevel0(i)("CONTROL_ID")
|
||||
Dim nodetext = foundRowsLevel0(i)("ID2")
|
||||
Dim Type_node = foundRowsLevel0(i)("TYPE_NODE")
|
||||
Dim RECORD_ID = foundRowsLevel0(i)("RECORD_ID")
|
||||
Dim LEVEL0_NODE As TreeNode
|
||||
LEVEL0_NODE = New TreeNode(nodetext)
|
||||
LEVEL0_NODE.Tag = LevelEntity & "CONTROL-ID" & controlID.ToString & "#" & ID
|
||||
LEVEL0_NODE.ImageIndex = 0
|
||||
LEVEL0_NODE.SelectedImageIndex = 0
|
||||
If Not IsDBNull(RECORD_ID) Then
|
||||
LEVEL0_NODE.Tag = LevelEntity & "CONTROL-ID" & controlID.ToString & "#" & ID & "#RECORD-ID" & RECORD_ID.ToString
|
||||
Else
|
||||
LEVEL0_NODE.Tag = LevelEntity & "CONTROL-ID" & controlID.ToString & "#" & ID
|
||||
End If
|
||||
|
||||
Dim index As Integer = 0
|
||||
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
||||
If img.Replace("LEVEL#ENTITY", "") = Type_node.ToString & LevelEntity.ToString Then
|
||||
Exit For
|
||||
End If
|
||||
index += 1
|
||||
Next
|
||||
LEVEL0_NODE.ImageIndex = index
|
||||
LEVEL0_NODE.SelectedImageIndex = index
|
||||
TreeViewMain.Nodes.Add(LEVEL0_NODE)
|
||||
'### LEVEL 1 laden #######
|
||||
Dim expressionLevel1 As String
|
||||
@@ -1096,63 +1186,203 @@ Public Class frmConstructor_Main
|
||||
foundRowsLevel1 = DT_TREEVIEW_PER_CONTROLS.Select(expressionLevel1)
|
||||
Dim j As Integer
|
||||
For j = 0 To foundRowsLevel1.GetUpperBound(0)
|
||||
Dim ID2 = foundRowsLevel1(j)("GUID")
|
||||
Dim LevelEntity2 = foundRowsLevel1(j)("ENTITY_ID")
|
||||
Dim controlID2 = foundRowsLevel1(j)("CONTROL_ID")
|
||||
Dim nodetext2 = foundRowsLevel1(j)("ID2")
|
||||
Dim ID1 = foundRowsLevel1(j)("GUID")
|
||||
Dim LevelEntity1 = foundRowsLevel1(j)("ENTITY_ID")
|
||||
Dim controlID1 = foundRowsLevel1(j)("CONTROL_ID")
|
||||
Dim nodetext1 = foundRowsLevel1(j)("ID2")
|
||||
Dim Type_node1 = foundRowsLevel1(i)("TYPE_NODE")
|
||||
RECORD_ID = foundRowsLevel1(i)("RECORD_ID")
|
||||
' Node erstellen..
|
||||
Dim LEVEL1_NODE As TreeNode
|
||||
LEVEL1_NODE = New TreeNode(nodetext2)
|
||||
LEVEL1_NODE.Tag = LevelEntity2 & "CONTROL-ID" & controlID2.ToString & "#" & ID2
|
||||
LEVEL1_NODE.ImageIndex = 1
|
||||
LEVEL1_NODE.SelectedImageIndex = 1
|
||||
LEVEL1_NODE = New TreeNode(nodetext1)
|
||||
If Not IsDBNull(RECORD_ID) Then
|
||||
LEVEL1_NODE.Tag = LevelEntity1 & "CONTROL-ID" & controlID1.ToString & "#" & ID1 & "#RECORD-ID" & RECORD_ID.ToString
|
||||
Else
|
||||
LEVEL1_NODE.Tag = LevelEntity1 & "CONTROL-ID" & controlID1.ToString & "#" & ID1
|
||||
End If
|
||||
|
||||
index = 0
|
||||
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
||||
If img.Replace("LEVEL#ENTITY", "") = Type_node1 & LevelEntity1.ToString 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 = "TYPE_NODE = 2 AND PARENT_GUID = " & ID2 'Einschränkung auf Type und Parent_Guid
|
||||
expressionLevel2 = "TYPE_NODE = 2 AND PARENT_GUID = " & ID1 'Einschränkung auf Type und Parent_Guid
|
||||
Dim foundRowsLevel2() As DataRow
|
||||
foundRowsLevel2 = DT_TREEVIEW_PER_CONTROLS.Select(expressionLevel2)
|
||||
Dim k As Integer
|
||||
For k = 0 To foundRowsLevel2.GetUpperBound(0)
|
||||
Dim ID3 = foundRowsLevel2(k)("GUID")
|
||||
Dim LevelEntity3 = foundRowsLevel2(k)("ENTITY_ID")
|
||||
Dim controlID3 = foundRowsLevel2(k)("CONTROL_ID")
|
||||
Dim nodetext3 = foundRowsLevel2(k)("ID2")
|
||||
Dim ID2 = foundRowsLevel2(k)("GUID")
|
||||
Dim LevelEntity2 = foundRowsLevel2(k)("ENTITY_ID")
|
||||
Dim controlID2 = foundRowsLevel2(k)("CONTROL_ID")
|
||||
Dim nodetext2 = foundRowsLevel2(k)("ID2")
|
||||
RECORD_ID = foundRowsLevel2(k)("RECORD_ID")
|
||||
' Node erstellen..
|
||||
Dim LEVEL2_NODE As TreeNode
|
||||
LEVEL2_NODE = New TreeNode(nodetext3)
|
||||
LEVEL2_NODE.Tag = LevelEntity3 & "CONTROL-ID" & controlID3.ToString & "#" & ID3
|
||||
LEVEL2_NODE.ImageIndex = 2
|
||||
LEVEL2_NODE.SelectedImageIndex = 2
|
||||
LEVEL2_NODE = New TreeNode(nodetext2)
|
||||
If Not IsDBNull(RECORD_ID) Then
|
||||
LEVEL2_NODE.Tag = LevelEntity2 & "CONTROL-ID" & controlID2.ToString & "#" & ID2 & "#RECORD-ID" & RECORD_ID.ToString
|
||||
Else
|
||||
LEVEL2_NODE.Tag = LevelEntity2 & "CONTROL-ID" & controlID2.ToString & "#" & ID2
|
||||
End If
|
||||
|
||||
index = 0
|
||||
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
||||
If img.Replace("LEVEL#ENTITY", "") = "2" & LevelEntity2.ToString 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 = "TYPE_NODE = 3 AND PARENT_GUID = " & ID3 'Einschränkung auf Type und Parent_Guid
|
||||
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 l As Integer
|
||||
For l = 0 To foundRowsLevel3.GetUpperBound(0)
|
||||
Dim ID4 = foundRowsLevel3(k)("GUID")
|
||||
Dim LevelEntity4 = foundRowsLevel3(k)("ENTITY_ID")
|
||||
Dim controlID4 = foundRowsLevel3(k)("CONTROL_ID")
|
||||
Dim nodetext4 = foundRowsLevel3(k)("ID2")
|
||||
Dim ID3 = foundRowsLevel3(l)("GUID")
|
||||
Dim LevelEntity3 = foundRowsLevel3(l)("ENTITY_ID")
|
||||
Dim controlID3 = foundRowsLevel3(l)("CONTROL_ID")
|
||||
Dim nodetext3 = foundRowsLevel3(l)("ID2")
|
||||
RECORD_ID = foundRowsLevel3(l)("RECORD_ID")
|
||||
' Node erstellen..
|
||||
Dim LEVEL3_NODE As TreeNode
|
||||
LEVEL3_NODE = New TreeNode(nodetext4)
|
||||
LEVEL3_NODE.Tag = LevelEntity3 & "CONTROL-ID" & controlID4.ToString & "#" & ID4
|
||||
LEVEL3_NODE.ImageIndex = 3
|
||||
LEVEL3_NODE.SelectedImageIndex = 3
|
||||
LEVEL3_NODE = New TreeNode(nodetext3)
|
||||
If Not IsDBNull(RECORD_ID) Then
|
||||
LEVEL3_NODE.Tag = LevelEntity3 & "CONTROL-ID" & controlID3.ToString & "#" & ID3 & "#RECORD-ID" & RECORD_ID.ToString
|
||||
Else
|
||||
LEVEL3_NODE.Tag = LevelEntity3 & "CONTROL-ID" & controlID3.ToString & "#" & ID3
|
||||
End If
|
||||
|
||||
index = 0
|
||||
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
||||
If img.Replace("LEVEL#ENTITY", "") = "3" & LevelEntity3.ToString 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)
|
||||
Next
|
||||
'### LEVEL 4 laden #######
|
||||
Dim expressionLevel4 As String
|
||||
expressionLevel4 = "TYPE_NODE = 4 AND PARENT_GUID = " & ID3 'Einschränkung auf Type und Parent_Guid
|
||||
Dim foundRowsLevel4() As DataRow
|
||||
foundRowsLevel4 = DT_TREEVIEW_PER_CONTROLS.Select(expressionLevel4)
|
||||
Dim m As Integer
|
||||
For m = 0 To foundRowsLevel4.GetUpperBound(0)
|
||||
Dim ID5 = foundRowsLevel4(m)("GUID")
|
||||
Dim LevelEntity5 = foundRowsLevel4(m)("ENTITY_ID")
|
||||
Dim controlID5 = foundRowsLevel4(m)("CONTROL_ID")
|
||||
Dim nodetext5 = foundRowsLevel4(m)("ID2")
|
||||
RECORD_ID = foundRowsLevel4(m)("RECORD_ID")
|
||||
' Node erstellen..
|
||||
Dim LEVEL4_NODE As TreeNode
|
||||
LEVEL4_NODE = New TreeNode(nodetext5)
|
||||
If Not IsDBNull(RECORD_ID) Then
|
||||
LEVEL4_NODE.Tag = LevelEntity5 & "CONTROL-ID" & controlID5.ToString & "#" & ID5 & "#RECORD-ID" & RECORD_ID.ToString
|
||||
Else
|
||||
LEVEL4_NODE.Tag = LevelEntity5 & "CONTROL-ID" & controlID5.ToString & "#" & ID5
|
||||
End If
|
||||
|
||||
Next
|
||||
'### Level 2 Ende ########
|
||||
Next
|
||||
index = 0
|
||||
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
||||
If img.Replace("LEVEL#ENTITY", "") = "4" & LevelEntity5.ToString 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
|
||||
expressionLevel5 = "TYPE_NODE = 5 AND PARENT_GUID = " & ID5 'Einschränkung auf Type und Parent_Guid
|
||||
Dim foundRowsLevel5() As DataRow
|
||||
foundRowsLevel5 = DT_TREEVIEW_PER_CONTROLS.Select(expressionLevel5)
|
||||
Dim n As Integer
|
||||
For n = 0 To foundRowsLevel5.GetUpperBound(0)
|
||||
Dim ID6 = foundRowsLevel5(n)("GUID")
|
||||
Dim LevelEntity6 = foundRowsLevel5(n)("ENTITY_ID")
|
||||
Dim controlID6 = foundRowsLevel5(n)("CONTROL_ID")
|
||||
Dim nodetext6 = foundRowsLevel5(n)("ID2")
|
||||
RECORD_ID = foundRowsLevel5(n)("RECORD_ID")
|
||||
' Node erstellen..
|
||||
Dim LEVEL5_NODE As TreeNode
|
||||
LEVEL5_NODE = New TreeNode(nodetext6)
|
||||
If Not IsDBNull(RECORD_ID) Then
|
||||
LEVEL5_NODE.Tag = LevelEntity6 & "CONTROL-ID" & controlID6.ToString & "#" & ID6 & "#RECORD-ID" & RECORD_ID.ToString
|
||||
Else
|
||||
LEVEL5_NODE.Tag = LevelEntity6 & "CONTROL-ID" & controlID6.ToString & "#" & ID6
|
||||
End If
|
||||
|
||||
index = 0
|
||||
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
||||
If img.Replace("LEVEL#ENTITY", "") = "5" & LevelEntity6.ToString 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 = "TYPE_NODE = 6 AND PARENT_GUID = " & ID6 'Einschränkung auf Type und Parent_Guid
|
||||
Dim foundRowsLevel6() As DataRow
|
||||
foundRowsLevel6 = DT_TREEVIEW_PER_CONTROLS.Select(expressionLevel6)
|
||||
Dim o As Integer
|
||||
For o = 0 To foundRowsLevel6.GetUpperBound(0)
|
||||
Dim ID7 = foundRowsLevel6(o)("GUID")
|
||||
Dim LevelEntity7 = foundRowsLevel6(o)("ENTITY_ID")
|
||||
Dim controlID7 = foundRowsLevel6(o)("CONTROL_ID")
|
||||
Dim nodetext7 = foundRowsLevel6(o)("ID2")
|
||||
RECORD_ID = foundRowsLevel6(o)("RECORD_ID")
|
||||
' Node erstellen..
|
||||
Dim LEVEL6_NODE As TreeNode
|
||||
LEVEL6_NODE = New TreeNode(nodetext7)
|
||||
If Not IsDBNull(RECORD_ID) Then
|
||||
LEVEL6_NODE.Tag = LevelEntity7 & "CONTROL-ID" & controlID7.ToString & "#" & ID7 & "#RECORD-ID" & RECORD_ID.ToString
|
||||
Else
|
||||
LEVEL6_NODE.Tag = LevelEntity7 & "CONTROL-ID" & controlID7.ToString & "#" & ID7
|
||||
End If
|
||||
|
||||
index = 0
|
||||
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
|
||||
If img.Replace("LEVEL#ENTITY", "") = "6" & LevelEntity7.ToString 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)
|
||||
'#####
|
||||
Next
|
||||
Next ' Level 5 Ende
|
||||
Next 'Level 4 Ende
|
||||
Next 'Level 3 Ende
|
||||
Next ' Level 2 Ende
|
||||
Next 'Level 1 Ende
|
||||
Next
|
||||
|
||||
|
||||
|
||||
Else
|
||||
MsgBox("Check the Control Navigation Option or inform Digital Data!", MsgBoxStyle.Critical)
|
||||
Me.Close()
|
||||
@@ -1251,8 +1481,39 @@ Public Class frmConstructor_Main
|
||||
End If
|
||||
End If
|
||||
End Function
|
||||
Private Function Return_RECORD_forTag(NodeString As String)
|
||||
If IsNumeric(NodeString) Then
|
||||
Return NodeString
|
||||
Else
|
||||
Dim staticListItems = NodeString.Split("#")
|
||||
If staticListItems(2).Contains("RECORD-ID") Then
|
||||
Try
|
||||
Dim _RECORD = staticListItems(2).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
|
||||
Sub Load_Tree_View_Data()
|
||||
Try
|
||||
If CONTROL_NAVIGATION = True Then
|
||||
If CONTROL_NAVIGATION_LOADED = True Then
|
||||
Exit Sub
|
||||
Else
|
||||
CONTROL_NAVIGATION_LOADED = True
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim sw As New Stopwatch
|
||||
sw.Start()
|
||||
Dim SelectedNode As TreeNode = TryCast(TreeViewMain.SelectedNode, TreeNode)
|
||||
@@ -1261,57 +1522,49 @@ Public Class frmConstructor_Main
|
||||
ENTITY_LOADED = False
|
||||
ENTITY_ID = Return_ENTITY_FOR_TAG(SelectedNode.Tag)
|
||||
CURRENT_FORM_ID = ENTITY_ID
|
||||
Dim parentNode As TreeNode = TryCast(SelectedNode.Parent, TreeNode)
|
||||
|
||||
ACT_EBENE = 2
|
||||
CURRENT_ACT_LEVEL = 2
|
||||
If parentNode IsNot Nothing Then
|
||||
Dim grandParentNode As TreeNode = TryCast(parentNode.Parent, TreeNode)
|
||||
If grandParentNode IsNot Nothing Then
|
||||
ACT_EBENE = 3
|
||||
CURRENT_ACT_LEVEL = 3
|
||||
End If
|
||||
Else
|
||||
ACT_EBENE = 1
|
||||
CURRENT_ACT_LEVEL = 1
|
||||
End If
|
||||
|
||||
Dim result = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
|
||||
Select form
|
||||
Where form.Item("FORM_ID") = ENTITY_ID).Single()
|
||||
|
||||
Select form
|
||||
Where form.Item("FORM_ID") = ENTITY_ID).Single()
|
||||
CONSTRUCTOR_DETAIL_ID = result.Item("GUID")
|
||||
|
||||
'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
|
||||
If CONTROL_NAVIGATION = True Then
|
||||
If SelectedNode.Tag.ToString.Contains("RECORD_ID") Then
|
||||
Console.WriteLine("Record beinhaltet")
|
||||
End If
|
||||
Console.WriteLine("CONTROL Navigacion")
|
||||
Else
|
||||
Dim parentNode As TreeNode = TryCast(SelectedNode.Parent, TreeNode)
|
||||
|
||||
ACT_EBENE = 2
|
||||
CURRENT_ACT_LEVEL = 2
|
||||
If parentNode IsNot Nothing Then
|
||||
Dim grandParentNode As TreeNode = TryCast(parentNode.Parent, TreeNode)
|
||||
If grandParentNode IsNot Nothing Then
|
||||
ACT_EBENE = 3
|
||||
CURRENT_ACT_LEVEL = 3
|
||||
End If
|
||||
Else
|
||||
ACT_EBENE = 1
|
||||
CURRENT_ACT_LEVEL = 1
|
||||
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)
|
||||
Get_RecordCounts_Nodes()
|
||||
|
||||
If CONTROL_NAVIGATION = True Then
|
||||
If SelectedNode.Tag.ToString.Contains("RECORD_ID") Then
|
||||
Console.WriteLine("Record beinhaltet")
|
||||
End If
|
||||
Console.WriteLine("CONTROL Navigacion")
|
||||
Else
|
||||
Get_RecordCounts_Nodes()
|
||||
End If
|
||||
Load_Entity_Data(ACT_EBENE)
|
||||
|
||||
sw.Stop()
|
||||
@@ -1327,6 +1580,9 @@ Public Class frmConstructor_Main
|
||||
|
||||
Sub Get_RecordCounts_Nodes()
|
||||
Try
|
||||
If CONTROL_NAVIGATION = True Then
|
||||
Exit Sub
|
||||
End If
|
||||
Dim selnode As TreeNode = TreeViewMain.SelectedNode
|
||||
Dim a As Integer = 0
|
||||
For Each childNodeLevel1 As TreeNode In selnode.Nodes
|
||||
@@ -1752,7 +2008,8 @@ Public Class frmConstructor_Main
|
||||
If EDIT_STATE = EditState.Insert Then
|
||||
'Die Daten neu laden
|
||||
Load_Entity_Data_Only()
|
||||
Get_Grid_Row_Handle(NEW_RECORD_ID)
|
||||
LocateRecordById(RECORD_ID)
|
||||
'Get_Grid_Row_Handle(NEW_RECORD_ID)
|
||||
Else
|
||||
'Die Daten neu laden
|
||||
Load_Entity_Data_Only()
|
||||
@@ -1763,6 +2020,7 @@ Public Class frmConstructor_Main
|
||||
' Laden der Daten bedeutet nicht dass Daten vom Benutzer geändert wurden!
|
||||
RECORD_CHANGED = False
|
||||
End If
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
@@ -2813,13 +3071,15 @@ Public Class frmConstructor_Main
|
||||
End If
|
||||
|
||||
HideColumns()
|
||||
Dim selnode As TreeNode = TreeViewMain.SelectedNode
|
||||
Dim origtext As String = selnode.Text
|
||||
If origtext.Contains(" (") Then
|
||||
Dim existingstring = origtext.Substring(0, origtext.IndexOf("(") - 1)
|
||||
selnode.Text = String.Format("{0} ({1})", existingstring, Get_Grid_Row_Count())
|
||||
Else
|
||||
selnode.Text = String.Format("{0} ({1})", selnode.Text, Get_Grid_Row_Count())
|
||||
If CONTROL_NAVIGATION = False Then
|
||||
Dim selnode As TreeNode = TreeViewMain.SelectedNode
|
||||
Dim origtext As String = selnode.Text
|
||||
If origtext.Contains(" (") Then
|
||||
Dim existingstring = origtext.Substring(0, origtext.IndexOf("(") - 1)
|
||||
selnode.Text = String.Format("{0} ({1})", existingstring, Get_Grid_Row_Count())
|
||||
Else
|
||||
selnode.Text = String.Format("{0} ({1})", selnode.Text, Get_Grid_Row_Count())
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Error in LoadGrid_Selection:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
@@ -3304,7 +3564,6 @@ Public Class frmConstructor_Main
|
||||
#Region "WindreamSuche"
|
||||
Private Sub Check_windream_Show(FORM_VIEW_ID As Integer)
|
||||
Try
|
||||
|
||||
'Dim sql = "SELECT * FROM TBPMO_FORM_VIEW WHERE WINDREAM_SEARCH <> '' AND GUID = " & FORM_VIEW_ID
|
||||
'Dim DTWD As DataTable = ClassDatabase.Return_Datatable(sql)
|
||||
Dim wdsearch = DT_TBPMO_FORM_VIEW.Rows(0).Item("WINDREAM_SEARCH")
|
||||
@@ -5365,6 +5624,7 @@ Public Class frmConstructor_Main
|
||||
' Rename file.
|
||||
My.Computer.FileSystem.RenameFile(OldName, NewName)
|
||||
RUN_WDSEARCH_GRID("RECORD")
|
||||
ContextMenuStripResultFiles.Close()
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in Renaming files: " & ex.Message, MsgBoxStyle.Critical)
|
||||
|
||||
Reference in New Issue
Block a user