Interaktives Abhängigkeiten-Panel (Vorgänger/Nachfolger, andockbar)
Rechtsklick auf eine Zelle → "🕸 Abhängigkeiten anzeigen" öffnet ein an der rechten Seite angedocktes Panel (wie das Einstellungen-Panel links) mit den direkten Vorgängern (was die Zelle liest) und Nachfolgern (was sie liest), auch über Tabellen-/Blattgrenzen hinweg. Ein Klick auf einen Eintrag navigiert wirklich dorthin: wählt die echte Zelle im Dokument aus, wechselt bei Bedarf das Blatt-Tab, und das Panel zentriert sich neu — Blatt-Tabs, Canvas, Formel- und Statusleiste bleiben dabei die ganze Zeit sichtbar und bedienbar (kein Vollbild-Dialog). Jeder Eintrag zeigt immer den Blattnamen, nie nur implizit. Zirkelbezüge werden rot markiert. Neu in der Engine: Workbook.graphPrecedents/graphDependents, dünne öffentliche Wrapper um den bereits vorhandenen DependencyGraph. Im Store: cellGraphSelf/cellGraphNeighbors (Anreicherung für die Anzeige) sowie openDependencyGraph/closeDependencyGraph (dokumentweiter UI-State, ruft intern das bestehende selectCell auf). 424 Tests (Engine-/Store-Ebene vollständig abgedeckt), vue-tsc/eslint/build sauber. Das Panel selbst nur live per Playwright verifiziert (kein Komponenten-Test-Setup vorhanden, in README dokumentiert). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -411,6 +411,40 @@ mitgezogen:
|
||||
Tabelle liegt.
|
||||
- **Undo/Redo-fähig** wie jede andere Änderung.
|
||||
|
||||
### Abhängigkeiten erkunden (🕸)
|
||||
|
||||
Rechtsklick auf eine Zelle → **„🕸 Abhängigkeiten anzeigen"** öffnet ein
|
||||
andockbares Panel rechts (wie das Einstellungen-Panel links) — **kein**
|
||||
Vollbild-Dialog, damit Blatt-Tabs, Statusleiste und Canvas die ganze Zeit
|
||||
sichtbar und bedienbar bleiben: der Blattbezug geht beim Erkunden nie
|
||||
verloren. Zeigt für die Zelle:
|
||||
|
||||
- **Vorgänger** — jede Zelle, die ihre Formel direkt liest (bei einem
|
||||
Bereich wie `SUM(B2:E2)` jede einzelne Zelle darin).
|
||||
- **Nachfolger** — jede Zelle, die *diese* Zelle direkt liest, auch über
|
||||
Tabellen-/Blattgrenzen hinweg.
|
||||
- Jeder Eintrag zeigt **Blatt · Tabelle!Zelle** (Blattname **immer**, nicht
|
||||
nur bei Mehrdeutigkeit) sowie den aktuellen Wert.
|
||||
|
||||
**Ein Klick auf einen Eintrag navigiert wirklich dorthin** — nicht nur
|
||||
innerhalb des Panels: Er wählt die echte Zelle im Dokument aus, wechselt bei
|
||||
Bedarf das Blatt-Tab, und das Panel zentriert sich neu auf sie. Formelleiste,
|
||||
Statusleiste und die Tabellen selbst zeigen danach exakt dieselbe Zelle, die
|
||||
im Panel zentriert ist — das Erkunden des Formel-Netzwerks *ist* Navigieren,
|
||||
keine isolierte Nebenansicht. **„← Zurück"** geht die so besuchten Zellen
|
||||
rückwärts durch (auch das mit echter Navigation, nicht nur Panel-intern).
|
||||
|
||||
Ein Zirkelbezug (`#CIRC`) wird rot markiert (⚠), sowohl als Zentrum als auch
|
||||
als Vorgänger/Nachfolger-Eintrag — die Kante existiert im Abhängigkeitsgraphen
|
||||
unabhängig davon, dass sie bei der Neuberechnung übersprungen wird (s.
|
||||
„Fehlermodell" unten).
|
||||
|
||||
**Bewusst ohne**: kein automatisches Scrollen der Zieltabelle zur
|
||||
navigierten Zelle, falls sie außerhalb des sichtbaren Ausschnitts liegt
|
||||
(bei einer „Feste Größe"-Tabelle mit vielen Zeilen); keine Gruppierung
|
||||
vieler Vorgänger/Nachfolger zu einem Bereichs-Eintrag (`Umsatz!B2:B100`
|
||||
erscheint als 99 einzelne Zeilen, nicht als ein zusammengefasster Eintrag).
|
||||
|
||||
### Zell-Formatierung
|
||||
|
||||
Auswahl (Zelle, Bereich, Mehrfachauswahl, ganze Zeile/Spalte über den Kopf) → im
|
||||
@@ -972,6 +1006,16 @@ Grundrechenarten: `Übersicht!B2 = =SUM(Umsatz!B2:E2)`, `D2 = =B2-C2`,
|
||||
Bereich, `$`-Sperren bleiben wirkungslos (anders als beim Kopieren),
|
||||
unveränderte Referenzen bleiben byte-identisch, Undo/Redo, Schutz gegen
|
||||
Löschen der letzten verbleibenden Zeile/Spalte.
|
||||
- **Abhängigkeiten erkunden** (`graphPrecedents`/`graphDependents` in
|
||||
`workbook.spec.ts`, `cellGraphSelf`/`cellGraphNeighbors`/
|
||||
`openDependencyGraph`/`closeDependencyGraph` in `document.spec.ts`) —
|
||||
exakte Vorgänger/Nachfolger-Kanten, Auflösung über Tabellen-/Blattgrenzen,
|
||||
bleibt korrekt für eine Zelle auf einem Zirkelbezug, aktualisiert sich
|
||||
nach einer Neuzuordnung der Formel, `openDependencyGraph` löst wirklich
|
||||
`selectCell` aus (inkl. Blatt-Tab-Wechsel), `closeDependencyGraph` rührt
|
||||
die Auswahl nicht an. Das Panel selbst (`DependencyGraphView.vue`) ist
|
||||
nur live per Playwright verifiziert, kein Komponenten-Test-Setup
|
||||
vorhanden (s. „Bekannte Grenzen").
|
||||
- **„Mit Schleife"-Code** — Parser-Ebene (`parseFunctionBlock`): ein
|
||||
`FOR...DO...END` mit mehreren Anweisungen, mehrere unabhängige Schleifen
|
||||
nacheinander, `IF...THEN...END` und `IF...THEN...ELSE...END`, `IF`
|
||||
@@ -1043,6 +1087,14 @@ Grundrechenarten: `Übersicht!B2 = =SUM(Umsatz!B2:E2)`, `D2 = =B2-C2`,
|
||||
Komponenten-Test-Setup (z. B. Vue Test Utils), nur Engine-/Store-Tests.
|
||||
Nur live per Playwright verifiziert (Wachsen, Schrumpfen mit
|
||||
Inhaltsschutz, deutliches Überschreiten der bestehenden Größe).
|
||||
- **Abhängigkeiten-Panel** (`DependencyGraphView.vue`) bewusst ohne: Gruppierung
|
||||
vieler Vorgänger/Nachfolger zu einem Bereichs-Eintrag (jede Zelle einzeln,
|
||||
ungeachtet der Anzahl), automatisches Scrollen der Zieltabelle zur
|
||||
navigierten Zelle. Wie bei der Tabellen-Größenänderung oben: rein
|
||||
UI-seitig, nur live per Playwright verifiziert, kein Komponenten-Test-Setup
|
||||
vorhanden — die zugrundeliegenden Store-/Engine-Funktionen
|
||||
(`graphPrecedents`/`graphDependents`/`cellGraphNeighbors`/
|
||||
`openDependencyGraph`) sind es aber (s. „Tests" oben).
|
||||
- **Objekt-Bezüge beim Anhängen.** Beim JSON-*Anhängen* zweier Dokumente werden
|
||||
nur Blatt-/Objekt-IDs neu vergeben, nicht Tabellennamen. Kollidiert ein
|
||||
angehängter Tabellenname mit einem bestehenden, gewinnt bei der Auflösung der
|
||||
|
||||
Reference in New Issue
Block a user