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 tekstkildevæ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æring | Kontrakt |
|---|---|
TXLSPivotCacheCalculatedItem | En 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: Integer | Skrivebeskyttet nulbaseret cachefeltidentitet |
TXLSPivotCacheCalculatedItem.ItemIndex: Integer | Skrivebeskyttet nulbaseret delt medlemsidentitet inden for FieldIndex |
TXLSPivotCacheCalculatedItem.Formula: WideString | Læse/skrive native medlemsformel; sættes den, ændres modellen, mens preview eller eksplicit binding validerer syntaks og afhængighedscyklusser før beregning |
TXLSPivotCacheCalculatedItem.Supported: Boolean | Skrivebeskyttet tilgængelighed af den parsede områdeidentitet frem for en garanti for, at enhver formel- eller visningskombination kan evalueres |
TXLSPivotCacheCalculatedItem.RawXml: WideString | Skrivebeskyttet bevaret XML for en ikke-understøttet beregnet elementdefinition; kendte typede definitioner bruger en tom streng |
TXLSPivotCache.AddCalculatedItem(AFieldIndex, AItemIndex: Integer; const AFormula: WideString): TXLSPivotCacheCalculatedItem | Opretter 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): TXLSPivotCacheCalculatedItem | Returnerer den lånte matchende definition eller nil |
TXLSPivotCache.CalculatedItemCount: Integer | Skrivebeskyttet antal tilbageholdte understøttede eller ikke-understøttede definitioner |
TXLSPivotCache.CalculatedItems[Index: Integer]: TXLSPivotCacheCalculatedItem | Skrivebeskyttet nulbaseret lånt adgang til definitionslisten |
TXLSPivotCache.ClearCalculatedItems | Frigø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.BindCalculatedItemsToCache | Validerer 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æring | Kontrakt |
|---|---|
TXLSPivotFilter.DataFieldIsMeasureIndex: Boolean | Væ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: Integer | Læ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æring | Kontrakt |
|---|---|
TXLSPivotCache.Date1904: Boolean | Læ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 |
TXLSPivotDateSystem | Typet datosystemvalg for detachede native previews og forespørgsler |
xlpdsCache | Brug cachen tilbageholdte Date1904-kontekst uden at ændre den |
xlpds1900 | Projektér 1900-datosystemet ind i den detachede beregning |
xlpds1904 | Projektér 1904-datosystemet ind i den detachede beregning |
TryXLSXMakeNativePivotLayout(...; ADateSystem: TXLSPivotDateSystem = xlpdsCache): Boolean | Lavniveau native layout-hjælper accepterer det samme detachede datosystemvalg efter sine ResultXml- og Reason-outputparametre |
TXLSGetDate1904 = function: Boolean of object | Calculator-metadata-callback, der læser den aktuelle ejende projektmappes datosystem |
TXLSCalculator.OnGetDate1904: TXLSGetDate1904 | Valgfrit 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