Timeline pivot e stati dati dei Slicer
Disponibile dalla versione 2.384.98 per le tabelle pivot locali non-OLAP supportate tramite la facciata del workbook XLSX
Creare e collegare una 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 crea o riusa una cache di campo data validata con le sue identità di pacchetto richieste; un fallimento restituisce nil prima di effettuare il commit dello stato in staging
TXLSXWorkbook.TimelineCaches espone TXLSXTimelineCaches, con Count, Items[Index] a base zero e FindByName senza distinzione tra maiuscole e minuscole; queste cache sono di proprietà del workbook
TXLSXTimelineCache.Name identifica la cache, SourceName identifica il suo campo sorgente e IsNonOlapPivot identifica il binding supportato validato; le cache importate non supportate conservano il loro XML originale
TXLSXTimelineCache.ConnectPivotTable(ATable: TXLSPivotTable): Integer collega un'altra vista di proprietà dello stesso PivotCache con un campo data compatibile; restituisce 1 in caso di successo, connessione esistente compresa, o -1 in caso di rifiuto
TXLSXTimelineCache.SetDateRange(AStartDate, AEndDate: TDateTime): Integer usa estremi inclusivi di giorni interi e restituisce 1 o -1; gli estremi devono essere date intere dal 1 gennaio 1900 al 31 dicembre 9999, in ordine crescente
Il workbook supportato usa il sistema di data 1900; creazione con Date1904 ed estremi di selezione frazionari vengono rifiutati, mentre i valori di data della sorgente possono conservare l'ora del giorno e i record lungo tutto il giorno finale selezionato restano idonei
TXLSXTimelineCache.SelectionActive, StartDate e EndDate espongono i confini attivi; ClearSelection: Integer li azzera senza cambiare gli altri filtri e restituisce 1 o -1
Le selezioni si intersecano con gli altri Slicer, i filtri manuali o di pagina e i predicati del chiamante; queste operazioni non aggiornano le cache della sorgente, non ricalcolano formule e non riscrivono le celle esistenti del report nel foglio
Viste Timeline e rimozione
TXLSXWorksheet.Timelines espone la collezione TXLSXTimelines di proprietà del foglio di lavoro, con Add, FindByName, Items[Index] a base zero, Count, Delete(Index) e Clear; l'eliminazione rimuove la UI conservando la cache condivisa e la selezione
TXLSXTimelines.Add(ACache: TXLSXTimelineCache; ARow1, ACol1, ARow2, ACol2: Integer): TXLSXTimeline accetta una cache supportata di proprietà e un rettangolo del foglio ordinato a base uno, restituendo una vista di proprietà o nil
TXLSXTimeline.Name è in sola lettura, Cache identifica la sua cache condivisa, e Caption cambia l'etichetta mostrata; Level accetta 0 per anni, 1 per trimestri, 2 per mesi o 3 per giorni
TXLSXTimeline.SetBounds cambia il rettangolo a base uno esposto da FromRow, FromCol, ToRow e ToCol; geometria non valida, binding non supportati o geometria di disegno raggruppata sollevano un'eccezione prima della mutazione
TXLSXDrawingObject.Timeline restituisce la vista associata per il tipo di disegno xlsxDrawingTimeline; le trasformazioni di disegno non supportate dirette restano protette
Status := Workbook.RemoveTimelineCache(TimelineCache, xlsxSlicerPreserveCurrentSelection);
TXLSXWorkbook.RemoveTimelineCache(ACache: TXLSXTimelineCache; AMode: TXLSXSlicerRemovalMode): Integer prepara in staging insieme filtri collegati, UI, nomi e pulizia del pacchetto e restituisce 1 o -1
xlsxSlicerClearSelection rimuove la selezione; xlsxSlicerPreserveCurrentSelection conserva una selezione attiva come confronto per date di giorni interi solo quando il campo data è già su un asse di riga o colonna in ogni vista collegata
Un campo data inutilizzato o solo-pagina rifiuta in modo atomico la rimozione con selezione preservata; quando quel comportamento è quello voluto, usa la rimozione con azzeramento esplicito della selezione
I filtri importati si normalizzano solo dopo la validazione di ogni connessione, namespace ereditato e provenienza esatta dei filtri di proprietà; attributi o figli opachi sullo stesso campo, namespace estranei, binding esterni e grafi multi-UI non supportati conservano il loro XML e rifiutano la mutazione
La materializzazione nativa prepara in staging la selezione corrente della Timeline con metadati e celle del report, rimuovendo solo l'esatta firma salvata del filtro di proprietà; le restrizioni arbitrarie da callback non hanno rappresentazione XML nativa e non possono essere riprodotte dall'aggiornamento di Excel
Il salvataggio OOXML preserva i tipi di relazione nativi, i percorsi originali e le estensioni non correlate; il salvataggio Strict solo-cache viene rifiutato, la conversione ODS segnala la perdita della Timeline e il sottoinsieme XLSB valori-e-stili rifiuta le Timeline
Aggiornamento esplicito dello stato dati nativo dei Slicer
function TXLSXSlicerCache.RefreshItemDataStates: Integer; overload; function TXLSXSlicerCache.RefreshItemDataStates( AMaxEvaluationSteps: Integer; ACancelFlag: PBoolean = nil): Integer; overload;
L'operazione valuta e prepara in staging il vettore nativo completo senza dati, poi effettua il commit sotto la guardia di scrittura del workbook; il successo restituisce 1, il rifiuto restituisce -1 senza cambiare i flag serializzati degli elementi né le selezioni
Ignora la selezione propria di questo Slicer mentre interseca le selezioni degli altri Slicer e Timeline, i filtri manuali o di pagina, i filtri aggregati supportati e i predicati del chiamante; la disponibilità è l'unione sulle viste collegate supportate
I membri storici selezionati senza record idonei ricevono il flag nativo senza dati conservando la loro selezione; ID di cache stabili, ordine wire originale degli elementi e XML non correlato restano intatti
Il limite cumulativo predefinito di step è 1000000; zero significa step illimitati, un valore negativo viene rifiutato e FormulaArrayMemoryLimit limita cumulativamente lo staging dei metadati più tutte le anteprime delle viste collegate
Annullamento, eccezioni o rientranza delle callback, viste bloccate, binding non supportati, budget esauriti o stato di valutazione cambiato vengono rifiutati prima del commit dei flag; le modifiche indipendenti al modello comune fatte dalle callback del chiamante restano modifiche del chiamante e causano il rifiuto dell'aggiornamento
TXLSXSlicerCache.CrossFilter legge e scrive l'impostazione nativa tabellare del cross-filter sotto la guardia di mutazione; showItemsWithDataAtTop abilita l'ordinamento nativo con i dati per primi senza riscrivere l'ordine wire degli elementi
ItemHasData resta una query in sola lettura; il salvataggio non chiama il valutatore e non aggiorna implicitamente i flag senza dati, quindi chiama RefreshItemDataStates esplicitamente prima di salvare quando lo stato della UI nativa deve essere aggiornato
Semantica avanzata del filtro per date
TXLSPivotFilter.UseWholeDay richiede confronti per date di giorni interi per i filtri per data supportati; le selezioni preservate generate dalle Timeline lo usano, mentre i filtri per data ordinari conservano il loro precedente comportamento sensibile all'ora
Vedi output pivot nativo e disponibilità dei Slicer in sola lettura e ciclo di vita della cache locale e dei Slicer per i contratti di aggiornamento e proprietà circostanti