Documentazione HotXLS / Riferimento API

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