HotXLS Docs

Ciclo de vida del caché local de tablas dinámicas y diseño nativo

La versión 2.384.94 agrega vistas de caché compartido, creación y eliminación explícita de Slicers locales de tablas dinámicas no OLAP, reconstrucción de cachés agrupados 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 un caché de propiedad de este libro; valida la propiedad, la geometría y los nombres antes de adjuntar la vista

TXLSXWorkbook.CreatePivotSlicerCache(ATable: TXLSPivotTable; const AFieldName: WideString): TXLSXSlicerCache crea o reutiliza de forma segura un caché de campo de fuente admitido, mientras que TXLSXSlicerCache.ConnectPivotTable(ATable: TXLSPivotTable): Integer conecta una vista local existente de caché compartido

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

Las fuentes de Slicers agrupadas, calculadas y OLAP, los cachés ajenos, los dominios importados inconsistentes y las máscaras ambiguas independientes del mismo campo provocan rechazo; el XML de vistas importadas admitido conserva las extensiones no relacionadas cuando se agrega 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 enlazada, las referencias de dibujo, las partes nativas del caché y las conexiones

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

La operación devuelve 1 en caso de éxito y -1 para enlaces no admitidos o inseguros; todas las vistas afectadas y el estado del caché se validan y preparan antes de la confirmación, y la ambigüedad de propiedad del mismo campo provoca rechazo sin suposiciones

TXLSPivotField.IncludeNewItemsInFilter: Boolean tiene False como valor predeterminado; un subconjunto manual retenido excluye los miembros recién agregados a menos que esta política se habilite explícitamente, mientras que un campo sin restricciones los incluye

La selección preservada por lo tanto permanece estable tras el crecimiento de la fuente, mientras que el modo de limpieza incluye los nuevos miembros de la fuente; las listas de miembros importadas y escritas por el autor serializan la misma política de ocultamiento de miembros futuros

Las operaciones existentes Delete y Clear de colecciones siguen protegiendo una vista final de Slicer enlazada; use la operación explícita del libro cuando el caché y sus restricciones conectadas deban eliminarse juntos

Reconstrucción de cachés agrupados fijos

La actualización prepara 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 registros están ausentes; los campos de fuente de solo enlace conservan sus valores originales en lugar de agruparse ellos mismos

Los dominios admitidos conservan los manejadores existentes de miembros, las leyendas 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 True como valor predeterminado y preservan la política de límites importada; los nuevos valores que exijan expansión del dominio o reagrupación provocan rechazo antes de la mutación

Los grupos discretos exigen una asignación existente para cada miembro de la fuente; los padres cíclicos, los dominios con tipo inválidos, las leyendas de cadena no únicas, las bases calculadas, los campos de propiedades de miembros y las resoluciones de padres no admitidas provocan rechazo transaccional

El Make ordinario reconstruye los valores derivados de registros obsoletos o faltantes admitidos, mientras que MakePreview lo hace únicamente sobre una copia desacoplada; el guardado omite los elementos compartidos internos de marcador de posición de los dominios nativos derivados y emite exactamente los índices declarados de elementos de grupo

Vista previa de metadatos de diseño nativo

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

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

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

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

TXLSPivotTable.MakePreview(AWriter: TlxPivotResultWriter; ALayoutWriter: TlxPivotLayoutWriter): Integer aporta devoluciones de llamada de diseño síncronas 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 índices de campos y de índices de elementos del caché, TlxPivotLayoutItemKind, el tipo de subtotal y la longitud del prefijo; xlplikData, xlplikSubtotal y xlplikGrand distinguen identidades agregadas sin analizar leyendas

Los vectores usan TlxPivotLayoutIndices y son válidos durante la devolución de llamada; las excepciones se propagan, y el comportamiento existente de Make y del MakePreview de un solo escritor permanece disponible

TXLSPivotTables._AddOwned(ATable: TXLSPivotTable) reserva capacidad de la colección antes de la transferencia de propiedad y soporta la conexión transaccional interna de vistas; las aplicaciones normalmente deberían usar los métodos de creación de la hoja de cálculo

Límites

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