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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user