Transaktionel Pivot-cacheopdatering
Version 2.384.92 opdaterer lokale rektangulære, definerede navne- og tabel-Pivot-kilder uden at ændre eksisterende feltobjekter, delte elementobjekter eller logiske medlemsindekser; alle pivottabelvisninger der deler cachen fortsætter med at referere til de samme medlemmer
Projektmappeopdatering
Workbook.Recalculate;
if Workbook.RefreshPivotCache(Pivot.CacheId) <> 1 then
raise Exception.Create('Pivot cache refresh failed');
TXLSXWorkbook.RefreshPivotCache returnerer 1 efter en vellykket opdatering og -1, når cachen, kilden, skemaet eller kildeværdierne ikke kan opdateres; den læser aktuelle celleværdier, så genberegn projektmappen først, når kildeformler skal evalueres
En rektangulær kilde bruger et eksisterende lokalt regneark og en overskriftsrække; SourceFirstRow, SourceFirstCol, SourceLastRow og SourceLastCol bruger inklusive 1-baserede koordinater, og den første række leverer feltnavne
Definerede navne- og tabelkilder
Er SourceIsNamedRange=True, identificerer SourceName et defineret navn eller et unikt tabelnavn eller visningsnavn; opdatering og materialisering opløser dets aktuelle geometri ved hvert kald, mens den kildeidentitet, der er gemt i cachen, bevares
SourceRangeSheet leverer regnearkskonteksten for et lokalt defineret navn; det scope har forrang over et projektmappenavn med samme stavning, og ellers bruger opløsningen projektmappens scope uden at vælge et urelateret lokalt navn
Et defineret navn skal indeholde ét eksplicit regnearkskvalificeret absolut rektangel; citerede og Unicode-regnearksnavne understøttes, mens relative referencer, unioner, aliasser, formler, eksterne referencer og tvetydige navne-/tabelkollisioner afvises før mutation
En tabel skal beholde en overskriftsrække; poster følger dens aktuelle omfang og udelader en faktisk totalrække, mens kollisionstjek beskytter hele tabellen inklusive dens totaler; en tabel med kun overskrift leverer nul poster
Fysisk totalmedlemskab følger den gemte totalsRowCount, hvis fraværende værdi betyder nul; et totals-UI-hint fjerner ikke alene en datarække, og gemning skriver det faktiske medlemskab eksplicit
For en skrevet totalrække skal du levere gyldig kolonnetotals-metadata og regnearksindhold gennem ColumnTotalsRowLabels, ColumnTotalsRowFunctions og ColumnTotalsRowFormulas; sættes TotalsRowShown=True, oprettes ingen totals-formler, og celleværdier tvinges ikke
Regnearksflytninger beholder det lokale navnescope, og regnearksomdøbninger opdaterer understøttede lokale referencer og Pivot-kildekontekst, mens urelaterede eksterne referencer og ugennemsigtig importeret cache-XML bevares; gemning af definerede navne fjerner et valgfrit indledende lighedstegn i formlen uden at ændre in-memory-formlen
Overskrifter matches med eksisterende databasefelter efter navn uden versalfølsomhed; flytning af kildekolonner beholder logiske feltindekser, mens duplikerede, omdøbte, manglende eller ekstra kildefelter afvises; tomme overskrifter bruger den eksisterende FieldN-fallback
Tomme kildeceller forbliver tomme uden at blive tilføjet regnearkets cellsamling; kilder med kun overskrift giver nul poster, mens historiske medlemmer beholdes
Stabile medlemmer og delte visninger
Eksisterende delte elementer beholder deres indekser og objektidentiteter, og nye typede værdier tilføjes domænet; flytning, fjernelse og senere genindførelse af kildemedlemmer bevarer skjulte elementer, sideselektioner, baseelement-referencer og eksplicitte grupperingsmappinger, der allerede identificerer de medlemmer
Alle visninger der deler én cache ser de opdaterede poster; fraværende historiske medlemmer forbliver i cachedomænet men opretter ikke selv aggregatrækker, fordi TXLSPivotTable.Make bygger resultater fra aktuelle poster
Historiske medlemmer beholdes uanset MissingItemsLimit; denne opdateringssti udrenser ikke manglende medlemmer, håndhæver ikke en grænse for tilbageholdte medlemmer og nummererer ikke selektionsindekser om
Numeriske, dato-, booleske, tekst-, blanke og repræsenterbare fejlværdier beholder deres typer gennem opdatering og XLSX-gemning; delte elementindholdsflag og repræsenterbare grænser genberegnes ud fra det tilbageholdte og nytilføjede domæne
Gemning fuldfører opdaterede visningsmedlemslister før afsluttende deltotalelementer, mens eksisterende rækkefølge, skjulte flag og importerede layoutudvidelser bevares; sideselektioner mappes mellem logiske cachemedlemmer og de positioner, der er gemt i hver visning, så flyttede medlemslister stadig vælger det samme medlem efter genåbning
Beregnede og grupperede felter
Beregnede felter forbruger ikke kildekolonner; deres navne, formler og delte elementdomæner forbliver tilgængelige, mens hver opdateret post starter med en tom pladsholder for de felter; Make evaluerer understøttede beregnede formler ud fra de aktuelle kildeværdier
XLSX-cacheposter gemmer kun databasefelter; gemning og genåbning bevarer kildekolonnejusteringen, selv når beregnede felter forekommer mellem databasefelter
Numerisk og datogruppering på et kildefelt kan acceptere nye medlemmer; eksplicit diskret gruppering accepterer flyttede eksisterende medlemmer men afviser et nyt medlem uden eksplicit mapping og bevarer hele den forrige cache
Version 2.384.94 rekonstruerer understøttede faste afledte grupperede felter ud fra validerede base/parent-links; automatisk domæneudvidelse, umappede diskrete medlemmer og member-property-felter afvises transaktionelt, mens eksterne og OLAP-kilder forbliver uden for lokal kildekontrakten; se grupperede cache-grænser
Atomare opdateringer og callback-opdatering
Kildevalidering, læsning, typekonvertering, postallokering og medlemsopslag fuldføres i detachede stagingdata; fejler det, forbliver levende felt- og elementhandles, poster, metadata, rå replay-tilstand og alle delte visninger intakte
Succes erstatter post- og opslagsbuffere, deaktiverer rå cache-replay, opdaterer RefreshedDate og sætter RefreshOnLoad=False; gemning bruger den opdaterede typede cache i stedet for at afspille dens tidligere rå repræsentation
Selvstændig eller Classic-baseret kode kan bruge den samme staging-implementering gennem TXLSPivotCache.RefreshFromSource; dens reader modtager 1-baserede kildekoordinater og returnerer en Variant, og validerings- eller reader-fejl udløser en exception
TlxPivotSourceCellValue = function(ARow, ACol: Integer): Variant of object;
procedure TXLSPivotCache.RefreshFromSource(AValueReader: TlxPivotSourceCellValue); procedure TXLSPivotCache.RefreshFromSource(AValueReader: TlxPivotSourceCellValue; AFirstRow, AFirstCol, ALastRow, ALastCol: Integer);
En-argument-overloaderen kræver et konkret lokalt rektangel i cachen; den eksplicitte grænser-overloader læser et kalderopløst lokalt rektangel uden at ændre cachens navngivne eller tabelkildeidentitet, og kalderen forbliver ansvarlig for at opløse den identitet korrekt
Cacheopdatering opdaterer cachedata; applikationer kan kalde Make med deres egen result writer eller MaterializePivotTable til beskyttet regnearksoutput; typet ikke-OLAP Pivot Slicer-valg er tilgængeligt for understøttede importerede bindinger, mens komplet native layout forbliver separat arbejde