HotXLS-Dokumentation / API-Referenz

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