Documentación de HotXLS / Referencia de la API

Timelines de tablas dinámicas y estados de datos de Slicers

Disponible desde la versión 2.384.98 para las tablas dinámicas locales no OLAP admitidas a través de la fachada de libros XLSX

Crear y conectar un 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 reutiliza un caché validado de campos de fechas y sus identidades de paquete requeridas; una falla devuelve nil antes de confirmar el estado preparado

TXLSXWorkbook.TimelineCaches expone TXLSXTimelineCaches, con Count, Items[Index] basado en cero y FindByName sin distinguir mayúsculas; el libro es dueño de estos cachés

TXLSXTimelineCache.Name identifica el caché, SourceName identifica su campo de fuente y IsNonOlapPivot identifica el enlace validado admitido; los cachés importados no admitidos conservan su XML original

TXLSXTimelineCache.ConnectPivotTable(ATable: TXLSPivotTable): Integer conecta otra vista de propiedad del mismo PivotCache con un campo de fechas compatible; devuelve 1 en caso de éxito, incluida una conexión existente, o -1 en caso de rechazo

TXLSXTimelineCache.SetDateRange(AStartDate, AEndDate: TDateTime): Integer usa extremos inclusivos de días completos y devuelve 1 o -1; los extremos deben ser fechas enteras desde el 1 de enero de 1900 hasta el 31 de diciembre de 9999 en orden ascendente

El libro admitido usa el sistema de fechas 1900; la creación con Date1904 y los extremos de selección fraccionarios provocan rechazo, mientras que los valores de fuente de fechas pueden conservar hora del día y los registros a lo largo del día final seleccionado permanecen elegibles

TXLSXTimelineCache.SelectionActive, StartDate y EndDate exponen los límites activos; ClearSelection: Integer los limpia sin cambiar otros filtros y devuelve 1 o -1

Las selecciones se intersectan con otros Slicers, los filtros manuales o de página y los predicados del llamador; estas operaciones no actualizan los cachés de la fuente, no recalculan fórmulas ni reescriben las celdas existentes del reporte en la hoja

Vistas de Timelines y eliminación

TXLSXWorksheet.Timelines expone la colección TXLSXTimelines de propiedad de la hoja, con Add, FindByName, Items[Index] basado en cero, Count, Delete(Index) y Clear; la eliminación quita la UI conservando su caché y selección compartidos

TXLSXTimelines.Add(ACache: TXLSXTimelineCache; ARow1, ACol1, ARow2, ACol2: Integer): TXLSXTimeline acepta un caché admitido de su propiedad y un rectángulo ordenado de la hoja basado en uno, devolviendo una vista de su propiedad o nil

TXLSXTimeline.Name es de solo lectura, Cache identifica su caché compartido, y Caption cambia la etiqueta de visualización; Level acepta 0 para años, 1 para trimestres, 2 para meses o 3 para días

TXLSXTimeline.SetBounds cambia el rectángulo basado en uno expuesto por FromRow, FromCol, ToRow y ToCol; la geometría inválida, los enlaces no admitidos o una geometría de dibujo agrupada lanzan una excepción antes de la mutación

TXLSXDrawingObject.Timeline devuelve la vista asociada para el tipo de dibujo xlsxDrawingTimeline; las transformaciones directas de dibujo no admitidas permanecen protegidas

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

TXLSXWorkbook.RemoveTimelineCache(ACache: TXLSXTimelineCache; AMode: TXLSXSlicerRemovalMode): Integer prepara juntos los filtros conectados, la UI, los nombres y la limpieza del paquete, y devuelve 1 o -1

xlsxSlicerClearSelection elimina la selección; xlsxSlicerPreserveCurrentSelection retiene una selección activa como comparación de fechas de días completos únicamente cuando el campo de fechas ya está en un eje de fila o columna en cada vista conectada

Un campo de fechas sin usar o de solo página rechaza atómicamente la eliminación con preservación de selección; use la eliminación con limpieza explícita de selección cuando ese comportamiento sea el deseado

Los filtros importados se normalizan únicamente después de que cada conexión, espacio de nombres heredado y procedencia exacta de filtros de propiedad valide; los atributos o hijos opacos del mismo campo, los espacios de nombres ajenos, los enlaces externos y los grafos no admitidos de UI múltiple conservan su XML y provocan rechazo de mutación

La materialización nativa prepara la selección actual del Timeline junto con los metadatos y celdas del reporte, eliminando únicamente la firma exacta del filtro de propiedad guardado; las restricciones arbitrarias de devoluciones de llamada no tienen representación XML nativa y no pueden reproducirse con la actualización de Excel

El guardado OOXML conserva los tipos de relaciones nativas, las rutas originales y las extensiones no relacionadas; el guardado de caché exclusivo Strict provoca rechazo, la conversión ODS reporta la pérdida del Timeline y el subconjunto de valores y estilos XLSB rechaza los Timelines

Actualización explícita del estado de datos nativo de Slicers

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

La operación evalúa y prepara el vector nativo completo de ausencia de datos, y luego confirma bajo un guardián de escritura del libro; el éxito devuelve 1, el rechazo devuelve -1 sin cambiar los indicadores serializados de elementos ni las selecciones

Ignora la propia selección de este Slicer mientras intersecta las selecciones de otros Slicers y Timelines, los filtros manuales o de página, los filtros agregados admitidos y los predicados del llamador; la disponibilidad es la unión a través de las vistas conectadas admitidas

Los miembros históricos seleccionados sin registros elegibles reciben el indicador nativo de ausencia de datos conservando su selección; los IDs estables del caché, el orden original de elementos en el formato y el XML no relacionado permanecen intactos

El límite acumulativo predeterminado de pasos es 1000000; cero significa pasos sin límite, un valor negativo provoca rechazo y FormulaArrayMemoryLimit acota de forma acumulativa la preparación de metadatos más todas las vistas previas de vistas conectadas

La cancelación, las excepciones o la reentrada de devoluciones de llamada, las vistas congeladas, los enlaces no admitidos, los presupuestos agotados o un estado de evaluación cambiado provocan rechazo antes de confirmar los indicadores; los cambios independientes del modelo común hechos por devoluciones de llamada del llamador siguen siendo cambios del llamador y provocan el rechazo de la actualización

TXLSXSlicerCache.CrossFilter lee y escribe la configuración nativa tabular de filtro cruzado bajo el guardián de mutación; showItemsWithDataAtTop habilita el ordenamiento nativo con datos primero sin reescribir el orden de elementos en el formato

ItemHasData sigue siendo una consulta de solo lectura; el guardado no llama al evaluador ni actualiza implícitamente los indicadores de ausencia de datos, así que llame a RefreshItemDataStates explícitamente antes de guardar cuando el estado nativo de la UI deba actualizarse

Semántica avanzada de filtros de fechas

TXLSPivotFilter.UseWholeDay solicita comparaciones de fechas de días completos para los filtros de fechas admitidos; las selecciones preservadas generadas por Timelines lo usan, mientras que los filtros de fechas ordinarios conservan su comportamiento anterior sensible a la hora

Consulte la salida nativa de tablas dinámicas y la disponibilidad de Slicers de solo lectura y el ciclo de vida del caché local y de Slicers para conocer los contratos circundantes de actualización y propiedad