HotXLS-Dokumentation

Lokaler Pivot-Cache-Lebenszyklus und natives Layout

Version 2.384.94 ergänzt Views mit gemeinsamem Cache, lokale nicht-OLAP-Pivot-Slicer-Erzeugung und explizite Entfernung, Rekonstruktion gruppierte Caches und einen begrenzten nativen Layout-Metadatengenerator

Geteilte Views und Slicer-Erzeugung

SecondPivot := Sheet.AddPivotTable(FirstPivot.Cache, 20, 1, 'SecondView');
Cache := Workbook.CreatePivotSlicerCache(FirstPivot, 'Category');
if Cache.ConnectPivotTable(SecondPivot) <> 1 then
  raise Exception.Create('The second view could not be connected');
Slicer := Sheet.Slicers.Add(Cache, 1, 6, 8, 8);

TXLSXWorksheet.AddPivotTable(ACache: TXLSPivotCache; DestRow, DestCol: Integer; const Name: WideString): TXLSPivotTable erzeugt eine weitere View eines von dieser Arbeitsmappe besessenen Caches; sie validiert Besitz, Geometrie und Namen, bevor die View angehängt wird

TXLSXWorkbook.CreatePivotSlicerCache(ATable: TXLSPivotTable; const AFieldName: WideString): TXLSXSlicerCache erzeugt oder verwendet sicher einen unterstützten Quellfeld-Cache wieder, während TXLSXSlicerCache.ConnectPivotTable(ATable: TXLSPivotTable): Integer eine vorhandene lokale View mit gemeinsamem Cache verbindet

TXLSXSlicers.Add(ACache: TXLSXSlicerCache; ARow1, ACol1, ARow2, ACol2: Integer): TXLSXSlicer erzeugt die Arbeitsblatt-UI mit expliziten inklusiven 1-basierten Zellgrenzen; Quellnamen, Cache-Teile, Zeichnungsreferenzen und View-Zugehörigkeit werden vor der Veränderung gestagt

Gruppierte, berechnete und OLAP-Slicer-Quellen, fremde Caches, inkonsistente importierte Domänen und mehrdeutige unabhängige Masken desselben Felds weisen zurück; unterstütztes importiertes View-XML behält nicht verwandte Erweiterungen, wenn eine neue UI angehängt wird

Explizite Entfernung und zukünftige Member

if Workbook.RemoveSlicerCache(Cache, xlsxSlicerPreserveCurrentSelection) <> 1 then
  raise Exception.Create('The Slicer cache could not be removed');

TXLSXSlicerRemovalMode kennt xlsxSlicerClearSelection und xlsxSlicerPreserveCurrentSelection; TXLSXWorkbook.RemoveSlicerCache(ACache: TXLSXSlicerCache; AMode: TXLSXSlicerRemovalMode): Integer entfernt die gebundene UI, Zeichnungsreferenzen, native Cache-Teile und Verbindungen gemeinsam

Der Clear-Modus entfernt diese Slicer-Einschränkung und behält dabei unabhängige Filter und Aufrufer-Prädikate; der Preserve-Modus überträgt ihre aktuelle Einschränkung in gewöhnliche Pivot-Member-Masken, bevor der Slicer entfernt wird

Die Operation liefert 1 bei Erfolg und -1 bei nicht unterstützten oder unsicheren Bindungen; alle betroffenen Views und der Cache-Zustand werden vor dem Commit validiert und gestagt, und mehrdeutiger Besitz desselben Felds weist ohne Raten zurück

TXLSPivotField.IncludeNewItemsInFilter: Boolean steht standardmäßig auf False; eine beibehaltene manuelle Teilmenge schließt neu angehängte Member aus, sofern diese Richtlinie nicht explizit aktiviert wurde, während ein uneingeschränktes Feld sie einschließt

Die erhaltene Auswahl bleibt daher nach Quellwachstum stabil, während der Clear-Modus neue Quellmember einschließt; importierte und verfasste Memberlisten serialisieren dieselbe Richtlinie zum Verstecken zukünftiger Member

Bestehende Delete- und Clear-Operationen der Sammlung sichern weiterhin eine letzte gebundene Slicer-View ab; verwenden Sie die explizite Arbeitsmappenoperation, wenn der Cache und seine verbundenen Einschränkungen gemeinsam entfernt werden müssen

Rekonstruktion fester gruppierter Caches

Die Aktualisierung stagt numerische, Datums- und explizite diskrete Gruppenidentitäten aus validierten Basis-/Eltern-Links, einschließlich importierter abgeleiteter Felder, deren Record-Spalten fehlen; reine Link-Quellfelder behalten ihre ursprünglichen Werte, statt selbst gruppiert zu werden

Unterstützte Domänen behalten bestehende Member-Handles, Beschriftungen und Gruppenordinals; numerische und Datumsgruppierung nutzt eine Auflösung pro Feld und eine feste native Gruppen-Elementdomäne, und Datumsgruppierung erfordert Intervall eins

TXLSPivotCacheField.GroupAutoStart und TXLSPivotCacheField.GroupAutoEnd stehen standardmäßig auf True und erhalten die importierte Grenzrichtlinie; neue Werte, die eine Domänenerweiterung oder Regruppierung erfordern, weisen vor der Veränderung zurück

Diskrete Gruppen erfordern eine vorhandene Zuordnung für jedes Quellmember; zyklische Eltern, ungültige typisierte Domänen, nicht eindeutige String-Beschriftungen, berechnete Basen, Member-Property-Felder und nicht unterstützte Elternauflösungen weisen transaktional zurück

Gewöhnliches Make rekonstruiert unterstützte veraltete oder fehlende abgeleitete Record-Werte, während MakePreview dies nur auf einer abgekoppelten Kopie tut; das Speichern lässt interne Platzhalter-Shared-Items aus abgeleiteten nativen Domänen weg und emittiert exakt die deklarierten Gruppen-Elementindizes

Native Layout-Metadaten-Vorschau

function TryXLSXGeneratePivotLayout(const Xml: WideString;
  Table: TXLSPivotTable; out ResultXml, Reason: WideString): Boolean;

Der lxPivotXml-Helper stagt rowItems, colItems, Achsenmetadaten und Position für unterstützte nichtleere lokale kompakte Views mit exakten Feld- und Cache-Member-Identitäten; er unterstützt gewöhnliche Hierarchien, Standard-Teilsummen oben oder unten und jede der beiden Datenachsen

Diese Metadaten-only-Operation erfordert explizites Cache.RefreshOnLoad=True; sie behält unbekanntes XML und liefert das ursprüngliche XML plus einen englischen Grund, wenn gruppierte oder berechnete Felder, benutzerdefinierte Teilsummen, nicht unterstütztes Layout oder inkonsistente importierte Identitäten nicht abgebildet werden können

Der Helper schreibt keine Arbeitsblattzellen um und ändert keine lebenden Tabellen-Flags; Aufrufer, die gecachte Arbeitsblattausgabe brauchen, müssen einen passenden Writer und eine separat unterstützte Materialisierungsoperation liefern

TXLSPivotTable.MakePreview(AWriter: TlxPivotResultWriter; ALayoutWriter: TlxPivotLayoutWriter): Integer liefert synchrone Layout-Callbacks aus einer abgekoppelten Vorschau und behält dabei die ursprüngliche EvaluationSourceTable-Identität

TlxPivotLayoutWriter erhält die ursprüngliche Tabelle, Zeilen-/Spaltenachse, kopierte Feldindex- und Cache-Elementindex-Vektoren, TlxPivotLayoutItemKind, die Teilsummenart und die Präfixlänge; xlplikData, xlplikSubtotal und xlplikGrand unterscheiden Aggregatidentitäten, ohne Beschriftungen zu parsen

Die Vektoren nutzen TlxPivotLayoutIndices und sind während des Callbacks gültig; Exceptions propagieren, und das bestehende Make- und Single-Writer-MakePreview-Verhalten bleibt verfügbar

TXLSPivotTables._AddOwned(ATable: TXLSPivotTable) reserviert Sammlungskapazität vor der Besitzübertragung und unterstützt interne transaktionale View-Anhängung; Anwendungen sollten normalerweise die Arbeitsblatt-Autorenmethoden verwenden

Grenzen

Version 2.384.95 ergänzt native gecachte Arbeitsblattausgabe, nur lesende Cross-Filter-Verfügbarkeit und explizites Bereinigen historischer Member; serialisierte native No-Data-Anzeige, Timeline-Autorenschaft und breitere serialisierte gruppierte Layouts behalten separate Akzeptanzgrenzen