From c7cb318c9977b7a3623e9296674d6c27eb102dcc Mon Sep 17 00:00:00 2001 From: Developer01 Date: Tue, 7 Jul 2026 16:34:21 +0200 Subject: [PATCH] Cockpit Active auswerten, Expanded bei nur einem Cockpit --- app/TaskFlow/frmMain.vb | 31 ++++++++++++++++++++++++------- app/TaskFlow/taskFLOW.vbproj | 25 +++++++++++++++++++++++-- 2 files changed, 47 insertions(+), 9 deletions(-) diff --git a/app/TaskFlow/frmMain.vb b/app/TaskFlow/frmMain.vb index 00b0747..d35cf86 100644 --- a/app/TaskFlow/frmMain.vb +++ b/app/TaskFlow/frmMain.vb @@ -563,7 +563,23 @@ Public Class frmMain Exit Sub End If + ' ===== NUR AKTIVE KNOTEN BEHALTEN ===== + If oDT_STRUCTURE_NODES.Columns.Contains("ACTIVE") Then + Dim oInactiveRows As DataRow() = oDT_STRUCTURE_NODES.Select("ACTIVE = 0 OR ACTIVE IS NULL") + If oInactiveRows.Length > 0 Then + LOGGER.Debug($"Load_Treeview: Removing [{oInactiveRows.Length}] inactive node(s) (ACTIVE=0 or NULL)") + For Each oRow As DataRow In oInactiveRows + oRow.Delete() + Next + oDT_STRUCTURE_NODES.AcceptChanges() + End If + Else + LOGGER.Warn("Load_Treeview: ACTIVE column not found in FNTF_GET_COCKPIT_DEFINITION result") + End If + + ' ===== ANZAHL DER OVERVIEW-KNOTEN ERMITTELN (VOR WEITEREN FILTERN) ===== Dim oOverviewRows As DataRow() = oDT_STRUCTURE_NODES.Select("TYPE_ID = 0") + LOGGER.Debug($"Load_Treeview: Found [{oOverviewRows.Length}] node(s) with TYPE_ID=0 (Overview)") ' ===== MONITOR-KNOTEN ENTFERNEN WENN KEIN RECHT ===== If MONITORING_ACTIVE = False AndAlso oDT_STRUCTURE_NODES.Columns.Contains("TYPE_ID") Then @@ -576,6 +592,7 @@ Public Class frmMain oDT_STRUCTURE_NODES.AcceptChanges() End If End If + ' ===== CHART-KNOTEN ENTFERNEN WENN KEIN RECHT ===== If SHOW_CHARTS = False AndAlso oDT_STRUCTURE_NODES.Columns.Contains("TYPE_ID") Then Dim oChartRows As DataRow() = oDT_STRUCTURE_NODES.Select("TYPE_ID = 3") @@ -596,7 +613,6 @@ Public Class frmMain TreeList_Cockpit.ParentFieldName = "PARENT_ID" TreeList_Cockpit.Columns("PK_RESULT_ID").SortOrder = SortOrder.Ascending - ' ===== MODERNES DESIGN ===== ' Schriftgröße und -art TreeList_Cockpit.Appearance.Row.Font = New Font("Segoe UI", 12, FontStyle.Regular) @@ -614,7 +630,6 @@ Public Class frmMain ' Zeilenhöhe erhöhen für bessere Lesbarkeit TreeList_Cockpit.RowHeight = 28 - Dim oVisibleColumns As New System.Collections.Generic.HashSet(Of String)(StringComparer.OrdinalIgnoreCase) From {"NAME"} For Each oColumn As DevExpress.XtraTreeList.Columns.TreeListColumn In TreeList_Cockpit.Columns oColumn.Visible = oVisibleColumns.Contains(oColumn.FieldName) @@ -622,32 +637,34 @@ Public Class frmMain Finally TreeList_Cockpit.EndUpdate() End Try + + ' ===== KNOTEN AUF-/ZUKLAPPEN BASIEREND AUF ANZAHL DER OVERVIEW-KNOTEN ===== If oOverviewRows.Length = 1 Then + LOGGER.Debug("Load_Treeview: Only 1 overview node found - expanding all nodes") For Each oNode As DevExpress.XtraTreeList.Nodes.TreeListNode In TreeList_Cockpit.Nodes oNode.Expanded = True Next ElseIf oOverviewRows.Length > 1 Then + LOGGER.Debug($"Load_Treeview: [{oOverviewRows.Length}] overview nodes found - collapsing all nodes") For Each oNode As DevExpress.XtraTreeList.Nodes.TreeListNode In TreeList_Cockpit.Nodes oNode.Expanded = False Next + Else + LOGGER.Warn("Load_Treeview: No overview nodes (TYPE_ID=0) found - keeping default collapsed state") End If - ' AddHandler TreeList_Cockpit.GetSelectImage, AddressOf TreeList1_GetSelectImage - TreeList_Cockpit.Refresh() ' ✅ Erzwingt sofortiges Neuzeichnen der Icons - + TreeList_Cockpit.Refresh() ' ===== ANZAHL ASYNCHRON NACHLADEN ===== If oDT_STRUCTURE_NODES.Columns.Contains("SQL_QUERY_COUNT") Then AppendCountsToTreeAsync() End If - Catch ex As Exception LOGGER.Error(ex) Finally Me.Cursor = Cursors.Default End Try - End Sub Private Sub TreeList_Cockpit_CustomDrawNodeCell(sender As Object, e As DevExpress.XtraTreeList.CustomDrawNodeCellEventArgs) Try diff --git a/app/TaskFlow/taskFLOW.vbproj b/app/TaskFlow/taskFLOW.vbproj index a2b82c5..a6ee759 100644 --- a/app/TaskFlow/taskFLOW.vbproj +++ b/app/TaskFlow/taskFLOW.vbproj @@ -316,8 +316,8 @@ M:\Bibliotheken\3rdParty\Limilabs\Mail.dll - - ..\packages\Microsoft.Bcl.AsyncInterfaces.10.0.5\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll + + ..\packages\Microsoft.Bcl.AsyncInterfaces.10.0.9\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll ..\packages\Microsoft.Bcl.Cryptography.10.0.5\lib\net462\Microsoft.Bcl.Cryptography.dll @@ -326,6 +326,24 @@ ..\packages\Microsoft.Bcl.HashCode.6.0.0\lib\net462\Microsoft.Bcl.HashCode.dll + + ..\packages\Microsoft.Extensions.DependencyInjection.10.0.0\lib\net462\Microsoft.Extensions.DependencyInjection.dll + + + ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.10.0.0\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\packages\Microsoft.Extensions.Logging.10.0.0\lib\net462\Microsoft.Extensions.Logging.dll + + + ..\packages\Microsoft.Extensions.Logging.Abstractions.10.0.0\lib\net462\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\packages\Microsoft.Extensions.Options.10.0.0\lib\net462\Microsoft.Extensions.Options.dll + + + ..\packages\Microsoft.Extensions.Primitives.10.0.0\lib\net462\Microsoft.Extensions.Primitives.dll + ..\packages\Microsoft.Identity.Client.4.55.0\lib\net461\Microsoft.Identity.Client.dll @@ -385,6 +403,9 @@ + + ..\packages\System.Diagnostics.DiagnosticSource.10.0.9\lib\net462\System.Diagnostics.DiagnosticSource.dll +