Documentación de HotXLS

Ciclo de vida de la caché de tabla dinámica local y diseño nativo

La versión 2.384.94 añade vistas de caché compartida, creación y eliminación explícita de Slicers Pivot locales que no son OLAP, reconstrucción de cachés agrupadas y un generador acotado de metadatos de diseño nativo

Vistas compartidas y creación de Slicers

SecondPivot := Sheet.AddPivotTable(FirstPivot.Cache, 20, 1, 'SecondView');
Cache := Workbook.CreatePivotSlicerCache(FirstPivot, 'Category');
if Cache.ConnectPivotTable(SecondPivot) <> 1 then
  raise Exception.Create('The second view could not be connected');
Slicer := Sheet.Slicers.Add(Cache, 1, 6, 8, 8);

TXLSXWorksheet.AddPivotTable(ACache: TXLSPivotCache; DestRow, DestCol: Integer; const Name: WideString): TXLSPivotTable crea otra vista de una caché propiedad de este libro; valida propiedad, geometría y nombres antes de adjuntar la vista

TXLSXWorkbook.CreatePivotSlicerCache(ATable: TXLSPivotTable; const AFieldName: WideString): TXLSXSlicerCache crea o reutiliza con seguridad una caché de campo de origen admitida, mientras que TXLSXSlicerCache.ConnectPivotTable(ATable: TXLSPivotTable): Integer conecta una vista local existente de caché compartida

TXLSXSlicers.Add(ACache: TXLSXSlicerCache; ARow1, ACol1, ARow2, ACol2: Integer): TXLSXSlicer crea la UI de la hoja usando límites de celda explícitos inclusivos de base uno; los nombres del origen, las partes de caché, las referencias de dibujo y la pertenencia a vistas se preparan antes de la mutación

Los orígenes de Slicer agrupados, calculados y OLAP, las cachés ajenas, los dominios importados incoherentes y las máscaras ambiguas e independientes del mismo campo se rechazan; el XML de vista importado admitido conserva las extensiones no relacionadas cuando se añade una UI nueva

Eliminación explícita y miembros futuros

if Workbook.RemoveSlicerCache(Cache, xlsxSlicerPreserveCurrentSelection) <> 1 then
  raise Exception.Create('The Slicer cache could not be removed');

TXLSXSlicerRemovalMode tiene xlsxSlicerClearSelection y xlsxSlicerPreserveCurrentSelection; TXLSXWorkbook.RemoveSlicerCache(ACache: TXLSXSlicerCache; AMode: TXLSXSlicerRemovalMode): Integer elimina juntas la UI vinculada, las referencias de dibujo, las partes nativas de caché y las conexiones

El modo clear elimina esta restricción del Slicer conservando los filtros independientes y los predicados del llamador; el modo preserve transfiere su restricción actual a máscaras ordinarias de miembros de tabla dinámica antes de eliminar el Slicer

La operación devuelve 1 si tiene éxito y -1 para vinculaciones no admitidas o inseguras; todas las vistas afectadas y el estado de la caché se validan y preparan antes de confirmar, y la ambigüedad de propiedad del mismo campo se rechaza sin suponer nada

TXLSPivotField.IncludeNewItemsInFilter: Boolean tiene por defecto False; un subconjunto manual retenido excluye los miembros recién añadidos salvo que esta política se active explícitamente, mientras que un campo sin restricciones los incluye

La selección preservada por tanto permanece estable tras el crecimiento del origen, mientras que el modo clear incluye los nuevos miembros del origen; las listas de miembros importadas y escritas serializan la misma política de ocultación de miembros futuros

Las operaciones existentes Delete y Clear de colecciones siguen protegiendo una última vista de Slicer vinculada; usa la operación explícita del libro cuando la caché y sus restricciones conectadas deban eliminarse juntas

Reconstrucción de cachés agrupadas fijas

La actualización prepara las identidades de grupos numéricos, de fechas y discretos explícitos a partir de enlaces base/padre validados, incluidos los campos derivados importados cuyas columnas de registro están ausentes; los campos del origen de solo enlace conservan sus valores originales en lugar de agruparse ellos mismos

Los dominios admitidos retienen los manejadores de miembros existentes, los rótulos y los ordinales de grupo; la agrupación numérica y de fechas usa una resolución por campo y un dominio nativo fijo de elementos de grupo, y la agrupación de fechas exige un intervalo de uno

TXLSPivotCacheField.GroupAutoStart y TXLSPivotCacheField.GroupAutoEnd tienen por defecto True y preservan la política de límites importada; los nuevos valores que exijan expansión del dominio o reagrupación se rechazan antes de la mutación

Los grupos discretos exigen una asignación existente para cada miembro del origen; los padres cíclicos, los dominios con tipo no válidos, los rótulos de cadena no únicos, las bases calculadas, los campos de propiedad de miembro y las resoluciones de padre no admitidas se rechazan transaccionalmente

El Make ordinario reconstruye los valores derivados de registro obsoletos o ausentes admitidos, mientras que MakePreview lo hace solo sobre una copia desacoplada; al guardar se omiten los elementos compartidos internos de marcador de los dominios nativos derivados y se emiten exactamente los índices de elementos de grupo declarados

Vista previa de metadatos de diseño nativo

function TryXLSXGeneratePivotLayout(const Xml: WideString;
  Table: TXLSPivotTable; out ResultXml, Reason: WideString): Boolean;

El helper lxPivotXml prepara rowItems, colItems, metadatos de ejes y ubicación para las vistas locales compactas admitidas no vacías usando identidades exactas de campos y miembros de caché; admite jerarquías ordinarias, subtotales por defecto arriba o abajo y cualquiera de los dos ejes de datos

Esta operación de solo metadatos exige un Cache.RefreshOnLoad=True explícito; preserva el XML desconocido y devuelve el XML original más un motivo en inglés cuando campos agrupados o calculados, subtotales personalizados, un diseño no admitido o identidades importadas incoherentes no pueden representarse

El helper no reescribe las celdas de la hoja ni cambia los indicadores de la tabla activa; los llamadores que necesiten salida de hoja en caché deben aportar un escritor adecuado y una operación de materialización admitida por separado

TXLSPivotTable.MakePreview(AWriter: TlxPivotResultWriter; ALayoutWriter: TlxPivotLayoutWriter): Integer aporta callbacks de diseño síncronos desde una vista previa desacoplada, conservando la identidad original de EvaluationSourceTable

TlxPivotLayoutWriter recibe la tabla original, el eje de fila/columna, los vectores copiados de índice de campo y de índice de elemento de caché, TlxPivotLayoutItemKind, el tipo de subtotal y la longitud del prefijo; xlplikData, xlplikSubtotal y xlplikGrand distinguen identidades agregadas sin analizar rótulos

Los vectores usan TlxPivotLayoutIndices y son válidos durante el callback; las excepciones se propagan, y el comportamiento existente de Make y del MakePreview de un solo escritor sigue disponible

TXLSPivotTables._AddOwned(ATable: TXLSPivotTable) reserva capacidad de la colección antes de la transferencia de propiedad y soporta la adjunción transaccional interna de vistas; las aplicaciones normalmente deben usar los métodos de creación de la hoja

Límites

La versión 2.384.95 añade la salida nativa de hoja en caché, la disponibilidad de filtro cruzado de solo lectura y la purga explícita de miembros históricos; la visualización nativa serializada sin datos, la creación de Timelines y una serialización de diseño agrupado más amplia conservan límites de aceptación separados