Pivot Timelines och Slicer-datalägen
Finns sedan version 2.384.98 för stödda lokala icke-OLAP-pivottabeller via XLSX-arbetsboksfasaden
Skapa och koppla en Timeline
TimelineCache := Workbook.CreatePivotTimelineCache(Pivot, 'EventDate');
if TimelineCache = nil then
raise Exception.Create('The Timeline cache was rejected');
TimelineView := ReportSheet.Timelines.Add(TimelineCache, 2, 7, 7, 12);
if TimelineView = nil then
raise Exception.Create('The Timeline view was rejected');
if TimelineCache.SetDateRange(EncodeDate(2026, 1, 1),
EncodeDate(2026, 1, 31)) < 0 then
raise Exception.Create('The Timeline selection was rejected');
TXLSXWorkbook.CreatePivotTimelineCache(ATable: TXLSPivotTable; const AFieldName: WideString): TXLSXTimelineCache skapar eller återanvänder en validerad cache för datumfält och dess nödvändiga paketidentiteter; fel returnerar nil innan mellanlagrat tillstånd engageras
TXLSXWorkbook.TimelineCaches exponerar TXLSXTimelineCaches, med Count, nollbaserad Items[Index] och skiftlägesokänslig FindByName; arbetsboken äger de cacherna
TXLSXTimelineCache.Name identifierar cachen, SourceName identifierar dess källfält och IsNonOlapPivot identifierar den validerade stödda bindningen; importerade cacher som inte stöds behåller sin ursprungliga XML
TXLSXTimelineCache.ConnectPivotTable(ATable: TXLSPivotTable): Integer kopplar ytterligare en ägd vy av samma PivotCache med ett kompatibelt datumfält; den returnerar 1 vid lyckat resultat, inklusive en befintlig anslutning, eller -1 vid avslag
TXLSXTimelineCache.SetDateRange(AStartDate, AEndDate: TDateTime): Integer använder inklusiva heldagsslutpunkter och returnerar 1 eller -1; slutpunkterna måste vara hela datum från 1 januari 1900 till 31 december 9999 i stigande ordning
Den stödda arbetsboken använder 1900-datasystemet; Date1904-författning och decimala urvalsslutpunkter avslås, medan källdatumvärden får behålla tid på dygnet och poster under hela den valda slutdagen förblir berättigade
TXLSXTimelineCache.SelectionActive, StartDate och EndDate exponerar de aktiva gränserna; ClearSelection: Integer rensar dem utan att ändra andra filter och returnerar 1 eller -1
Urval skär andra Slicers, manuella filter eller sidfilter samt uppringarpredikat; de här åtgärderna uppdaterar inte källcacher, omberäknar inte formler och skriver inte om befintliga rapportceller i kalkylbladet
Timeline-vyer och borttag
TXLSXWorksheet.Timelines exponerar den kalkylbladsägda samlingen TXLSXTimelines, med Add, FindByName, nollbaserad Items[Index], Count, Delete(Index) och Clear; borttag tar bort användargränssnittet medan dess delade cache och urval behålls
TXLSXTimelines.Add(ACache: TXLSXTimelineCache; ARow1, ACol1, ARow2, ACol2: Integer): TXLSXTimeline accepterar en ägd cache som stöds och en ordnad ettbaserad kalkylbladsrektangel och returnerar en ägd vy eller nil
TXLSXTimeline.Name är skrivskyddad, Cache identifierar dess delade cache, och Caption ändrar visningsetiketten; Level accepterar 0 för år, 1 för kvartal, 2 för månader eller 3 för dagar
TXLSXTimeline.SetBounds ändrar den ettbaserade rektangel som exponeras av FromRow, FromCol, ToRow och ToCol; ogiltig geometri, bindningar som inte stöds eller grupperad ritgeometri utlöser undantag före ändringen
TXLSXDrawingObject.Timeline returnerar den associerade vyn för ritningstypen xlsxDrawingTimeline; direkta rittransformationer som inte stöds forblir skyddade
Status := Workbook.RemoveTimelineCache(TimelineCache, xlsxSlicerPreserveCurrentSelection);
TXLSXWorkbook.RemoveTimelineCache(ACache: TXLSXTimelineCache; AMode: TXLSXSlicerRemovalMode): Integer mellanlagrar anslutna filter, UI, namn och paketstädning tillsammans och returnerar 1 eller -1
xlsxSlicerClearSelection tar bort urvalet; xlsxSlicerPreserveCurrentSelection behåller ett aktivt urval som en heldags datumjämförelse endast när datumfältet redan finns på en rad- eller kolumnaxel i varje ansluten vy
Ett oanvänt eller enbart sidbaserat datumfält avslår urvalsbevarande borttag atomärt; använd uttrycklig borttag med urvalsrensning när det beteendet önskas
Importerade filter normaliseras först efter att varje anslutning, ärvda namnområden och exakt ägarfilterproveniens validerats; ogenomskinliga attribut eller barn för samma fält, främmande namnområden, externa bindningar och flera-UI-grafer som inte stöds behåller sin XML och avslår mutation
Inbyggd materialisering mellanlagrar aktuellt Timeline-urval med rapportmetadata och celler och tar bara bort den exakta sparade signaturen för det ägda filtret; godtyckliga callback-begränsningar har ingen inbyggd XML-representation och kan inte återskapas av Excel-uppdatering
OOXML-sparning bevarar inbyggda relationstyper, ursprungliga sökvägar och orelaterade tillägg; Strict-sparning med enbart cache avslås, ODS-konvertering rapporterar Timeline-förlust, och XLSB-delmängden för värden och format avslår Timelines
Uttrycklig inbyggd uppdatering av Slicer-datalägen
function TXLSXSlicerCache.RefreshItemDataStates: Integer; overload; function TXLSXSlicerCache.RefreshItemDataStates( AMaxEvaluationSteps: Integer; ACancelFlag: PBoolean = nil): Integer; overload;
Åtgärden utvärderar och mellanlagrar den kompletta inbyggda no-data-vektorn och engagerar sedan under arbetsbokens skrivskydd; lyckat resultat returnerar 1, avslag returnerar -1 utan att serialiserade objektflaggor eller urval ändras
Den ignorerar denna Slicers eget urval medan den skär andra Slicer- och Timeline-val, manuella filter eller sidfilter, stödda aggregeringsfilter och uppringarpredikat; tillgängligheten är unionen över stödda anslutna vyer
Valda historiska medlemmar utan berättigade poster får den inbyggda no-data-flaggan medan deras urval behålls; stabila cache-ID, ursprunglig serialiserad objektordning och orelaterad XML förblir intakta
Standardgränsen för kumulativa steg är 1000000; noll betyder obegränsade steg, ett negativt värde avslås, och FormulaArrayMemoryLimit avgränsar metadata mellanlagring plus alla anslutna vyförhandsvisningar kumulativt
Avbrott, callback-undantag eller återinträde, frysta vyer, bindningar som inte stöds, uttömda budgeter eller ändrat utvärderingstillstånd avslås innan flaggorna engageras; oberoende ändringar i den gemensamma modellen som uppringarens callbacks gör förblir uppringarens ändringar och orsakar uppdateringsavslag
TXLSXSlicerCache.CrossFilter läser och skriver den inbyggda tabellformade korsfilterinställningen under mutationsskyddet; showItemsWithDataAtTop aktiverar inbyggd data-först-ordning utan att skriva om objektens serialiserade ordning
ItemHasData förblir en skrivskyddad fråga; sparandet anropar inte utvärderaren eller uppdaterar implicit no-data-flaggor, så anropa RefreshItemDataStates uttryckligen före sparandet när inbyggt UI-tillstånd behöver uppdateras
Avancerad datumfiltersemantik
TXLSPivotFilter.UseWholeDay begär heldags datumjämförelser för stödda datumfilter; Timeline-genererade bevarade urval använder den, medan vanliga datumfilter behåller sitt tidigare tidskänsliga beteende
Se inbyggda pivotutdata och skrivskyddad Slicer-tillgänglighet samt livscykeln för lokal cache och Slicer för de omgivande kontrakten för uppdatering och ägarskap