HotXLS-documentatie

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