Lokale Pivot-cachelevenscyclus en native layout
Versie 2.384.94 voegt weergaven op gedeelde caches toe, het aanmaken en expliciet verwijderen van lokale niet-OLAP Pivot Slicers, reconstructie van gegroepeerde caches en een begrensde generator voor native layout-metadata
Gedeelde weergaven en Slicer-aanmaak
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 maakt nog een weergave van een cache die deze werkmap beheert; het valideert eigendom, geometrie en namen voordat de weergave wordt gekoppeld
TXLSXWorkbook.CreatePivotSlicerCache(ATable: TXLSPivotTable; const AFieldName: WideString): TXLSXSlicerCache maakt een ondersteunde bronveldcache aan of hergebruikt die veilig, terwijl TXLSXSlicerCache.ConnectPivotTable(ATable: TXLSPivotTable): Integer een bestaande lokale weergave op een gedeelde cache koppelt
TXLSXSlicers.Add(ACache: TXLSXSlicerCache; ARow1, ACol1, ARow2, ACol2: Integer): TXLSXSlicer maakt de werkblad-UI aan met expliciete inclusieve 1-based celgrenzen; bronnamen, cacheonderdelen, tekenreferenties en weergavelidmaatschap worden in staging gezet vóór mutatie
Gegroepeerde, berekende en OLAP Slicer-bronnen, vreemde caches, inconsistente geïmporteerde domeinen en dubbelzinnige onafhankelijke maskers op hetzelfde veld worden geweigerd; ondersteunde geïmporteerde weergave-XML houdt niet-gerelateerde extensies vast wanneer een nieuwe UI wordt toegevoegd
Expliciete verwijdering en toekomstige leden
if Workbook.RemoveSlicerCache(Cache, xlsxSlicerPreserveCurrentSelection) <> 1 then
raise Exception.Create('The Slicer cache could not be removed');
TXLSXSlicerRemovalMode kent xlsxSlicerClearSelection en xlsxSlicerPreserveCurrentSelection; TXLSXWorkbook.RemoveSlicerCache(ACache: TXLSXSlicerCache; AMode: TXLSXSlicerRemovalMode): Integer verwijdert de gebonden UI, tekenreferenties, native cacheonderdelen en koppelingen samen
Clear-modus verwijdert deze Slicer-beperking terwijl onafhankelijke filters en predicaten van de aanroeper behouden blijven; preserve-modus draagt zijn actuele beperking over aan gewone Pivot-ledenmaskers voordat de Slicer wordt verwijderd
De bewerking geeft 1 terug bij succes en -1 bij niet-ondersteunde of onveilige bindingen; alle geraakte weergaven en cachestatus worden gevalideerd en in staging gezet vóór de commit, en dubbelzinnig eigendom op hetzelfde veld wordt zonder gokken geweigerd
TXLSPivotField.IncludeNewItemsInFilter: Boolean staat standaard op False; een behouden handmatige subset sluit nieuw toegevoegde leden uit tenzij dit beleid expliciet wordt ingeschakeld, terwijl een onbeperkt veld ze meeneemt
Behouden selectie blijft daardoor stabiel na brongroei, terwijl clear-modus nieuwe bronleden meeneemt; geïmporteerde en geschreven ledenlijsten serialiseren hetzelfde beleid voor het verbergen van toekomstige leden
Bestaande Delete- en Clear-bewerkingen op verzamelingen bewaken nog steeds een laatste gebonden Slicer-weergave; gebruik de expliciete werkmapbewerking wanneer de cache en zijn gekoppelde beperkingen samen moeten verdwijnen
Reconstructie van vaste gegroepeerde caches
Vernieuwen zet numerieke, datum- en expliciete discrete groepsidentiteiten in staging op basis van gevalideerde basis-/ouderkoppelingen, inclusief geïmporteerde afgeleide velden waarvan de recordkolommen ontbreken; alleen-koppeling-bronvelden behouden hun oorspronkelijke waarden in plaats van zelf gegroepeerd te worden
Ondersteunde domeinen behouden bestaande ledenhandles, bijschriften en groepsordinals; numerieke en datumgroepering gebruikt één resolutie per veld en een vast native groepsitem-domein, en datumgroepering vereist interval één
TXLSPivotCacheField.GroupAutoStart en TXLSPivotCacheField.GroupAutoEnd staan standaard op True en behouden het geïmporteerde grenzenbeleid; nieuwe waarden die domeinuitbreiding of hergroepering vereisen worden geweigerd vóór mutatie
Discrete groepen vereisen een bestaande toewijzing voor elk bronlid; cyclische ouders, ongeldige getypeerde domeinen, niet-unieke tekenreeksbijschriften, berekende bases, ledenpropertyvelden en niet-ondersteunde ouderresolutie worden transactioneel geweigerd
Gewone Make reconstrueert ondersteunde verouderde of ontbrekende afgeleide recordwaarden, terwijl MakePreview dat alleen op een losgemaakte kopie doet; opslaan laat interne placeholder-gedeelde items uit afgeleide native domeinen weg en schrijft exact de gedeclareerde groepsitem-indices weg
Preview van native layout-metadata
function TryXLSXGeneratePivotLayout(const Xml: WideString; Table: TXLSPivotTable; out ResultXml, Reason: WideString): Boolean;
De lxPivotXml-helper zet rowItems, colItems, as-metadata en locatie in staging voor ondersteunde niet-lege lokale compacte weergaven met exacte veld- en cacheledenidentiteiten; het ondersteunt gewone hiërarchieën, standaard subtotalen boven of onder, en beide data-assen
Deze alleen-metadata-bewerking vereist expliciete Cache.RefreshOnLoad=True; het behoudt onbekende XML en geeft de oorspronkelijke XML plus een reden in het Engels terug wanneer gegroepeerde of berekende velden, aangepaste subtotalen, niet-ondersteunde layout of inconsistente geïmporteerde identiteiten niet kunnen worden gerepresenteerd
De helper herschrijft geen werkbladcellen en verandert geen live tabelvlaggen; aanroepers die gecachte werkbladuitvoer nodig hebben, moeten zelf een geschikte writer en een apart ondersteunde materialisatiebewerking leveren
TXLSPivotTable.MakePreview(AWriter: TlxPivotResultWriter; ALayoutWriter: TlxPivotLayoutWriter): Integer levert synchrone layout-callbacks vanuit een losgemaakte preview en behoudt de oorspronkelijke EvaluationSourceTable-identiteit
TlxPivotLayoutWriter ontvangt de oorspronkelijke tabel, rij-/kolomas, gekopieerde veldindex- en cacheitemindex-vectoren, TlxPivotLayoutItemKind, subtotaaltype en prefixlengte; xlplikData, xlplikSubtotal en xlplikGrand onderscheiden aggregatie-identiteiten zonder bijschriften te parsen
De vectoren gebruiken TlxPivotLayoutIndices en zijn geldig tijdens de callback; exceptions propageren, en bestaand Make-gedrag en MakePreview met één writer blijven beschikbaar
TXLSPivotTables._AddOwned(ATable: TXLSPivotTable) reserveert verzamelcapaciteit vóór de eigendomsoverdracht en ondersteunt interne transactionele weergavekoppeling; toepassingen moeten normaal gesproken de auteursmethoden van het werkblad gebruiken
Grenzen
Versie 2.384.95 voegt native gegroepeerde werkbladuitvoer, alleen-lezen cross-filter-beschikbaarheid en expliciete opschoning van historische leden toe; geserialiseerde native weergave zonder data, Timeline-auteurwerk en bredere gegroepeerde layout-serialisatie behouden aparte acceptatiegrenzen