HotXLS-dokumentation

Native beregnede Pivotfelter og cache-ejede elementer

Beregn ud fra kontekstsummer

For et lokalt beregnet cachefelt summerer native preview først alle refererede databasefelter i den anmodede leaf-, deltotal- eller stortotalkontekst og evaluerer derefter formlen; afhængigheder kan forblive fraværende fra de viste datafelter

For eksempel giver to poster med Amount/Units-værdierne 10/1 og 30/9 et nativt beregnet feltresultat på 40/10 = 4, og en stortotal evaluerer sine egne afhængighedssummer i stedet for at lægge viste forholdstal sammen

Beregnede elementer evaluerer medlemsreferencer i hver komplet leaf-kontekst, inklusive de andre række- og kolonneakser; deltotaler og stortotaler inkluderer de resulterende medlemsbidrag, så et forholdstalselement kan bidrage med en sum af sine leaf-forholdstal

Et manuelt skjult medlem forbliver tilgængeligt, når et andet beregnet element refererer til det, mens dets eget bidrag forbliver uden for viste totaler; for A=40 og B=60 giver skjulning af A stadig Combined=A+B værdien 100 og inkluderer Combined i den synlige stortotal

Når beregnede felter og elementer eksisterer side om side, opdaterer elementbidragene først deres refererede databasefeltsummer, og derefter evaluerer det beregnede felt de opdaterede kontekstsummer

Beregnede elementer kan tilhøre flere ugrupperede felter; den tilbageholdte cache-definitionsrækkefølge afgør, hvilken feltformel der skriver en skæring sidst, så flytning af en definition kan ændre både den skæring og de viste totaler

En uopløst beregnet medlemsafhængighed evalueres, når den refereres, inklusive en afhængighed defineret senere i den rækkefølge; et medlem, der allerede er beregnet i et tidligere trin, beholder sin aktuelle skæringsværdi, når en anden formel refererer til det

Native feltsummer ignorerer booleske og tekstkilde­værdier, beholder numeriske og datoværdier og propagerer typede kildefejl; late IF og IFERROR kan håndtere en fejl uden at evaluere en ubrugt gren

Cache-ejerskab og binding

Offentlig erklæringKontrakt
TXLSPivotCacheCalculatedItemEn cache-ejet native beregnet medlemsdefinition; hent den gennem den ejende cache, og hold cachen i live, mens du bruger det lånte objekt
TXLSPivotCacheCalculatedItem.FieldIndex: IntegerSkrivebeskyttet nulbaseret cachefeltidentitet
TXLSPivotCacheCalculatedItem.ItemIndex: IntegerSkrivebeskyttet nulbaseret delt medlemsidentitet inden for FieldIndex
TXLSPivotCacheCalculatedItem.Formula: WideStringLæse/skrive native medlemsformel; sættes den, ændres modellen, mens preview eller eksplicit binding validerer syntaks og afhængighedscyklusser før beregning
TXLSPivotCacheCalculatedItem.Supported: BooleanSkrivebeskyttet tilgængelighed af den parsede områdeidentitet frem for en garanti for, at enhver formel- eller visningskombination kan evalueres
TXLSPivotCacheCalculatedItem.RawXml: WideStringSkrivebeskyttet bevaret XML for en ikke-understøttet beregnet elementdefinition; kendte typede definitioner bruger en tom streng
TXLSPivotCache.AddCalculatedItem(AFieldIndex, AItemIndex: Integer; const AFormula: WideString): TXLSPivotCacheCalculatedItemOpretter en understøttet typet definition for et eksisterende medlem og afviser ugyldige identiteter, en tom formel eller duplikeret målidentitet; det returnerede objekt tilhører cachen
TXLSPivotCache.FindCalculatedItem(AFieldIndex, AItemIndex: Integer): TXLSPivotCacheCalculatedItemReturnerer den lånte matchende definition eller nil
TXLSPivotCache.CalculatedItemCount: IntegerSkrivebeskyttet antal tilbageholdte understøttede eller ikke-understøttede definitioner
TXLSPivotCache.CalculatedItems[Index: Integer]: TXLSPivotCacheCalculatedItemSkrivebeskyttet nulbaseret lånt adgang til definitionslisten
TXLSPivotCache.ClearCalculatedItemsFrigør de ejede definitioner og ugyldiggør lånte handles; den fjerner ikke delte medlemmer og etablerer ikke cache-forespørgselsfuldstændighed
TXLSPivotCache.MoveCalculatedItem(AIndex, ANewIndex: Integer)Flytter en eksisterende definition mellem nulbaserede positioner i den native solve-rækkefølge og bevarer dens lånte objektidentitet; ugyldige positioner udløser EArgumentOutOfRangeException uden at flytte definitioner
TXLSPivotCache._AddUnsupportedCalculatedItem(const ARawXml: WideString)Parser-orienteret bevaringshook, der tilbageholder ukendt XML og markerer cache-forespørgselsmodellen som ufuldstændig
TXLSPivotCache.Assign(Source: TXLSPivotCache)Deep-kopierer definitioner, felter, delte medlemmer, postindekser og datosystemkontekst; kildehandles forbliver uafhængige, og tildeling af den samme cache til sig selv er sikker
TXLSPivotTable.BindCalculatedItemsToCacheValiderer og binder visningsskrevne beregnede elementer på en detached cache og tilføjer derefter de nye delte medlemmer og definitioner til den levende cache; fejler det, forbliver medlemsidentiteter og definitioner uændrede, mens eksisterende felt- og medlemhandles forbliver gyldige

Et visningsskrevet element oprettet med TXLSPivotField.AddCalculatedItem kræver eksplicit BindCalculatedItemsToCache før native materialisering eller typet native rekonstruktion; import af en understøttet native cachedefinition leverer allerede det ejerskab

Cachebinding påvirker hver visning, der deler cachen, så kald den som en forfatteroperation, og behold kun de lånte handles, til den tilsvarende liste ryddes, tildeles eller destrueres

Medlemsfiltre og visningstransformationer

Caption- og værdisammenligninger på et beregnet elementfelt vælger viste medlemmer, efter at medlemsformlerne er kørt; filtrerede kildemedlemmer forbliver tilgængelige for refererede formler, og synlige deltotaler og stortotaler udelader disse medlemmers direkte bidrag

En værdisammenligning kan vælge et beregnet mål; hvert kandidatmedlem evaluerer det mål ud fra sine kontekstafhængighedssummer i stedet for at lægge kildepost-forholdstal sammen eller behandle formlen som en cachepost-kolonne

Beregnede elementresultater understøtter også de modellerede ShowDataAs-transformationer, inklusive procenter, indeks, differenser, løbende totaler, procenter af løbende totaler og ranger; skjulte medlemmer forbliver uden for synlige løbende og rangerækker, mens formelreferencer beholder deres oprindelige værdier

Offentlig erklæringKontrakt
TXLSPivotFilter.DataFieldIsMeasureIndex: BooleanVælger DataFields identitetsdomæne; False beholder den eksisterende nulbaserede cachefeltidentitet, mens True identificerer en nulbaseret vist dataposition og sættes, når native iMeasureFld importeres
TXLSPivotFilter.SourceOrder: IntegerLæse/skrive nulbaseret global rækkefølge tilbageholdt fra det native filters element, som standard -1, når fraværende; lokal beregning og typet skrivning bruger ikke-negative EvalOrder først, derefter SourceOrder og derefter stabil felt/liste-rækkefølge

Typet native skrivning konverterer en cachefeltidentitet til dens viste måleposition; et cachefelt, der bruges af flere datamål, kræver en eksplicit måleposition, da dets aggregerings- og visningsidentitet ellers ville være tvetydig

Excel kan gemme aktive filtre med evalOrder=-1, mens deres evalueringsrækkefølge bevares gennem filters-elementets sekvens; import, kloning og typet rekonstruktion beholder den sekvens i stedet for at behandle filtrene som inaktive

Ændring af en filterdefinition eller dens tilbageholdte kildeposition på en importeret bevaret native visning kræver typet rekonstruktion; almindelig native adoption validerer bevaret filteridentitet og afviser ikke-understøttede redigeringer før skrivning af rapportceller

Preview, forespørgsler og datosystemer

function TXLSPivotTable.MakePreview(AWriter: TlxPivotResultWriter;
  ALayoutWriter: TlxPivotLayoutWriter;
  AUseNativeGrandTotals: Boolean = False;
  ABudget: TlxPivotQueryBudget = nil;
  ADateSystem: TXLSPivotDateSystem = xlpdsCache): Integer;

function TXLSPivotTable.GetDataValue(const ADataField: WideString;
  const AConstraints: TXLSPivotDataConstraints;
  ABudget: TlxPivotQueryBudget; out AValue: Variant;
  ADateSystem: TXLSPivotDateSystem = xlpdsCache): Boolean;

MakePreview med AUseNativeGrandTotals=True bruger en detached tabel og cache, inklusive eksakte native summer og beregnede element-identiteter; almindelig Make og standard MakePreview beholder deres eksisterende postbaserede beregningsadfærd

GetDataValue bruger native kontekstsummer, når cachen har beregnede felter eller elementer, og GETPIVOTDATA deler den forespørgselssti; ingen af operationerne opdaterer kildedata, genberegn inspicerede regnearksformler eller skriver rapportceller

Offentlig erklæringKontrakt
TXLSPivotCache.Date1904: BooleanLæse/skrive kildedatosystemkontekst til selvstændige native beregninger; den er som standard False og bindes under Classic- og XLSX-import samt regnearkscache-oprettelse og under XLSX-cache-kopiering
TXLSPivotDateSystemTypet datosystemvalg for detachede native previews og forespørgsler
xlpdsCacheBrug cachen tilbageholdte Date1904-kontekst uden at ændre den
xlpds1900Projektér 1900-datosystemet ind i den detachede beregning
xlpds1904Projektér 1904-datosystemet ind i den detachede beregning
TryXLSXMakeNativePivotLayout(...; ADateSystem: TXLSPivotDateSystem = xlpdsCache): BooleanLavniveau native layout-hjælper accepterer det samme detachede datosystemvalg efter sine ResultXml- og Reason-outputparametre
TXLSGetDate1904 = function: Boolean of objectCalculator-metadata-callback, der læser den aktuelle ejende projektmappes datosystem
TXLSCalculator.OnGetDate1904: TXLSGetDate1904Valgfrit lånt callback brugt af GETPIVOTDATA; nil bruger cache-konteksten, mens projektmappeevaluatorer og deres skrivebeskyttede views leverer den aktuelle projektmappeindstilling

Selvstændige kaldere skal levere den korrekte cache-Date1904-kontekst eller et eksplicit datosystemvalg; projektmappens ejede native materialisering og formelforespørgsler projicerer den aktuelle projektmappeindstilling uden at ændre den levende cache

Datokildeværdier forbliver absolutte TDateTime-værdier i cachen, mens native numeriske formler bruger Excel-datoserialer; 1904-systemet trækker 1462 dage fra pr. datoværdi, og 1900-konverteringen håndterer de repræsenterbare datoer før marts 1900

Gemt native output-ejerskab gemmer sin datosystemkontekst og sammenligner stylede datoværdier med deres serialiserede numeriske payload; gemning, genåbning eller ændring af projektmappens datobasis bevarer legitimt ejerskab, mens ændrede dato-, booleske, fejl- og tekstpayloads stadig afviser overskrivning

Budgetter og ikke-understøttet input

Det valgfrie TlxPivotQueryBudget-callback modtager arbejdsinkrementer og et aktuelt hukommelsesestimat, inklusive det foreslåede detachede snapshot og formellagring; False afbryder med EXLSPivotQueryBudget, og callback-exceptions propagerer

Postbredder og databasemedlemsidentiteter tjekkes før kloning; formelkompilering og evaluering belaster arbejdet, og beregningen beholder begrænset syntaksdybde, formeltekst, beregnede medlemsdomæner og akkumulatorlagring

Beregnet elementplanlægning begrænser de kombinerede medlemsdomæner, caption-lagring og feltplaner før allokering; native medlemsevaluering og sene aggregatfilterscanninger afviser også foreslået arbejde over deres faste grænser, før de går ind i scanningerne, og budgetannullering efterlader levende medlemsmasker uændrede

Formelparseren understøtter numeriske konstanter, feltnavne, citerede navne, feltkvalificerede medlemsnavne, aritmetik og sammenligninger, procent samt ABS, SQRT, POWER, ROUND, MIN, MAX, SUM, IF, IFERROR, AND, OR og PI; ukendte funktioner, cellereferencer, arrays og ubundne navne afvises i stedet for at levere gættede værdier

Native beregnede felter kræver SUM-datamål og kan ikke være række-, kolonne- eller sideakser; beregnede elementer kræver tilbageholdte strengcaptions i ugrupperede cachefelter, automatiske eller SUM-deltotaler, SUM-mål og den understøttede enkeltmedlems-områdeidentitet

Ukendte formelfunktioner, nonzero område-fieldPosition, ukendt eller misdannet områdemetadata, tvetydige filtermål-identiteter og gensidigt aktive basic- og extended-visningstransformationer afvises eksplicit; disse begrænsninger gør ikke en ikke-understøttet definition til et almindeligt element

Sen aggregatfiltrering af beregnede medlemmer understøtter modellerede værdisammenligninger; legacy count-, procent- og sumfilter-varianter og umodeleret Top n-metadata kræver en understøttet native selektionsmodel og afviser i stedet for at substituere kildepost-sammenligninger

Importerede rå dele beholder ikke-understøttet fremtidig metadata til almindelig roundtrip-bevaring; lokal beregning, typet rekonstruktion og semantisk funktionsekstraktion kræver en tilgængelig model og opdaterer ikke kildedata for at fremstille manglende cacheposter

Semantiske Pivot-cachedefinitioner inkluderer beregnet element-identitet og formel, datosystemkontekst og detachede begrænsede payloads; utilgængelige native udvidelser forbliver en eksplicit semantisk fejl