Verbesserung der SQL-Logik und Debugging-Optimierung

Die Sichtbarkeitslogik in `ClassRefreshHelper.vb` wurde verbessert, um ungültige Indizes zu vermeiden. In `frmMain.vb` wurde die Methode `PrepareSQLWithReplacements` erweitert, um einen zusätzlichen Parameter `oProfileID` zu unterstützen, was die Flexibilität bei der SQL-Verarbeitung erhöht.

Zusätzliche Debug-Logs wurden hinzugefügt, um die Nachvollziehbarkeit zu verbessern, insbesondere bei SQL-Fehlern, Ladeprozessen und TreeList-Operationen. Die Fehlerbehandlung wurde optimiert, um spezifischere Warnungen und Validierungen zu ermöglichen.

Weitere Verbesserungen umfassen die Behandlung von `CUSTOM_OVERVIEW_SQL`, die Validierung des Overlays in `Decide_Load` und die Optimierung der SQL-Verarbeitung in `LoadOverviewData`. Allgemeine Code-Qualitätsmaßnahmen wie Kommentare und Strukturverbesserungen wurden ebenfalls vorgenommen.
This commit is contained in:
Developer01
2026-05-28 16:48:32 +02:00
parent a386fdd841
commit 3dd884096b
2 changed files with 65 additions and 18 deletions

View File

@@ -194,14 +194,30 @@ Public Class RefreshHelper
End Sub
Private Sub SaveVisibleIndex()
_VisibleRowIndex = _View.GetVisibleIndex(_View.FocusedRowHandle) - _View.TopRowIndex
If _View.FocusedRowHandle <> GridControl.InvalidRowHandle AndAlso _View.FocusedRowHandle >= 0 Then
_VisibleRowIndex = _View.GetVisibleIndex(_View.FocusedRowHandle) - _View.TopRowIndex
Else
_VisibleRowIndex = 0
End If
End Sub
Private Sub LoadVisibleIndex()
Try
If _View.FocusedRowHandle = GridControl.InvalidRowHandle OrElse _View.FocusedRowHandle < 0 Then
LOGGER.Debug("No valid focused row handle found. Skipping visible index restoration.")
Return
End If
_View.MakeRowVisible(_View.FocusedRowHandle, True)
If _View.FocusedRowHandle <> -1 Then
_View.TopRowIndex = _View.GetVisibleIndex(_View.FocusedRowHandle) - _VisibleRowIndex
Dim currentVisibleIndex As Integer = _View.GetVisibleIndex(_View.FocusedRowHandle)
Dim newTopRowIndex As Integer = currentVisibleIndex - _VisibleRowIndex
' Verhindere negative oder ungültige TopRowIndex-Werte
If newTopRowIndex >= 0 AndAlso newTopRowIndex < _View.RowCount Then
_View.TopRowIndex = newTopRowIndex
Else
LOGGER.Debug($"Calculated TopRowIndex {newTopRowIndex} is out of bounds. Skipping setting TopRowIndex.")
End If
Catch ex As Exception