Developer01 90e500333a Fix: Reset_Current() leerte das Grid vor dem Hit-Test in Item_Scope
Root Cause des ursprünglich gemeldeten Bugs gefunden: Reset_Current()
wurde als allererste Aktion in Item_Scope aufgerufen, NOCH BEVOR die
angeklickte Zeile ermittelt wird. Reset_Current() ruft
DT_CURR_WF_ITEMS.Clear() auf - und DT_CURR_WF_ITEMS ist über
bindsourcegrid direkt die Datenquelle von
GridControlWorkflows/GridViewWorkflows (siehe Bindings z.B.
frmMain.vb:1445-1446). Das Clear() leert also synchron genau das Grid,
in dem gerade doppelgeklickt wurde, bevor CalcHitInfo/FocusedRowHandle
überhaupt ausgewertet werden - beide sind danach zwangsläufig
InvalidRowHandle, da schlicht keine Zeilen mehr existieren. Das
erklärt auch die im Log beobachteten doppelten SaveGridLayout-Aufrufe
(Grid reagiert auf die Leerung) und das spätere "has no children"
beim Rendern der Gruppenzeilen.

Der zuvor implementierte FocusedRowHandle-Fallback in Item_Scope war
dadurch wirkungslos, da auch FocusedRowHandle zu diesem Zeitpunkt
ungültig ist.

Fix: Den verfrühten Reset_Current()-Aufruf entfernt. Die davon
zurückgesetzten Felder werden im weiteren Verlauf ohnehin frisch
gesetzt (CURRENT_JUMP_DOC_GUID erneut bei Zeile ~2735,
CURRENT_ProfilGUID durch Load_Profil_from_Grid selbst). Der zweite,
bestehende Reset_Current()-Aufruf im GRUPPE-Zweig (nach erfolgreicher
Zeilenauflösung, vor Load_Profil_from_Grid) bleibt unverändert
bestehen und deckt den eigentlich benötigten Reset weiterhin ab.

Enthält zusätzlich eine Diagnose-Logzeile in
GridViewWorkflows_MouseDown, die beim Testen ergänzt wurde.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-11 15:32:11 +02:00
2017-10-17 10:35:50 +02:00
2017-10-17 10:35:50 +02:00
2022-10-24 13:42:39 +02:00
Description
No description provided
160 MiB
Languages
Visual Basic .NET 99.8%
PowerShell 0.1%