HotXLS-dokumentation

Native Pivot-output, krydsfilterforespørgsler og manglende medlemmer

Native cached regnearksoutput

function TXLSXWorkbook.MaterializeNativePivotTable(
  ATable: TXLSPivotTable): Integer;
function TXLSXWorkbook.MaterializeNativePivotTable(
  ATable: TXLSPivotTable; AAdoptExisting: Boolean): Integer;

Operationen klargør både det komplette native kompakte, tabel- eller outline-rapportnet og dets placering, rowItems, colItems og dataakse-metadata, før regnearksværdier og output-ejerskab committes sammen; den returnerer 1 ved succes eller -1 med en diagnostik ved ikke-understøttet tilstand eller en kollision

Understøttede ikke-tomme lokale visninger beholder aktuelle filtre, eksakte cachemedlemsidentiteter, almindelige hierarkier, understøttede grupperede domæner, standard- eller brugerdefinerede deltotaler og vilkårlig understøttet dataakse; det native grid bruger originale aggregatværdier i stedet for at rekombinere viste gennemsnit eller andre ikke-additive resultater

Eksisterende celelobjekter og formatering forbliver tilgængelige, mens formindskelse eller flytning af rapporten kun rydder uændrede tidligere ejede værdier; redigeret output, kildeoverlap, fletninger, formler, arrays og andre rapporter afvises før mutation

Importeret skalaroutput kræver eksplicit adoption med AAdoptExisting=True; efterfølgende opdateringer bruger persisteret individuelt celleejerskab, også efter gemning og genåbning

Operationen læser aktuelle cacheposter og opdaterer hverken kildedata eller genberegn formler; Cache.RefreshOnLoad=False er gyldigt, fordi regnearket nu indeholder faktiske klargjorte native resultater

Kalderpostfilter-callbacks deltager i det detachede preview men har ingen OOXML-repræsentation; Excels eksplicitte native opdatering kan ikke reproducere vilkårlige callback-begrænsninger, mens understøttede persisterede manuelle og Slicer-filtre beholder deres wire-repræsentation

Understøttede SUM beregnede cachefelter og cache-ejede beregnede elementer bruger kontekstsum-kontrakten beskrevet i Native beregnede Pivotfelter og cache-ejede elementer; brugerdefinerede medlemscaptions og ikke-understøttede layoutkombinationer afvises eksplicit, mens understøttet genereret råt layout beholder urelateret XML og aktuelle medlemsmasker

TryXLSXMakeNativePivotLayout(const Xml: WideString; Table: TXLSPivotTable; AWriter: TlxPivotResultWriter; out ResultXml, Reason: WideString): Boolean er lavniveau klargøringslayout-hjælperen i lxPivotXml

Dens writer modtager hele rapportrektanglet i række-major-rækkefølge, inklusive blanke celler, med nulbaserede offsets fra tabelankret; XML- og grid-preflight fuldføres før det første callback, men kalder-ejede skrivninger kan ikke rulles tilbage, hvis et callback udløser en exception

Projektmappens facade leverer en detached capture-writer til transaktionelle celleopdateringer; det kombinerede klargjorte preview og native Variant-grids er begrænset til 4194304 celler

Den native preview-sti kan anmode om native stortotal-orientering gennem TXLSPivotTable.MakePreviews valgfrie AUseNativeGrandTotals-parameter; eksisterende single-writer- og layout-writer-kald bevarer deres tidligere adfærd

Layout og gentagne etiketter

Sæt Compact og Outline på rapporten og hvert rækkefelt før materialisering; tabelfelter bruger begge flag som False, outline-felter bruger Compact=False og Outline=True, og kompakte felter bruger begge flag som True

property TXLSPivotField.RepeatLabels: Boolean;

RepeatLabels er som standard False, kopieres uafhængigt med feltet og læser eller skriver den native x14:pivotField fillDownLabels-udvidelse; den gentager forældreetiketter i tabel- og outline-output og har ingen effekt på et felt, hvis kompakte og outline-flag begge er aktiveret

Hvert separat rækkefelt får sin egen fysiske kolonne, mens tilstødende kompakte outline-felter deler en etiketkolonne; flere mål på rækker følger CompactData, og flere mål på kolonner beholder uafhængige datacaptions og stortotaler

Standard tabeldeltotaler vises under deres gruppe; outline SubtotalTop vælger top- eller bundplacering, mens mål på rækker bruger separate aggregatrækker under gruppen og beholder hvert måls caption

Native cached output efterlader fraværende række- og kolonneskæringer blanke og bevarer en faktisk numerisk nul; almindelig Make og previews uden native-indstillingen beholder deres tidligere tom-resultat-adfærd

Inaktive og målfelter arver rapportlayoutet i klargjort native metadata, så Excels eksplicitte opdatering beholder de passende felt- og datacaptions; operationen bevarer de levende feltindstillinger og eksisterende ejerskabskontroller

Importerede gentaget-etiket-udvidelser accepterer namespace-aliasser, inklusive deklarationer på udvidelseselementet selv; ukendt urelateret XML forbliver bevaret af native materialiseringsstien

Grupperede medlemmer, akserækkefølge og brugerdefinerede deltotaler

Native output understøtter komplette numeriske intervalgrupper, datogrupper og manuelle medlemsgrupper repræsenteret af cachens eksisterende typede grupperingsmetadata; genererede etiketter beholder de eksakte importerede GroupItemLabels, inklusive Unicode og lokaliserede datecaptions

Gruppering evalueres på en detached cache og bevarer den levende caches poster, delte elementhandles og gruppeidentiteter; ugyldige grænser, nulintervaller, ufuldstændige domæner eller ikke-understøttede gruppeelement-værdityper afvises, før regnearksoutput ændres

Den eksisterende nulbaserede TXLSPivotField.Position afgør den stabile native række- eller kolonneakserækkefølge; lige positioner beholder forfattet felterækkefølge, så nyoprettede felter med standardposition beholder deres tidligere rækkefølge

Native importerede Year/Month- og forælder-/manuel-medlems-hierarkier beholder deres eksplicitte aksesekvens, mens cachefeltindekser, visningsfeltindekser og visningsberegningsbase-identiteter forbliver uændrede; manuelle grupper ærer eksplicit Pivot-elementrækkefølge frem for at sortere gruppeetiketter eller cacheindekser

Brugerdefinerede rækkedeltotaler understøtter xlpsSum, xlpsCount, xlpsAverage, xlpsMax, xlpsMin, xlpsProduct, xlpsCountNumbers, xlpsStdDev, xlpsStdDevP, xlpsVar og xlpsVarP, inklusive flere valgte funktioner, tabelfelter eller outline-felter og mål på rækker

Hver funktion aggregerer de oprindelige kildeposter i sit eget deltotalscope; dens klargjorte rækkemetadata identificerer den valgte funktion uafhængigt og bevarer Excels eksplicitte opdateringsadfærd for ikke-additive beregninger samt tomme eller fejlresultater

En importeret brugerdefineret deltotalvalg udelukker den implicitte automatiske deltotal, selv når defaultSubtotal er fraværende i native XML; applikationer må ikke kombinere xlpsDefault med brugerdefinerede funktioner, og en sådan tvetydig typet anmodning afvises før mutation

Flere kolonnefeltniveauer med deltotaler, ikke-understøttede kompakte dataakse-kombinationer, sammenklappede medlemmer og brugerdefinerede captions forbliver uden for denne native outputkontrakt; beregnede felter og elementer har deres egne snævrere SUM- og medlemsidentitetskrav, og rå bevaring indebærer ikke understøttelse af genberegning eller materialisering af en funktion

Gemning, genåbning og re-materialisering beholder understøttet gruppering, akserækkefølge og deltotal-identiteter; importerede native visninger og uafhængigt kopierede typede caches er også verificeret mod Excel ved både første åbning og eksplicit opdatering

Native visningsberegninger

Sæt hvert almindeligt datafelts ShowDataAs eller ExtendedShowDataAs før kald af MaterializeNativePivotTable; basic- og extended-visningstilstande er gensidigt udelukkende

Basic-tilstande inkluderer differens, procent af et baseelement, procentdifferens, løbende total, procent af række, kolonne eller stortotal samt indeks; extended-tilstande inkluderer forælderrække, forælderkolonne og udvalgte forældreprocenter, kumulativ procentdel samt stigende eller faldende tætte ranger

BaseField er det nulbaserede Pivot-feltindeks til sammenligninger, løbende totaler, udvalgte forældreprocenter og ranger; sammenligninger bruger den nulbaserede BaseItem-position eller xlPivotBaseItemPrevious og xlPivotBaseItemNext for tilstødende synlige medlemmer i den effektive visningsrækkefølge

Forælderrække- og forælderkolonneprocenter vælger det tilsvarende inderste aksefelt uden at bruge BaseField; en manglende tilsvarende akse efterlader de resultater blanke

Enkle procenter dividerer med det oprindelige aggregat i det relevante scope, inklusive ikke-additive gennemsnit; kumulative procenter summerer viste medlemsaggregater og bruger original aksetotal for et inderste basefelt, mens et ydre basefelt bruger summen på tværs af dets matchende resterende medlemmer, så gennemsnit kan overstige 100 procent

Native ranger tæller distinct foregående aggregatværdier, og sammenligninger bevarer Excels blank- og fejladfærd for fraværende skæringer, manglende baser, nuldivisor og forrige/næste-grænser; enkle procenter behandler en fraværende tæller som nul

Stortotaler bruger den valgte tilstands native semantik, inklusive blanke totaler langs en sammenlignings- eller løbende akse; ændring af en visningstilstand beholder rapportens transaktionelle ejerskabs-, kollisions- og budgetkontroller

Gemning og genåbning beholder den valgte basic- eller extended-tilstand og baseidentiteter, og klargjort native metadata understøtter en eksplicit Excel-opdatering; almindelig Make og previews uden native-indstillingen beholder deres eksisterende beregningskontrakt

Slicer krydsfilter-tilgængelighed

property TXLSXSlicerCache.ItemHasData[Index: Integer]: Boolean;

Denne skrivebeskyttede forespørgsel evaluerer aktuelle understøttede ikke-OLAP cacheposter, mens den ignorerer denne Slicers egen selektion og beholder andre Slicer-selektioner, manuelle filtre, kalderprædikater og gældende aggregatfiltre

Tilgængelighed er unionen på tværs af tilkoblede visninger; historiske medlemmer uden matchende poster har ingen data, blanke mål har ingen data, og ikke-tom tekst, booleske værdier, nul, fejl og datomål tæller som data under den verificerede native kontrakt

Forespørgslen bruger en læselås og detached postpreview, bevarer levende handles og selektion og ærer FormulaArrayMemoryLimit; callback-fejl, reentry, ugyldige bindinger eller ikke-understøttede beregnede aggregatmedlemmer udløser en exception uden at committe levende ændringer

At forespørge tilgængelighed opdaterer ikke caches, genberegn ikke formler, udfører ikke fil-I/O og opdaterer ikke serialiserede native no-data-flag; applikationer bør ikke udlede native UI-tilstand fra denne skrivebeskyttede operation

TlxPivotRecordWriter = procedure(ATable: TXLSPivotTable;
  ARecordIndex: Integer) of object;
function TXLSPivotTable.MakeRecordPreview(AWriter: TlxPivotRecordWriter;
  AFilterOwner: TObject = nil; AFilter: TlxPivotRecordFilter = nil): Integer;

Den avancerede post-callback modtager det detachede preview og et nulbaseret postindeks efter understøttet simpel og aggregatfiltrering; EvaluationSourceTable beholder den oprindelige visningsidentitet, og returværdien er antallet af udsendte poster

Et erstatningsfilter substituerer kun den leverede ejers registrerede callback; andre ejere og det eksterne prædikat forbliver aktive, og et ikke-nil erstatnings-callback kræver en ikke-nil ejer

Eksplicit oprydning i historiske medlemmer

Removed := Workbook.PurgePivotCacheMissingItems(
  Pivot.CacheId, 0);
if Removed < 0 then
  raise Exception.Create('The cache member purge was rejected');

TXLSXWorkbook.PurgePivotCacheMissingItems(ACacheId: Integer; ARetainMissingItemsPerField: Integer = 0): Integer fjerner ubrugte medlemmer efter komplet validering og remapping af understøttede kædede visninger og Slicers

Den returnerer det samlede antal fjernede delte elementer på tværs af alle felter, nul for en vellykket no-op eller -1 med diagnostik 1402; aktuelle poster beholder hvert refereret medlem plus højst det anmodede antal ubrugte medlemmer pr. felt valgt efter største oprindelige delte elementindeks

Tilbageholdte medlemmer beholder deres oprindelige relative rækkefølge og objekthandles, mens logiske indekser komprimeres; kædede felt/elementhandles, manuelle skjulte og detaljeflag, aktive side- eller sammenligningsmedlemmer og Slicer-selektioner beholder deres identiteter

Domæneflag og -grænser genberegnes ud fra det tilbageholdte domæne; understøttede importerede komprimerede række-/kolonne- og sidepositioner remappes eksplicit, mens stortotal-dummy-referencer og data pseudofelt-ordinaler forbliver uændrede

Almindelige komplette lokale regnearkscaches understøttes; grupperede, beregnede, member-property-, OLAP-, eksterne, ufuldstændige eller tvetydige caches og ikke-understøttet ugennemsigtig identitetsmetadata afvises før mutation

Fjernelse af et aktivt side- eller sammenligningsmedlem, et helt valgt Slicer-undersæt eller en tidligere ikke-tom effektiv skæring afvises atomært; primitive medlemsattributter, der ville gå tabt under typet genopbygning, afvises også

Den kendte materialiserings-ejerskabsudvidelse forbliver uændret, fordi dens koordinater og typede værdi-tokens ikke indeholder cachemedlemsindekser; urelaterede ugennemsigtige udvidelser antages ikke at være sikre

Oprydning opdaterer ikke kildedata, omskriver ikke regnearksrapportceller, kalder ikke post-callbacks eller anvender MissingItemsLimit-metadata automatisk; opdatering forbliver kun-tilføjende, medmindre denne operation eksplicit anmodes

Avanceret oprydningskoordinering

TXLSPivotCache._PrepareMissingItemPurge returnerer en ugennemsigtig TXLSPivotCachePurgePlan; applikationer bør normalt bruge projektmappens facade, så alle kædede visninger og Slicers inkluderes

MapItem og RemainingItemCount inspicerer cache-remapping, StagePivotField registrerer et kædet felt og returnerer dets stage-indeks, og MapViewItemPosition inspicerer feltets wire-position-mapping; fjernede medlemmer mapper til -1, og RemovedCount rapporterer det samlede fjernelsestal

Validate tjekker oprindeligt skema, poster, felt/element-ejerskabsidentiteter og klargjorte visningsselektioner; Commit validerer igen og overfører forberedt ejerskab uden allokering eller callbacks efter den første levende udveksling

Planen ejer detachede snapshots, holder sin muterbare klargjorte cache privat og ejer aldrig originale cache- eller visningsobjekter; hold originalerne i live, til planens Destroy frigør staging, og commit hver plan kun én gang

Afvist feltstaging ruller det stage tilbage, så planen kan genbruges; ikke-understøttede mutationer efter forberedelse afvises før commit