Documentação HotXLS

Ciclo de vida da cache local de tabelas dinâmicas e layout nativo

A versão 2.384.94 adiciona vistas de cache partilhada, criação e remoção explícita de Slicers de tabelas dinâmicas não OLAP locais, reconstrução de caches agrupadas e um gerador de metadados de layout nativo com limites

Vistas partilhadas e criação 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);

O TXLSXWorksheet.AddPivotTable(ACache: TXLSPivotCache; DestRow, DestCol: Integer; const Name: WideString): TXLSPivotTable cria outra vista de uma cache detida por este livro; valida detenção, geometria e nomes antes de anexar a vista

O TXLSXWorkbook.CreatePivotSlicerCache(ATable: TXLSPivotTable; const AFieldName: WideString): TXLSXSlicerCache cria ou reutiliza em segurança uma cache de campo de origem suportada, enquanto o TXLSXSlicerCache.ConnectPivotTable(ATable: TXLSPivotTable): Integer liga uma vista local existente de cache partilhada

O TXLSXSlicers.Add(ACache: TXLSXSlicerCache; ARow1, ACol1, ARow2, ACol2: Integer): TXLSXSlicer cria a UI da folha de cálculo com limites de células inclusivos explícitos de base um; nomes de origem, partes da cache, referências de desenho e pertença à vista são preparados antes da mutação

Origens de Slicers agrupadas, calculadas e OLAP, caches alheias, domínios importados inconsistentes e máscaras ambíguas independentes do mesmo campo provocam rejeição; o XML de vistas importado suportado mantém as extensões não relacionadas quando uma nova UI é acrescentada

Remoção explícita e membros futuros

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

O TXLSXSlicerRemovalMode tem xlsxSlicerClearSelection e xlsxSlicerPreserveCurrentSelection; o TXLSXWorkbook.RemoveSlicerCache(ACache: TXLSXSlicerCache; AMode: TXLSXSlicerRemovalMode): Integer remove em conjunto a UI vinculada, as referências de desenho, as partes nativas da cache e as ligações

O modo de limpeza remove esta restrição do Slicer mantendo filtros independentes e predicados do chamador; o modo de preservação transfere a restrição atual para máscaras comuns de membros da tabela dinâmica antes de remover o Slicer

A operação devolve 1 em caso de sucesso e -1 para bindings não suportados ou inseguros; todas as vistas afetadas e o estado da cache são validados e preparados antes do commit, e a ambiguidade de detenção do mesmo campo provoca rejeição sem adivinhar

O TXLSPivotField.IncludeNewItemsInFilter: Boolean assume False por predefinição; um subconjunto manual retido exclui membros recém-acrescentados, a menos que esta política seja explicitamente ativada, enquanto um campo sem restrições os inclui

A seleção preservada mantém-se por isso estável após o crescimento da origem, enquanto o modo de limpeza inclui novos membros da origem; as listas de membros importadas e escritas serializam a mesma política de ocultação de membros futuros

As operações existentes Delete e Clear das coleções continuam a proteger uma última vista de Slicer vinculada; use a operação explícita do livro quando a cache e as respetivas restrições ligadas tiverem de ser removidas em conjunto

Reconstrução fixa de caches agrupadas

A atualização prepara identidades de grupos numéricos, de datas e discretos explícitos a partir de ligações base/pai validadas, incluindo campos derivados importados cujas colunas de registos estão ausentes; os campos de origem só de ligação mantêm os valores originais em vez de serem eles próprios agrupados

Os domínios suportados retêm handles de membros, legendas e ordinais de grupos existentes; o agrupamento numérico e de datas usa uma resolução por campo e um domínio nativo fixo de itens de grupo, e o agrupamento de datas exige intervalo um

TXLSPivotCacheField.GroupAutoStart e TXLSPivotCacheField.GroupAutoEnd assumem True por predefinição e preservam a política de limites importada; novos valores que exijam expansão de domínio ou reagrupamento provocam rejeição antes da mutação

Os grupos discretos exigem um mapeamento existente para cada membro da origem; pais cíclicos, domínios com tipo inválidos, legendas de cadeia não únicas, bases calculadas, campos de propriedades de membros e resoluções de pais não suportadas provocam rejeição transacional

O Make comum reconstrói valores derivados de registos obsoletos ou em falta suportados, enquanto o MakePreview o faz apenas numa cópia destacada; a gravação omite itens partilhados internos de marcação dos domínios nativos derivados e emite exatamente os índices declarados de itens de grupo

Pré-visualização de metadados de layout nativo

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

O auxiliar lxPivotXml prepara rowItems, colItems, metadados de eixos e localização para vistas locais compactas não vazias suportadas, usando identidades exatas de campos e membros da cache; suporta hierarquias comuns, subtotais predefinidos no topo ou no fundo e qualquer um dos eixos de dados

Esta operação apenas de metadados exige Cache.RefreshOnLoad=True explícito; preserva o XML desconhecido e devolve o XML original mais um motivo em inglês quando campos agrupados ou calculados, subtotais personalizados, layout não suportado ou identidades importadas inconsistentes não podem ser representados

O auxiliar não reescreve células da folha de cálculo nem muda flags da tabela viva; os chamadores que precisarem de saída em cache na folha de cálculo têm de fornecer um escritor adequado e uma operação de materialização separadamente suportada

O TXLSPivotTable.MakePreview(AWriter: TlxPivotResultWriter; ALayoutWriter: TlxPivotLayoutWriter): Integer fornece callbacks síncronos de layout a partir de uma pré-visualização destacada, retendo a identidade original de EvaluationSourceTable

O TlxPivotLayoutWriter recebe a tabela original, o eixo de linha/coluna, vetores copiados de índices de campos e de itens da cache, TlxPivotLayoutItemKind, tipo de subtotal e comprimento do prefixo; xlplikData, xlplikSubtotal e xlplikGrand distinguem identidades agregadas sem analisar legendas

Os vetores usam TlxPivotLayoutIndices e são válidos durante o callback; as exceções propagam-se, e o comportamento existente do Make e do MakePreview de escritor único continua disponível

O TXLSPivotTables._AddOwned(ATable: TXLSPivotTable) reserva capacidade da coleção antes da transferência de detenção e suporta anexação transacional interna de vistas; as aplicações devem usar normalmente os métodos de autoria da folha de cálculo

Limites

A versão 2.384.95 adiciona saída nativa em cache na folha de cálculo, disponibilidade de filtragem cruzada só de leitura e purga explícita de membros históricos; a apresentação nativa serializada sem dados, a autoria de Timelines e uma serialização de layout agrupado mais ampla mantêm limites de aceitação separados