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