Pivot-Timelines und Slicer-Datenzustände
Verfügbar ab Version 2.384.98 für unterstützte lokale nicht-OLAP-PivotTables über die XLSX-Arbeitsmappen-Fassade
Eine Timeline erzeugen und verbinden
TimelineCache := Workbook.CreatePivotTimelineCache(Pivot, 'EventDate');
if TimelineCache = nil then
raise Exception.Create('The Timeline cache was rejected');
TimelineView := ReportSheet.Timelines.Add(TimelineCache, 2, 7, 7, 12);
if TimelineView = nil then
raise Exception.Create('The Timeline view was rejected');
if TimelineCache.SetDateRange(EncodeDate(2026, 1, 1),
EncodeDate(2026, 1, 31)) < 0 then
raise Exception.Create('The Timeline selection was rejected');
TXLSXWorkbook.CreatePivotTimelineCache(ATable: TXLSPivotTable; const AFieldName: WideString): TXLSXTimelineCache erzeugt oder verwendet einen validierten Datumsfeld-Cache und seine benötigten Paketidentitäten wieder; ein Fehlschlag liefert nil, bevor gestagter Zustand committet wird
TXLSXWorkbook.TimelineCaches legt TXLSXTimelineCaches offen, mit Count, nullbasiertem Items[Index] und groß-/kleinschreibungsunabhängigem FindByName; die Arbeitsmappe besitzt diese Caches
TXLSXTimelineCache.Name identifiziert den Cache, SourceName sein Quellfeld und IsNonOlapPivot die validierte unterstützte Bindung; importierte nicht unterstützte Caches behalten ihr ursprüngliches XML
TXLSXTimelineCache.ConnectPivotTable(ATable: TXLSPivotTable): Integer verbindet eine weitere eigene View desselben PivotCache mit einem kompatiblen Datumsfeld; es liefert 1 bei Erfolg, einschließlich einer bestehenden Verbindung, oder -1 bei Zurückweisung
TXLSXTimelineCache.SetDateRange(AStartDate, AEndDate: TDateTime): Integer nutzt inklusive ganze Tag-Endpunkte und liefert 1 oder -1; Endpunkte müssen ganzzahlige Daten vom 1. Januar 1900 bis zum 31. Dezember 9999 in aufsteigender Reihenfolge sein
Die unterstützte Arbeitsmappe nutzt das 1900-Datumssystem; Date1904-Autorenschaft und fraktionale Auswahlendpunkte weisen zurück, während Quelldatumswerte eine Tageszeit behalten dürfen und Records während des gesamten gewählten Endtags wählbar bleiben
TXLSXTimelineCache.SelectionActive, StartDate und EndDate legen die aktiven Grenzen offen; ClearSelection: Integer leert sie, ohne andere Filter zu ändern, und liefert 1 oder -1
Auswahlen schneiden sich mit anderen Slicern, manuellen oder Seitenfiltern und Aufrufer-Prädikaten; diese Operationen aktualisieren keine Quell-Caches, berechnen keine Formeln neu und schreiben keine bestehenden Arbeitsblatt-Berichtzellen um
Timeline-Views und Entfernung
TXLSXWorksheet.Timelines legt die arbeitsblatteigene TXLSXTimelines-Sammlung offen, mit Add, FindByName, nullbasiertem Items[Index], Count, Delete(Index) und Clear; das Löschen entfernt die UI und behält dabei ihren gemeinsamen Cache und ihre Auswahl
TXLSXTimelines.Add(ACache: TXLSXTimelineCache; ARow1, ACol1, ARow2, ACol2: Integer): TXLSXTimeline akzeptiert einen eigenen unterstützten Cache und ein geordnetes 1-basiertes Arbeitsblattrechteck und liefert eine eigene View oder nil
TXLSXTimeline.Name ist nur lesend, Cache identifiziert ihren gemeinsamen Cache, und Caption ändert das Anzeigelabel; Level akzeptiert 0 für Jahre, 1 für Quartale, 2 für Monate oder 3 für Tage
TXLSXTimeline.SetBounds ändert das 1-basierte Rechteck, das von FromRow, FromCol, ToRow und ToCol offengelegt wird; ungültige Geometrie, nicht unterstützte Bindungen oder gruppierte Zeichnungsgeometrie lösen vor der Veränderung aus
TXLSXDrawingObject.Timeline liefert die zugeordnete View für den Zeichnungstyp xlsxDrawingTimeline; direkte nicht unterstützte Zeichnungstransformationen bleiben geschützt
Status := Workbook.RemoveTimelineCache(TimelineCache, xlsxSlicerPreserveCurrentSelection);
TXLSXWorkbook.RemoveTimelineCache(ACache: TXLSXTimelineCache; AMode: TXLSXSlicerRemovalMode): Integer stagt verbundene Filter, UI, Namen und Paketaufräumung gemeinsam und liefert 1 oder -1
xlsxSlicerClearSelection entfernt die Auswahl; xlsxSlicerPreserveCurrentSelection behält eine aktive Auswahl nur dann als reine Ganz-Tags-Datumsvergleich, wenn das Datumsfeld bereits in jeder verbundenen View auf einer Zeilen- oder Spaltenachse liegt
Ein ungenutztes oder nur als Seitenfeld genutztes Datumsfeld weist die auswahlbewahrende Entfernung atomar zurück; verwenden Sie die explizite Entfernung mit Auswahllöschung, wenn dieses Verhalten gewollt ist
Importierte Filter normalisieren erst, nachdem jede Verbindung, jeder geerbte Namespace und die exakte eigene Filter-Herkunft validiert wurde; opake Attribute oder Kinder desselben Felds, fremde Namespaces, externe Bindungen und nicht unterstützte Multiple-UI-Graphen behalten ihr XML und weisen Veränderung zurück
Die native Materialisierung stagt die aktuelle Timeline-Auswahl zusammen mit Berichtsmetadaten und Zellen und entfernt nur die exakte gespeicherte eigene Filtersignatur; beliebige Callback-Einschränkungen haben keine native XML-Repräsentation und können durch die Excel-Aktualisierung nicht reproduziert werden
Das OOXML-Speichern bewahrt native Beziehungstypen, ursprüngliche Pfade und nicht verwandte Erweiterungen; Strict-Speichern nur mit Cache weist zurück, die ODS-Konvertierung meldet Timeline-Verlust, und das XLSB-Werte-und-Stile-Subset weist Timelines zurück
Explizite native Slicer-Datenzustandsaktualisierung
function TXLSXSlicerCache.RefreshItemDataStates: Integer; overload; function TXLSXSlicerCache.RefreshItemDataStates( AMaxEvaluationSteps: Integer; ACancelFlag: PBoolean = nil): Integer; overload;
Die Operation wertet den vollständigen nativen No-Data-Vektor aus und stagt ihn, committet dann unter dem Schreibschutz der Arbeitsmappe; Erfolg liefert 1, Zurückweisung liefert -1, ohne serialisierte Elementflags oder Auswahlen zu ändern
Sie ignoriert die eigene Auswahl dieses Slicers, schneidet sich aber mit anderen Slicer- und Timeline-Auswahlen, manuellen oder Seitenfiltern, unterstützten Aggregatfiltern und Aufrufer-Prädikaten; Verfügbarkeit ist die Vereinigung über unterstützte verbundene Views
Ausgewählte historische Member ohne wählbare Records erhalten das native No-Data-Flag und behalten dabei ihre Auswahl; stabile Cache-IDs, die ursprüngliche Element-Wire-Reihenfolge und nicht verwandtes XML bleiben intakt
Das Standardlimit kumulativer Schritte ist 1000000; null bedeutet unbegrenzte Schritte, ein negativer Wert weist zurück, und FormulaArrayMemoryLimit begrenzt Metadatenstaging plus alle verbundene-View-Vorschauen kumulativ
Abbruch, Callback-Exceptions oder Wiedereintritt, eingefrorene Views, nicht unterstützte Bindungen, erschöpfte Budgets oder geänderter Auswertungszustand weisen zurück, bevor Flags committet werden; unabhängige Common-Model-Änderungen durch Aufrufer-Callbacks bleiben Änderungen des Aufrufers und führen zur Zurückweisung der Aktualisierung
TXLSXSlicerCache.CrossFilter liest und schreibt die native tabellarische Cross-Filter-Einstellung unter dem Änderungsschutz; showItemsWithDataAtTop aktiviert die native Daten-zuerst-Anordnung, ohne die Element-Wire-Reihenfolge umzuschreiben
ItemHasData bleibt eine nur lesende Abfrage; das Speichern ruft den Auswerter nicht auf und aktualisiert keine No-Data-Flags implizit, rufen Sie RefreshItemDataStates also explizit vor dem Speichern auf, wenn der native UI-Zustand aufgefrischt werden muss
Erweiterte Datumsfilter-Semantik
TXLSPivotFilter.UseWholeDay fordert Ganz-Tags-Datumsvergleiche für unterstützte Datumsfilter an; Timeline-generierte erhaltene Auswahlen nutzen es, während gewöhnliche Datumsfilter ihr bisheriges zeitabhängiges Verhalten behalten
Siehe native Pivot-Ausgabe und nur lesende Slicer-Verfügbarkeit sowie lokaler Cache- und Slicer-Lebenszyklus für die umgebenden Aktualisierungs- und Besitzkontrakte