Životní cyklus lokální mezipaměti kontingenčních tabulek a nativní rozvržení
Verze 2.384.94 přidává zobrazení se sdílenou mezipamětí, tvorbu a explicitní odstranění lokálního Pivot Sliceru pro data mimo OLAP, rekonstrukci seskupené mezipaměti a ohraničený generátor metadat nativního rozvržení
Sdílená zobrazení a tvorba Sliceru
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 vytvoří další zobrazení mezipaměti vlastněné tímto sešitem; před připojením zobrazení validuje vlastnictví, geometrii i názvy
TXLSXWorkbook.CreatePivotSlicerCache(ATable: TXLSPivotTable; const AFieldName: WideString): TXLSXSlicerCache vytvoří nebo bezpečně znovu použije mezipaměť podporovaného zdrojového pole, zatímco TXLSXSlicerCache.ConnectPivotTable(ATable: TXLSPivotTable): Integer připojí existující lokální zobrazení se sdílenou mezipamětí
TXLSXSlicers.Add(ACache: TXLSXSlicerCache; ARow1, ACol1, ARow2, ACol2: Integer): TXLSXSlicer vytvoří UI listu s explicitními včetnými mezemi buněk od jedničky; zdrojové názvy, části mezipaměti, kreslicí odkazy i členství v zobrazení se připraví před mutací
Seskupené, počítané a OLAP zdroje Slicerů, cizí mezipaměti, nekonzistentní importované domény i dvojznačné nezávislé masky téhož pole se odmítnou; podporované importované XML zobrazení si ponechá nesouvisející rozšíření, když se přidává nové UI
Explicitní odstranění a budoucí členové
if Workbook.RemoveSlicerCache(Cache, xlsxSlicerPreserveCurrentSelection) <> 1 then
raise Exception.Create('The Slicer cache could not be removed');
TXLSXSlicerRemovalMode nabízí xlsxSlicerClearSelection a xlsxSlicerPreserveCurrentSelection; TXLSXWorkbook.RemoveSlicerCache(ACache: TXLSXSlicerCache; AMode: TXLSXSlicerRemovalMode): Integer odstraní najednou vázané UI, kreslicí odkazy, nativní části mezipaměti i připojení
Režim clear odstraní omezení tohoto Sliceru, zatímco nezávislé filtry a predikáty volajícího zachová; režim preserve převede jeho aktuální omezení na obyčejné masky členů kontingenční tabulky, než Slicer odstraní
Operace vrátí 1 při úspěchu a -1 pro nepodporované či nebezpečné vazby; všechna dotčená zobrazení i stav mezipaměti se před potvrzením validují a připraví a dvojznačné vlastnictví téhož pole se odmítne, místo hádání
TXLSPivotField.IncludeNewItemsInFilter: Boolean má výchozí hodnotu False; zachovaná ruční podmnožina vyloučí nově připojené členy, pokud tato politika není výslovně povolená, zatímco neomezené pole je zahrne
Zachovaný výběr tak zůstane stabilní i po růstu zdroje, zatímco režim clear nové zdrojové členy zahrne; importované i autorské seznamy členů serializují tutéž politiku skrytí budoucích členů
Stávající kolekční operace Delete a Clear dál střeží poslední vázané Slicer zobrazení; explicitní operaci sešitu použijte, když se má mezipaměť a její připojená omezení odstranit společně
Rekonstrukce fixní seskupené mezipaměti
Aktualizace připraví číselné, datumové i explicitní diskrétní identity skupin z validovaných základních/nadřazených odkazů, včetně importovaných odvozených polí, jimž chybí sloupce záznamů; zdrojová pole existující jen jako odkaz si ponechají původní hodnoty, místo aby se seskupila sama
Podporované domény si zachovají stávající handlery členů, titulky i pořadová čísla skupin; numerické a datumové seskupení používá jedno resolvování na pole a fixní nativní doménu skupinových položek a datumové seskupení vyžaduje interval jedna
TXLSPivotCacheField.GroupAutoStart a TXLSPivotCacheField.GroupAutoEnd mají výchozí hodnotu True a zachovávají importovanou politiku hranic; nové hodnoty vyžadující rozšíření domény nebo přegroupování se odmítnou před mutací
Diskrétní skupiny vyžadují existující mapování pro každého zdrojového člena; cykličtí rodiče, neplatné typované domény, neunikátní řetězcové titulky, počítané základy, pole vlastností členů i nepodporované resolvování rodičů se transakčně odmítnou
Obyčejné Make znovu sestaví podporované zastaralé či chybějící odvozené hodnoty záznamů, zatímco MakePreview to udělá jen na oddělené kopii; ukládání vynechá interní zástupné sdílené položky z odvozených nativních domén a emituje přesně deklarované indexy skupinových položek
Náhled metadat nativního rozvržení
function TryXLSXGeneratePivotLayout(const Xml: WideString; Table: TXLSPivotTable; out ResultXml, Reason: WideString): Boolean;
Pomocník lxPivotXml připraví rowItems, colItems, metadata os a umístění pro podporovaná neprázdná lokální kompaktní zobrazení s přesnými identitami polí a členů mezipaměti; podporuje obyčejné hierarchie, výchozí horní či dolní mezisoučty a libovolnou datovou osu
Tato operace jen nad metadaty vyžaduje explicitní Cache.RefreshOnLoad=True; zachová neznámé XML a vrátí původní XML plus anglický důvod, když seskupená či počítaná pole, vlastní mezisoučty, nepodporované rozvržení nebo nekonzistentní importované identity nejdou reprezentovat
Pomocník nepřepisuje buňky listu a nemění živé příznaky tabulky; volající, kteří potřebují výstup do mezipaměti listu, musí dodávat odpovídající zapisovač a samostatně podporovanou operaci materializace
TXLSPivotTable.MakePreview(AWriter: TlxPivotResultWriter; ALayoutWriter: TlxPivotLayoutWriter): Integer dodává synchronní zpětná volání rozvržení z odděleného náhledu, se zachováním identity původního EvaluationSourceTable
TlxPivotLayoutWriter dostane původní tabulku, osu řádků/sloupců, zkopírované vektory indexů polí a indexů položek mezipaměti, TlxPivotLayoutItemKind, druh mezisoučtu a délku prefixu; xlplikData, xlplikSubtotal a xlplikGrand rozliší agregující identity, aniž by parsovaly titulky
Vektory používají TlxPivotLayoutIndices a jsou platné během zpětného volání; výjimky se propagují a stávající chování Make a MakePreview s jedním zapisovačem zůstává dostupné
TXLSPivotTables._AddOwned(ATable: TXLSPivotTable) rezervuje kapacitu kolekce před převodem vlastnictví a podporuje interní transakční připojování zobrazení; aplikace by normálně měly používat autorské metody listu
Hranice
Verze 2.384.95 přidává nativní výstup do mezipaměti listu, dostupnost křížového filtrování jen pro čtení a explicitní čištění historických členů; serializované nativní zobrazení chybějících dat, autorské Timelines a širší serializace seskupeného rozvržení si ponechávají samostatné akceptační hranice