Dokumentacja HotXLS / Dokumentacja API

Timeline tabel przestawnych i stany danych Slicerów

Dostępne od wersji 2.384.98 dla obsługiwanych lokalnych tabel przestawnych non-OLAP poprzez fasadę skoroszytu XLSX

Tworzenie i łączenie 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 tworzy albo ponownie używa zwalidowanej pamięci podręcznej pola daty i jej wymaganych tożsamości pakietu; błąd zwraca nil przed zatwierdzeniem etapowanego stanu

TXLSXWorkbook.TimelineCaches ujawnia TXLSXTimelineCaches z Count, numerowanymi od zera Items[Index] i nierozróżniającą wielkości liter FindByName; skoroszyt posiada te pamięci podręczne

TXLSXTimelineCache.Name identyfikuje pamięć podręczną, SourceName identyfikuje jej pole źródłowe, a IsNonOlapPivot identyfikuje zwalidowane obsługiwane powiązanie; zaimportowane nieobsługiwane pamięci podręczne zachowują swój pierwotny XML

TXLSXTimelineCache.ConnectPivotTable(ATable: TXLSPivotTable): Integer łączy kolejny posiadany widok tego samego PivotCache z kompatybilnym polem daty; zwraca 1 dla sukcesu, łącznie z istniejącym połączeniem, albo -1 przy odrzuceniu

TXLSXTimelineCache.SetDateRange(AStartDate, AEndDate: TDateTime): Integer korzysta z włącznych końcówek całych dni i zwraca 1 albo -1; końcówki muszą być całkowitymi datami od 1 stycznia 1900 do 31 grudnia 9999 w kolejności rosnącej

Obsługiwany skoroszyt korzysta z systemu daty 1900; autorskie Date1904 i ułamkowe końcówki wyboru są odrzucane, podczas gdy źródłowe wartości dat mogą zachowywać porę dnia, a rekordy w całym wybranym dniu końcowym pozostają kwalifikowalne

TXLSXTimelineCache.SelectionActive, StartDate i EndDate ujawniają aktywne granice; ClearSelection: Integer je czyści bez zmiany innych filtrów i zwraca 1 albo -1

Wybory przecinają się z innymi Slicerami, filtrami ręcznymi albo stronicowymi i predykatami wywołującego; te operacje nie odświeżają pamięci podręcznych źródeł, nie przeliczają formuł ani nie przepisują istniejących komórek raportu arkusza

Widoki Timeline i usuwanie

TXLSXWorksheet.Timelines ujawnia należącą arkuszowi kolekcję TXLSXTimelines z Add, FindByName, numerowanymi od zera Items[Index], Count, Delete(Index) i Clear; usunięcie zdejmuje UI, zachowując jego współdzieloną pamięć podręczną i wybór

TXLSXTimelines.Add(ACache: TXLSXTimelineCache; ARow1, ACol1, ARow2, ACol2: Integer): TXLSXTimeline przyjmuje posiadany obsługiwany cache i uporządkowany prostokąt arkusza numerowany od 1, zwracając posiadany widok albo nil

TXLSXTimeline.Name jest tylko do odczytu, Cache identyfikuje współdzielony cache, a Caption zmienia etykietę wyświetlaną; Level przyjmuje 0 dla lat, 1 dla kwartałów, 2 dla miesięcy albo 3 dla dni

TXLSXTimeline.SetBounds zmienia prostokąt numerowany od 1, ujawniany przez FromRow, FromCol, ToRow i ToCol; nieprawidłowa geometria, nieobsługiwane powiązania albo pogrupowana geometria rysunku podnoszą wyjątek przed mutacją

TXLSXDrawingObject.Timeline zwraca powiązany widok dla rodzaju rysunku xlsxDrawingTimeline; bezpośrednie nieobsługiwane transformacje rysunku pozostają chronione

Status := Workbook.RemoveTimelineCache(TimelineCache,
  xlsxSlicerPreserveCurrentSelection);

TXLSXWorkbook.RemoveTimelineCache(ACache: TXLSXTimelineCache; AMode: TXLSXSlicerRemovalMode): Integer etapuje połączone filtry, UI, nazwy i sprzątanie pakietu razem oraz zwraca 1 albo -1

xlsxSlicerClearSelection usuwa wybór; xlsxSlicerPreserveCurrentSelection zachowuje aktywny wybór jako porównanie dat całodniowych tylko wtedy, gdy pole daty już leży na osi wierszy albo kolumn w każdym połączonym widoku

Nieużywane albo tylko-stronicowe pole daty odrzuca usuwanie z zachowaniem wyboru atomowo; gdy taka zmiana jest zamierzona, użyj usuwania z jawnym czyszczeniem wyboru

Zaimportowane filtry normalizują się dopiero po zwalidowaniu każdego połączenia, odziedziczonej przestrzeni nazw i dokładnego pochodzenia posiadanego filtra; nieprzejrzyste atrybuty albo potomkowie tego samego pola, obce przestrzenie nazw, zewnętrzne powiązania i nieobsługiwane grafy wielu UI zachowują swój XML i odrzucają mutację

Natywna materializacja etapuje bieżący wybór Timeline z metadanymi raportu i komórkami, usuwając tylko dokładną zapisaną sygnaturę posiadanego filtra; dowolne restrykcje callbacków nie mają natywnej reprezentacji XML i nie dają się odtworzyć przez odświeżenie Excela

Zapis OOXML zachowuje natywne typy relacji, pierwotne ścieżki i niepowiązane rozszerzenia; zapis tylko-cache Strict jest odrzucany, konwersja ODS raportuje utratę Timeline, a podzbiór wartości i stylów XLSB odrzuca Timeline

Jawne natywne odświeżanie stanów danych Slicerów

function TXLSXSlicerCache.RefreshItemDataStates: Integer; overload;
function TXLSXSlicerCache.RefreshItemDataStates(
  AMaxEvaluationSteps: Integer; ACancelFlag: PBoolean = nil): Integer; overload;

Operacja ewaluuje i etapuje pełny natywny wektor braku danych, po czym zatwierdza pod strażnikiem zapisu skoroszytu; sukces zwraca 1, odrzucenie zwraca -1 bez zmiany zserializowanych flag elementów ani wyborów

Ignoruje własny wybór tego Slicera, przecinając przy tym wybory innych Slicerów i Timeline, filtry ręczne albo stronicowe, obsługiwane filtry agregujące i predykaty wywołującego; dostępność jest unią w poprzek obsługiwanych połączonych widoków

Wybrane elementy historyczne bez kwalifikowalnych rekordów otrzymują natywną flagę braku danych, zachowując przy tym swój wybór; stabilne identyfikatory pamięci podręcznej, pierwotna kolejność zapisu elementów i niepowiązany XML pozostają nienaruszone

Domyślny skumulowany limit kroków to 1000000; zero oznacza kroki nieograniczone, wartość ujemna jest odrzucana, a FormulaArrayMemoryLimit ogranicza skumulowanie etapowania metadanych i wszystkich podglądów połączonych widoków

Anulowanie, wyjątki albo ponowne wejście callbacków, zamrożone widoki, nieobsługiwane powiązania, wyczerpane budżety albo zmieniony stan ewaluacji są odrzucane przed zatwierdzeniem flag; niezależne zmiany wspólnego modelu dokonane przez callbacki wywołującego pozostają jego zmianami i powodują odrzucenie odświeżenia

TXLSXSlicerCache.CrossFilter czyta i zapisuje natywne tabelaryczne ustawienie cross-filter pod strażnikiem mutacji; showItemsWithDataAtTop włącza natywne uporządkowanie dane-najpierw bez przepisywania kolejności zapisu elementów

ItemHasData pozostaje zapytaniem tylko do odczytu; zapis nie wywołuje ewaluatora i nie aktualizuje jawnie flag braku danych, więc wywołaj RefreshItemDataStates jawnie przed zapisem, gdy natywny stan UI musi zostać odświeżony

Zaawansowana semantyka filtrów dat

TXLSPivotFilter.UseWholeDay żąda całodniowych porównań dat dla obsługiwanych filtrów dat; zachowane wybory generowane przez Timeline z niego korzystają, podczas gdy zwykłe filtry dat zachowują poprzednie zachowanie wrażliwe na porę dnia

Zobacz natywne wyjście tabel przestawnych i dostępność Slicerów tylko do odczytu oraz lokalny cykl życia pamięci podręcznej i Slicerów dla otaczających kontraktów odświeżania i własności