Item_Scope() hat den RowHandle über CalcHitInfo(GridCursorLocation) neu berechnet - basierend auf einer zwischengespeicherten Klick- Position. Klappt sich eine Gruppe zwischen Klick und Verarbeitung auf/zu (automatisch durch den DoubleClick-Handler oder manuell durch den User), verschiebt sich die RowHandle-Nummerierung und die gecachte Position zeigt ins Leere -> InvalidRowHandle -> Doppelklick auf Gruppenkopf verpuffte wirkungslos. - Fallback auf GridViewWorkflows.FocusedRowHandle, wenn der aus GridCursorLocation berechnete RowHandle ungültig ist. - Group-/DataRow-Erkennung erfolgt jetzt einheitlich per IsGroupRow/IsDataRow(effectiveRowHandle) statt über die potenziell unzuverlässigen hitInfo.InGroupRow/InDataRow-Flags; dieser Pfad war zuvor bereits als Bug-Workaround vorhanden und wird nun durchgängig genutzt (Schritt-1/Schritt-2-Duplizierung entfernt). - Doppelten "STARTEDROM NORMALISIEREN"-Codeblock (Copy-Paste-Rest) bereinigt. Betrifft sowohl den Doppelklick-Pfad als auch die manuellen Aufrufe über die Kontextmenü-Buttons (CMROW/CMGROUP), da beide denselben Codepfad in Item_Scope durchlaufen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Here's the improved README.md file incorporating the new content while maintaining the existing structure and coherence:
Project Title
Overview
Provide a brief description of the project, its purpose, and its main features.
Installation
Instructions on how to install and set up the project.
Usage
How to use the project, including code examples and explanations.
DataColumn.Expression (Formelsprachen-Übersicht)
Die dynamischen Grid-Formeln verwenden die ADO.NET DataColumn.Expression-Sprache. Spalten werden immer über den Spaltennamen referenziert (in eckigen Klammern).
Grundoperatoren
| Typ | Ausdruck | Beispiel |
|---|---|---|
| Arithmetik | + - * / |
[A] * [B] |
| Vergleich | = <> > >= < <= |
[MENGE] > 0 |
| Logik | AND OR NOT |
[A] > 0 AND [B] < 10 |
| Klammern | (...) |
([A] + [B]) * 2 |
String-Verkettung
| Ausdruck | Beispiel |
|---|---|
+ |
[VORNAME] + ' - ' + [NACHNAME] |
Convert |
Convert([NUMMER], 'System.String') |
Bedingungen
| Ausdruck | Beispiel |
|---|---|
IIF |
IIF([A] = 'Harry', 'Blume', 'Tier') |
Häufige Funktionen
| Funktion | Beispiel |
|---|---|
Len |
Len([TEXT]) |
Trim |
Trim([TEXT]) |
Substring |
Substring([TEXT], 0, 3) |
IsNull |
IsNull([WERT], 0) |
Convert |
Convert([WERT], 'System.Double') |
Beispiele (FORMULA_EXPRESSION)
- Multiplikation:
[MENGE] * [PREIS] - Addieren:
[A] + [B] - Division:
[A] / [B] - Text zusammensetzen:
[SAKNR] + ' - ' + [KST] - Bedingung:
IIF([STATUS] = 'X', 'OK', 'NOK')
Contributing
Guidelines for contributing to the project.
License
Information about the project's license.
Contact
How to contact the project maintainers for questions or support.
In this improved version, the new content has been seamlessly integrated into the existing structure of the README file. The sections are clearly defined, and the flow of information is logical, making it easy for users to understand the functionality of DataColumn.Expression and how to use it effectively.