3.7.2 Optimierungen und Button Knoten hinzufügen
This commit is contained in:
@@ -44,6 +44,8 @@ Public Class frmNodeNavigation
|
||||
Private Property DT_RESULTLIST_OPTIONS As DataTable
|
||||
Private Property DT_RESULTLIST_VARIABLE_VALUE As DataTable
|
||||
Private Property DT_ENTITY_DATA As DataTable
|
||||
Private Property DT_CONFIGURABLE_NODES As DataTable
|
||||
|
||||
Private Property ENTITY_TYPE As String = ""
|
||||
Private Property DT_TBPMO_FORM_VIEW As DataTable
|
||||
Private Property DT_CONSTRUCT_VIEW As DataTable
|
||||
@@ -267,14 +269,14 @@ Public Class frmNodeNavigation
|
||||
imageInit.EndInit()
|
||||
End If
|
||||
End Try
|
||||
|
||||
TreeListDevexpress.StateImageList = ImageCollection1
|
||||
TreeListDevexpress.BeginUpdate()
|
||||
Try
|
||||
TreeListDevexpress.DataSource = DT_STRUCTURE_NODES
|
||||
TreeListDevexpress.KeyFieldName = "GUID"
|
||||
TreeListDevexpress.ParentFieldName = "PARENT_GUID"
|
||||
TreeListDevexpress.Columns("SEQUENCE").SortOrder = SortOrder.Ascending
|
||||
TreeListDevexpress.StateImageList = ImageCollection1
|
||||
|
||||
|
||||
Dim oVisibleColumns As New System.Collections.Generic.HashSet(Of String)(StringComparer.OrdinalIgnoreCase) From {"NODE_CAPTION"}
|
||||
For Each oColumn As TreeListColumn In TreeListDevexpress.Columns
|
||||
@@ -283,7 +285,7 @@ Public Class frmNodeNavigation
|
||||
Finally
|
||||
TreeListDevexpress.EndUpdate()
|
||||
End Try
|
||||
|
||||
TreeListDevexpress.Refresh() ' ✅ Erzwingt sofortiges Neuzeichnen der Icons
|
||||
JumptoNode()
|
||||
|
||||
Catch ex As Exception
|
||||
@@ -406,8 +408,8 @@ Public Class frmNodeNavigation
|
||||
CurrentNodeConfigId = oNodeConfigId
|
||||
|
||||
AvailableConfigNodes.Clear()
|
||||
If Not IsNothing(NODE_CONFIGURABLE_NODES_DT) Then
|
||||
Dim oNodeConfigList = NODE_CONFIGURABLE_NODES_DT.Select($"PARENT_NODE = {oNodeConfigId}").
|
||||
If Not IsNothing(DT_CONFIGURABLE_NODES) Then
|
||||
Dim oNodeConfigList = DT_CONFIGURABLE_NODES.Select($"PARENT_NODE = {oNodeConfigId}").
|
||||
Cast(Of DataRow).
|
||||
Select(Function(row) New frmNewNode.NodeConfig() With {
|
||||
.Id = row.Item("GUID"),
|
||||
@@ -417,7 +419,7 @@ Public Class frmNodeNavigation
|
||||
End If
|
||||
|
||||
NNLogger.Info($"Node changed: NodeID={oNodeConfigId}, NodeGUID={oGuid}, ConfigNodesFound={AvailableConfigNodes.Count}, " &
|
||||
$"ButtonVisible={btnCreateNewNode.Visibility}, ConfigTableRows={If(IsNothing(NODE_CONFIGURABLE_NODES_DT), 0, NODE_CONFIGURABLE_NODES_DT.Rows.Count)}")
|
||||
$"ButtonVisible={btnCreateNewNode.Visibility}, ConfigTableRows={If(IsNothing(DT_CONFIGURABLE_NODES), 0, DT_CONFIGURABLE_NODES.Rows.Count)}")
|
||||
|
||||
|
||||
' NEUE zentrale Methode aufrufen statt direkter Manipulation
|
||||
@@ -465,9 +467,6 @@ Public Class frmNodeNavigation
|
||||
btnCreateNewNode.Enabled = False
|
||||
Else
|
||||
Record_Group_Enable(True)
|
||||
|
||||
|
||||
' btnCreateNewNode.Enabled = True
|
||||
End If
|
||||
|
||||
If RIGHT_READ_ONLY_DOC = False Then
|
||||
@@ -508,11 +507,11 @@ Public Class frmNodeNavigation
|
||||
End Sub
|
||||
' Neue zentrale Methode zum konsistenten Setzen des Button-Status
|
||||
Private Sub UpdateCreateNodeButtonState()
|
||||
Try
|
||||
' *** HIER: Eingangsdiagnose ***
|
||||
Try ' *** HIER: Eingangsdiagnose ***
|
||||
NNLogger.Debug($"UpdateCreateNodeButtonState called - Visibility={btnCreateNewNode.Visibility}, " &
|
||||
$"CurrentEnabled={btnCreateNewNode.Enabled}, AvailableNodes={AvailableConfigNodes.Count}, " &
|
||||
$"ConfigTableExists={Not IsNothing(NODE_CONFIGURABLE_NODES_DT)}")
|
||||
$"ConfigTableExists={Not IsNothing(DT_CONFIGURABLE_NODES)}, " &
|
||||
$"RIGHT_RECORD_AND_FILE_READ_ONLY={RIGHT_RECORD_AND_FILE_READ_ONLY}")
|
||||
|
||||
If btnCreateNewNode.Visibility <> DevExpress.XtraBars.BarItemVisibility.Always Then
|
||||
Exit Sub
|
||||
@@ -520,12 +519,14 @@ Public Class frmNodeNavigation
|
||||
|
||||
' Button aktivieren wenn:
|
||||
' 1. Konfigurierbare Nodes existieren UND
|
||||
' 2. Verfügbare Config-Nodes für aktuellen Node vorhanden sind
|
||||
' 2. Verfügbare Config-Nodes für aktuellen Node vorhanden sind UND
|
||||
' 3. Benutzer hat Schreibrechte (nicht Read-Only)
|
||||
Dim shouldEnable As Boolean = False
|
||||
|
||||
If Not IsNothing(NODE_CONFIGURABLE_NODES_DT) AndAlso
|
||||
NODE_CONFIGURABLE_NODES_DT.Rows.Count > 0 AndAlso
|
||||
AvailableConfigNodes.Count > 0 Then
|
||||
If Not IsNothing(DT_CONFIGURABLE_NODES) AndAlso
|
||||
DT_CONFIGURABLE_NODES.Rows.Count > 0 AndAlso
|
||||
AvailableConfigNodes.Count > 0 AndAlso
|
||||
RIGHT_RECORD_AND_FILE_READ_ONLY = False Then
|
||||
shouldEnable = True
|
||||
End If
|
||||
|
||||
@@ -539,7 +540,7 @@ Public Class frmNodeNavigation
|
||||
If shouldEnable Then
|
||||
LOGGER.Debug($"btnCreateNewNode ENABLED (AvailableConfigNodes: {AvailableConfigNodes.Count})")
|
||||
Else
|
||||
LOGGER.Debug($"btnCreateNewNode DISABLED (ConfigNodes: {AvailableConfigNodes.Count})")
|
||||
LOGGER.Debug($"btnCreateNewNode DISABLED (ConfigNodes: {AvailableConfigNodes.Count}, ReadOnly: {RIGHT_RECORD_AND_FILE_READ_ONLY})")
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
@@ -712,13 +713,13 @@ Public Class frmNodeNavigation
|
||||
Try
|
||||
btnCreateNewNode.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
Dim oSql = String.Format("SELECT * FROM TBPMO_STRUCTURE_NODES_CONFIGURATION where TYPE_NODE = 1000 AND ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", oConstructID)
|
||||
NODE_CONFIGURABLE_NODES_DT = MYDB_ECM.GetDatatable(oSql)
|
||||
DT_CONFIGURABLE_NODES = MYDB_ECM.GetDatatable(oSql)
|
||||
|
||||
NNLogger.Info($"Load_Configurable_Nodes: ConstructID={oConstructID}, " &
|
||||
$"FoundRows={If(IsNothing(NODE_CONFIGURABLE_NODES_DT), 0, NODE_CONFIGURABLE_NODES_DT.Rows.Count)}")
|
||||
$"FoundRows={If(IsNothing(DT_CONFIGURABLE_NODES), 0, DT_CONFIGURABLE_NODES.Rows.Count)}")
|
||||
|
||||
If Not IsNothing(NODE_CONFIGURABLE_NODES_DT) Then
|
||||
If NODE_CONFIGURABLE_NODES_DT.Rows.Count > 0 Then
|
||||
If Not IsNothing(DT_CONFIGURABLE_NODES) Then
|
||||
If DT_CONFIGURABLE_NODES.Rows.Count > 0 Then
|
||||
btnCreateNewNode.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
' Initial-State setzen
|
||||
UpdateCreateNodeButtonState()
|
||||
@@ -745,7 +746,6 @@ Public Class frmNodeNavigation
|
||||
|
||||
End If
|
||||
|
||||
|
||||
Dim sw As New SW("Load_Datafor_Entity")
|
||||
|
||||
|
||||
@@ -1254,6 +1254,8 @@ Public Class frmNodeNavigation
|
||||
End If
|
||||
|
||||
Else
|
||||
RIGHT_RECORD_AND_FILE_READ_ONLY = False
|
||||
RIGHT_READ_ONLY_DOC = False
|
||||
If DT_RIGHTS_GROUP.Rows.Count > 0 Or DT_RIGHTS_USER.Rows.Count > 0 Then
|
||||
'DATENSATZ-RECHTE
|
||||
If RIGHT_ADD_R = False Then
|
||||
@@ -1261,22 +1263,14 @@ Public Class frmNodeNavigation
|
||||
|
||||
End If
|
||||
If RIGHT_EDIT_R = False Then
|
||||
' tslblLocked.Visible = True
|
||||
bbtnitmRecEdit.Enabled = False
|
||||
bbtnitmRecSave.Enabled = False
|
||||
' tsButtonDelete.Enabled = False
|
||||
' tsmiMassChanges.Enabled = False
|
||||
|
||||
If RIGHT_ADD_R = False Then
|
||||
bbtnitmRecSave.Enabled = False
|
||||
End If
|
||||
End If
|
||||
If RIGHT_DELETE_R = False Then
|
||||
' tsButtonDelete.Enabled = False
|
||||
End If
|
||||
'DATEI-RECHTE
|
||||
If RIGHT_READ_ONLY_DOC = True Then
|
||||
' tslblFileslocked.Visible = True
|
||||
End If
|
||||
|
||||
End If
|
||||
End If
|
||||
sw.Done()
|
||||
@@ -1380,87 +1374,6 @@ Public Class frmNodeNavigation
|
||||
' Mark the event as handled
|
||||
e.Handled = True
|
||||
End Sub
|
||||
'Private Sub TreeListDevexpress_DoubleClick(sender As Object, e As EventArgs) Handles TreeListDevexpress.DoubleClick
|
||||
' If TreeListDevexpress.FindFilterText <> "" Then
|
||||
' TreeListDevexpress.FindFilterText = ""
|
||||
' End If
|
||||
' MyFocusedNode = Nothing
|
||||
' Dim oMyTreeList As TreeList = sender
|
||||
' Dim oTlHI As TreeListHitInfo = oMyTreeList.CalcHitInfo(oMyTreeList.PointToClient(MousePosition))
|
||||
' If Not IsNothing(oTlHI.Node) Then
|
||||
' MyFocusedNode = sender
|
||||
' End If
|
||||
|
||||
|
||||
'End Sub
|
||||
'Private Async Sub LoadRecord(pRecord As Integer)
|
||||
' Try
|
||||
' CURRENT_RECORD_ID = pRecord
|
||||
' CURRENT_SEARCH_TYPE = "RECORD"
|
||||
' ClassHelper.GetDocrecordLinks(CURRENT_RECORD_ID)
|
||||
|
||||
' 'Wird jetzt bei BeforeRowChange überprüft
|
||||
|
||||
' DisableEditMode()
|
||||
|
||||
' ' muss vor show selected record data kommen,
|
||||
' ' sodass die datasource für die angehakten werte existiert (checked list box)
|
||||
' CtrlBuilder.WatchRecordChanges = False
|
||||
|
||||
' ClassControlValues.LoadControlValuesListWithPlaceholders(CURRENT_ENTITY_ID, CURRENT_RECORD_ID, 0, CtrlBuilder.AllControls, _EntityId)
|
||||
' CtrlBuilder.WatchRecordChanges = True
|
||||
' If CURRENT_RECORD_ID > 0 Then
|
||||
' Await Show_Selected_Record_Data(CURRENT_RECORD_ID)
|
||||
' End If
|
||||
|
||||
|
||||
' ClassRightManagement.Check_Set_Rights(CURRENT_RECORD_ID, _EntityId)
|
||||
' CONTROL_HANDLING()
|
||||
|
||||
|
||||
|
||||
' If CURRENT_RECORD_ID > 0 Then
|
||||
' If RIGHT_RECORD_AND_FILE_READ_ONLY = False And CtrlCommandUI.IsInsert = False Then
|
||||
' If DT_CONTROLS_ENTITY.Rows.Count = COUNT_RO_CONTROLS Then
|
||||
' bbtnitmRecEdit.Enabled = False
|
||||
' bbtnitmRecSave.Enabled = False
|
||||
' 'tsButtonDelete.Enabled = False
|
||||
' Else
|
||||
' ' bbtnitmEditRec.Enabled = True
|
||||
' End If
|
||||
|
||||
' End If
|
||||
' If RIGHT_RECORD_AND_FILE_READ_ONLY = True Then
|
||||
' ' bbtniCopyRecord.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
' ' bbtniNewVariant2.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
' ' bbtniParentLink.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
' ' bbtniWFTask.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
' Else
|
||||
' ' bbtniCopyRecord.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
' ' bbtniNewVariant2.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
' ' bbtniParentLink.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
' ' bbtniWFTask.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
' End If
|
||||
|
||||
' 'tsButtonAdd.Enabled = False
|
||||
' 'MsgBox(SplitContainerFORM.Collapsed)
|
||||
' 'MsgBox(SplitContainerMain.Collapsed)
|
||||
' 'MsgBox(SplitContainerTop.Collapsed)
|
||||
|
||||
|
||||
|
||||
|
||||
' End If
|
||||
' 'Liste der geänderten Control Values leeren
|
||||
' CtrlBuilder.ControlsChanged.Clear()
|
||||
|
||||
|
||||
' Catch ex As Exception
|
||||
'NNLogger.Error(ex)
|
||||
' ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error:", ex.Message & vbNewLine & ex.StackTrace)
|
||||
' End Try
|
||||
'End Sub
|
||||
|
||||
Private Sub DateiÖffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DateiÖffnenToolStripMenuItem.Click
|
||||
Open_File()
|
||||
End Sub
|
||||
@@ -2381,7 +2294,7 @@ Public Class frmNodeNavigation
|
||||
NNLogger.Warn("Unexpected Error in Drag_Drop: " & ex.Message)
|
||||
MsgBox("Unexpected Error in DragDrop - Please check the log for further information!", MsgBoxStyle.Exclamation)
|
||||
Finally
|
||||
|
||||
Cursor = Cursors.Default
|
||||
End Try
|
||||
End Function
|
||||
Private DROPPED_CHECKED As Boolean = False
|
||||
@@ -2434,6 +2347,7 @@ Public Class frmNodeNavigation
|
||||
Exit Sub
|
||||
End If
|
||||
End If
|
||||
ClassHelper.REMOVE_OLD_DROP_FILES()
|
||||
ClassHelper.Create_USER_FILE_TABLE()
|
||||
If Not IsNothing(CURRENT_TBPMO_FILES_USER) Then
|
||||
If CURRENT_TBPMO_FILES_USER.Rows.Count > 0 Then
|
||||
@@ -3556,7 +3470,7 @@ Public Class frmNodeNavigation
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim oRow = NODE_CONFIGURABLE_NODES_DT.Select($"GUID = {oForm.Id}").First()
|
||||
Dim oRow = DT_CONFIGURABLE_NODES.Select($"GUID = {oForm.Id}").First()
|
||||
Dim oCreateRecord = oRow.Item("CREATE_RECORD")
|
||||
|
||||
Dim oParentNodeGuid As Integer = MyFocusedNode.Item("GUID")
|
||||
|
||||
Reference in New Issue
Block a user