Timelines de Pivot e estados de dados de Slicer
Disponível desde a versão 2.384.98 para tabelas dinâmicas locais não OLAP com suporte por meio da fachada de pasta de trabalho XLSX
Criar e conectar uma 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 cria ou reutiliza um cache de campo de data validado e as identidades de pacote exigidas dele; a falha retorna nil antes de confirmar o estado preparado
TXLSXWorkbook.TimelineCaches expõe TXLSXTimelineCaches, com Count, Items[Index] com base zero e FindByName sem diferenciar maiúsculas; a pasta de trabalho é dona desses caches
TXLSXTimelineCache.Name identifica o cache, SourceName identifica o campo de fonte dele e IsNonOlapPivot identifica a vinculação validada com suporte; caches importados sem suporte retêm o XML original deles
TXLSXTimelineCache.ConnectPivotTable(ATable: TXLSPivotTable): Integer conecta outra view de propriedade do mesmo PivotCache com um campo de data compatível; retorna 1 para sucesso, incluindo uma conexão existente, ou -1 para rejeição
TXLSXTimelineCache.SetDateRange(AStartDate, AEndDate: TDateTime): Integer usa endpoints de dia inteiro inclusivos e retorna 1 ou -1; os endpoints devem ser datas inteiras de 1 de janeiro de 1900 a 31 de dezembro de 9999, em ordem crescente
A pasta de trabalho com suporte usa o sistema de data 1900; criação Date1904 e endpoints fracionários de seleção são rejeitados, enquanto valores de fonte de data podem reter a hora do dia e os registros ao longo do dia final selecionado continuam elegíveis
TXLSXTimelineCache.SelectionActive, StartDate e EndDate expõem os limites ativos; ClearSelection: Integer os limpa sem alterar outros filtros e retorna 1 ou -1
As seleções se cruzam com outros Slicers, filtros manuais ou de página e predicados do chamador; estas operações não atualizam caches de fonte, não recalculam fórmulas e não reescrevem células de relatório existentes da planilha
Views de Timeline e remoção
TXLSXWorksheet.Timelines expõe a coleção TXLSXTimelines de propriedade da planilha, com Add, FindByName, Items[Index] com base zero, Count, Delete(Index) e Clear; a exclusão remove a UI mantendo o cache e a seleção compartilhados dela
TXLSXTimelines.Add(ACache: TXLSXTimelineCache; ARow1, ACol1, ARow2, ACol2: Integer): TXLSXTimeline aceita um cache com suporte próprio e um retângulo de planilha ordenado com base um, retornando uma view própria ou nil
TXLSXTimeline.Name é somente leitura, Cache identifica o cache compartilhado dele, e Caption muda o rótulo de exibição; Level aceita 0 para anos, 1 para trimestres, 2 para meses ou 3 para dias
TXLSXTimeline.SetBounds altera o retângulo com base um exposto por FromRow, FromCol, ToRow e ToCol; geometria inválida, vinculações sem suporte ou geometria de desenho agrupada disparam exceção antes da mutação
TXLSXDrawingObject.Timeline retorna a view associada para o tipo de desenho xlsxDrawingTimeline; transformações diretas de desenho sem suporte permanecem com guarda
Status := Workbook.RemoveTimelineCache(TimelineCache, xlsxSlicerPreserveCurrentSelection);
TXLSXWorkbook.RemoveTimelineCache(ACache: TXLSXTimelineCache; AMode: TXLSXSlicerRemovalMode): Integer prepara filtros conectados, UI, nomes e limpeza de pacote juntos e retorna 1 ou -1
xlsxSlicerClearSelection remove a seleção; xlsxSlicerPreserveCurrentSelection retém uma seleção ativa como uma comparação de data de dia inteiro apenas quando o campo de data já está em um eixo de linha ou coluna em toda view conectada
Um campo de data não usado ou apenas de página rejeita atomicamente a remoção com preservação de seleção; use a remoção explícita com limpeza de seleção quando esse comportamento for o pretendido
Filtros importados só se normalizam depois que toda conexão, namespace herdado e procedência exata de filtro próprio valida; atributos ou filhos opacos do mesmo campo, namespaces estrangeiros, vinculações externas e grafos de múltipla UI sem suporte retêm o XML deles e rejeitam mutação
A materialização nativa prepara a seleção atual de Timeline com metadados e células do relatório, removendo apenas a assinatura exata do filtro próprio salvo; restrições arbitrárias de callback não têm representação XML nativa e não podem ser reproduzidas pela atualização do Excel
O salvamento OOXML preserva tipos de relação nativos, caminhos originais e extensões sem relação; o salvamento Strict somente de cache é rejeitado, a conversão ODS relata perda de Timeline e o subconjunto XLSB de valores e estilos rejeita Timelines
Atualização explícita de estado de dados de Slicer nativo
function TXLSXSlicerCache.RefreshItemDataStates: Integer; overload; function TXLSXSlicerCache.RefreshItemDataStates( AMaxEvaluationSteps: Integer; ACancelFlag: PBoolean = nil): Integer; overload;
A operação avalia e prepara o vetor nativo completo de sem dados, depois confirma sob uma guarda de gravação da pasta de trabalho; o sucesso retorna 1, e a rejeição retorna -1 sem alterar sinalizadores serializados de itens nem seleções
Ela ignora a própria seleção deste Slicer enquanto cruza outras seleções de Slicer e de Timeline, filtros manuais ou de página, filtros de agregação com suporte e predicados do chamador; a disponibilidade é a união pelas views conectadas com suporte
Membros históricos selecionados sem registros elegíveis recebem o sinalizador nativo de sem dados mantendo a seleção deles; IDs estáveis de cache, a ordem de rede original de itens e o XML sem relação permanecem intactos
O limite cumulativo padrão de etapas é 1000000; zero significa etapas ilimitadas, um valor negativo é rejeitado, e FormulaArrayMemoryLimit limita cumulativamente a preparação de metadados mais todas as previews de views conectadas
Cancelamento, exceções ou reentrada de callback, views congeladas, vinculações sem suporte, orçamentos esgotados ou estado de avaliação alterado são rejeitados antes de confirmar sinalizadores; mudanças independentes de modelo comum feitas por callbacks do chamador permanecem sendo mudanças do chamador e causam rejeição da atualização
TXLSXSlicerCache.CrossFilter lê e grava a configuração nativa tabular de filtro cruzado sob a guarda de mutação; showItemsWithDataAtTop habilita a ordenação nativa de dados primeiro sem reescrever a ordem de rede de itens
ItemHasData continua sendo uma consulta somente leitura; salvar não chama o avaliador nem atualiza sinalizadores de sem dados implicitamente, então chame RefreshItemDataStates explicitamente antes de salvar quando o estado nativo de UI precisar ser atualizado
Semântica avançada de filtro de data
TXLSPivotFilter.UseWholeDay solicita comparações de data de dia inteiro para filtros de data com suporte; seleções preservadas geradas por Timeline o usam, enquanto filtros de data comuns retêm o comportamento anterior sensível a hora
Consulte a saída de Pivot nativa e a disponibilidade somente leitura de Slicer e o ciclo de vida de cache local e de Slicer para os contratos de atualização e de propriedade ao redor