Livscykel för lokal pivotcache och inbyggd layout
Version 2.384.94 lägger till vyer med delad cache, lokal skapelse av icke-OLAP Pivot Slicer med uttrycklig borttag, rekonstruktion av grupperad cache och en avgränsad generator för inbyggd layoutmetadata
Delade vyer och Slicer-skapelse
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 skapar ytterligare en vy av en cache som ägs av den här arbetsboken; den validerar ägarskap, geometri och namn innan vyn kopplas
TXLSXWorkbook.CreatePivotSlicerCache(ATable: TXLSPivotTable; const AFieldName: WideString): TXLSXSlicerCache skapar eller återanvänder på ett säkert sätt en stödd cache för källfält, medan TXLSXSlicerCache.ConnectPivotTable(ATable: TXLSPivotTable): Integer kopplar en befintlig lokal vy med delad cache
TXLSXSlicers.Add(ACache: TXLSXSlicerCache; ARow1, ACol1, ARow2, ACol2: Integer): TXLSXSlicer skapar kalkylbladsgränssnittet med uttryckliga inklusiva ettbaserade cellgränser; källnamn, cachedelar, ritreferenser och vymedlemskap mellanlagras innan ändringen
Grupperade, beräknade och OLAP-baserade Slicer-källor, främmande cacher, inkonsekventa importerade domäner och tvetydiga oberoende masker för samma fält avslås; stödd importerad vy-XML behåller orelaterade tillägg när ett nytt gränssnitt läggs till
Uttrycklig borttag och framtida medlemmar
if Workbook.RemoveSlicerCache(Cache, xlsxSlicerPreserveCurrentSelection) <> 1 then
raise Exception.Create('The Slicer cache could not be removed');
TXLSXSlicerRemovalMode har xlsxSlicerClearSelection och xlsxSlicerPreserveCurrentSelection; TXLSXWorkbook.RemoveSlicerCache(ACache: TXLSXSlicerCache; AMode: TXLSXSlicerRemovalMode): Integer tar bort det bundna gränssnittet, ritreferenser, inbyggda cachedelar och anslutningar tillsammans
Rensningsläget tar bort den här Slicer-begränsningen men behåller oberoende filter och uppringarpredikat; bevarandeläget överför dess aktuella begränsning till vanliga Pivot-medlemsmasker innan Slicern tas bort
Åtgärden returnerar 1 vid lyckat resultat och -1 för ostödda eller osäkra bindningar; alla berörda vyer och cachetillstånd valideras och mellanlagras innan commit, och tvetydigt ägarskap för samma fält avslås utan att gissa
TXLSPivotField.IncludeNewItemsInFilter: Boolean är False som standard; en behållen manuell delmängd utesluter nytillförda medlemmar om inte den policyn uttryckligen aktiverats, medan ett obegränsat fält inkluderar dem
Bevarade urval förblir därför stabila när källan växer, medan rensningsläget inkluderar nya källmedlemmar; importerade och författade medlemslistor serialiserar samma policy för att dölja framtida medlemmar
Befintliga Delete- och Clear-åtgärder i samlingarna skyddar fortfarande en sista bunden Slicer-vy; använd den uttryckliga arbetsboksåtgärden när cachen och dess kopplade begränsningar måste tas bort tillsammans
Rekonstruktion av fast grupperad cache
Uppdateringen mellanlagrar numeriska, datum- och uttryckligt diskreta gruppidentiteter från validerade bas-/föräldralänkar, inklusive importerade härledda fält vars postkolumner saknas; källfält med endast länkar behåller sina ursprungliga värden i stället för att själv grupperas
Stödda domäner behåller befintliga medlemshandtag, bildtexter och gruppordningstal; numerisk gruppering och datumgruppering använder en upplösning per fält och en fast inbyggd gruppobjektdomän, och datumgruppering kräver intervall ett
TXLSPivotCacheField.GroupAutoStart och TXLSPivotCacheField.GroupAutoEnd är True som standard och bevarar den importerade gränspolicyn; nya värden som kräver domänexpansion eller omgruppering avslås innan ändringen
Diskreta grupper kräver en befintlig mappning för varje källmedlem; cykliska föräldrar, ogiltiga typade domäner, icke-unika strängbildtexter, beräknade baser, medlemsegenskapsfält och föräldraupplösningar som inte stöds avslås transaktionellt
Vanlig Make rekonstruerar stödda inaktuella eller saknade härledda postvärden, medan MakePreview bara gör det på en fristående kopia; sparandet utelämnar interna platshållare för delade objekt ur härledda inbyggda domäner och genererar exakt de deklarerade gruppobjektindexen
Förhandsvisning av inbyggd layoutmetadata
function TryXLSXGeneratePivotLayout(const Xml: WideString; Table: TXLSPivotTable; out ResultXml, Reason: WideString): Boolean;
lxPivotXml-hjälparen mellanlagrar rowItems, colItems, axelmetadata och plats för stödda icke-tomma lokala kompakta vyer med exakta fält- och cachemedlemsidentiteter; den stöder vanliga hierarkier, standarddelsummor överst eller nederst samt valfri dataaxel
Den här rent metadatabaserade åtgärden kräver uttrycklig Cache.RefreshOnLoad=True; den bevarar okänd XML och returnerar ursprunglig XML plus en förklaring på engelska när grupperade eller beräknade fält, anpassade delsummor, layout som inte stöds eller inkonsekventa importerade identiteter inte kan representeras
Hjälparen skriver inte om kalkylbladsceller och ändrar inte aktiva tabellflaggor; uppringare som behöver cachad kalkylbladsutmatning måste tillhandahålla en lämplig skrivare och en separat stödd materialiseringsåtgärd
TXLSPivotTable.MakePreview(AWriter: TlxPivotResultWriter; ALayoutWriter: TlxPivotLayoutWriter): Integer tillhandahåller synkrona layoutcallbacks från en fristående förhandsvisning och behåller den ursprungliga EvaluationSourceTable-identiteten
TlxPivotLayoutWriter tar emot ursprungstabellen, rad-/kolumnaxel, kopierade vektorer för fältindex och cacheobjektindex, TlxPivotLayoutItemKind, delsummatyp och prefixlängd; xlplikData, xlplikSubtotal och xlplikGrand skiljer aggregeringsidentiteter åt utan att tolka bildtexter
Vektorerna använder TlxPivotLayoutIndices och är giltiga under callbacken; undantag propageras, och befintligt beteende i Make och MakePreview med en enda skrivare finns fortfarande
TXLSPivotTables._AddOwned(ATable: TXLSPivotTable) reserverar samlingskapacitet före ägarskapsöverföringen och stöder intern transaktionell vykoppling; program bör normalt använda kalkylbladens författarmetoder
Avgränsningar
Version 2.384.95 lägger till inbyggd cachad kalkylbladsutmatning, skrivskyddad tillgänglighet för korsfilter och uttrycklig rensning av historiska medlemmar; serialiserad inbyggd visning utan data, Timeline-författande och bredare serialisering av grupperad layout behåller separata acceptansgränser