Documentação HotXLS

Campos de Pivot calculados nativos e itens de propriedade do cache

Calcular a partir de somas de contexto

Para um campo de cache calculado local, a preview nativa primeiro soma cada campo de banco de dados referenciado no contexto de folha, subtotal ou total geral solicitado e depois avalia a fórmula; dependências podem permanecer ausentes dos campos de dados exibidos

Por exemplo, dois registros com valores Amount/Units de 10/1 e 30/9 produzem um resultado de campo calculado nativo de 40/10 = 4, e um total geral avalia as somas de dependência dele em vez de somar as proporções exibidas

Itens calculados avaliam referências de membro em cada contexto de folha completo, incluindo os outros eixos de linha e coluna; subtotais e totais gerais incluem as contribuições de membros resultantes, de modo que um item de proporção pode contribuir com uma soma das proporções de folha dele

Um membro oculto manualmente permanece disponível quando outro item calculado o referencia, enquanto a contribuição própria dele fica fora dos totais exibidos; para A=40 e B=60, ocultar A ainda dá a Combined=A+B o valor 100 e inclui Combined no total geral visível

Quando campos e itens calculados coexistem, as contribuições de itens primeiro atualizam as somas de campos de banco de dados referenciados, depois o campo calculado avalia essas somas de contexto atualizadas

Itens calculados podem pertencer a vários campos não agrupados; a ordem de definição de cache retida determina qual fórmula de campo grava uma interseção por último, de modo que mover uma definição pode mudar tanto essa interseção quanto os totais exibidos

Uma dependência de membro calculado não resolvida avalia quando é referenciada, incluindo uma dependência definida mais tarde nessa ordem; um membro já calculado em uma etapa anterior retém o valor de interseção atual dele quando outra fórmula o referencia

Somas de campos nativos ignoram valores de fonte Boolean e de texto, retêm valores numéricos e de data e propagam erros tipados de fonte; IF e IFERROR lazy podem tratar um erro sem avaliar um ramo não usado

Propriedade do cache e vinculação

Declaração públicaContrato
TXLSPivotCacheCalculatedItemUma definição nativa de membro calculado de propriedade do cache; obtenha-a por meio do cache proprietário e mantenha o cache vivo enquanto usa o objeto emprestado
TXLSPivotCacheCalculatedItem.FieldIndex: IntegerIdentidade de campo de cache com base zero, somente leitura
TXLSPivotCacheCalculatedItem.ItemIndex: IntegerIdentidade de membro compartilhado com base zero dentro de FieldIndex, somente leitura
TXLSPivotCacheCalculatedItem.Formula: WideStringFórmula nativa de membro de leitura e gravação; defini-la altera o modelo, enquanto a preview ou a vinculação explícita valida a sintaxe e os ciclos de dependência antes de calcular
TXLSPivotCacheCalculatedItem.Supported: BooleanDisponibilidade somente leitura da identidade de área analisada, e não uma garantia de que toda combinação de fórmula ou view possa ser avaliada
TXLSPivotCacheCalculatedItem.RawXml: WideStringXML preservado somente leitura para uma definição de item calculado sem suporte; definições tipadas conhecidas usam uma string vazia
TXLSPivotCache.AddCalculatedItem(AFieldIndex, AItemIndex: Integer; const AFormula: WideString): TXLSPivotCacheCalculatedItemCria uma definição tipada com suporte para um membro existente, rejeitando identidades inválidas, fórmula vazia ou identidade de destino duplicada; o objeto retornado pertence ao cache
TXLSPivotCache.FindCalculatedItem(AFieldIndex, AItemIndex: Integer): TXLSPivotCacheCalculatedItemRetorna a definição correspondente emprestada ou nil
TXLSPivotCache.CalculatedItemCount: IntegerNúmero somente leitura de definições retidas com ou sem suporte
TXLSPivotCache.CalculatedItems[Index: Integer]: TXLSPivotCacheCalculatedItemAcesso emprestado somente leitura com base zero à lista de definições
TXLSPivotCache.ClearCalculatedItemsLibera as definições próprias e invalida os handles emprestados; não remove membros compartilhados nem estabelece completude de consulta do cache
TXLSPivotCache.MoveCalculatedItem(AIndex, ANewIndex: Integer)Move uma definição existente entre posições com base zero na ordem de solução nativa, preservando a identidade de objeto emprestada dela; posições inválidas disparam EArgumentOutOfRangeException sem mover definições
TXLSPivotCache._AddUnsupportedCalculatedItem(const ARawXml: WideString)Hook de preservação orientado ao parser que retém XML desconhecido e marca o modelo de consulta do cache como incompleto
TXLSPivotCache.Assign(Source: TXLSPivotCache)Copia em profundidade definições, campos, membros compartilhados, índices de registro e contexto de sistema de data; os handles de fonte permanecem independentes, e atribuir o mesmo cache a si mesmo é seguro
TXLSPivotTable.BindCalculatedItemsToCacheValida e vincula itens calculados criados na view em um cache desanexado, depois anexa os novos membros compartilhados e definições ao cache vivo; falhas deixam identidades de membros e definições inalteradas, enquanto handles existentes de campo e membro permanecem válidos

Um item criado na view com TXLSPivotField.AddCalculatedItem precisa de BindCalculatedItemsToCache explícito antes da materialização nativa ou da reconstrução nativa tipada; importar uma definição de cache nativa com suporte já fornece essa propriedade

A vinculação do cache afeta toda view que compartilha esse cache, então chame-a como uma operação de criação e retenha os handles emprestados apenas até a lista correspondente ser limpa, atribuída ou destruída

Filtros de membros e transformações de exibição

Comparações de legenda e de valor em um campo de item calculado selecionam os membros exibidos depois que as fórmulas de membro rodam; membros de fonte filtrados permanecem disponíveis para as fórmulas referenciadas, e subtotais e totais gerais visíveis excluem as contribuições diretas desses membros

Uma comparação de valor pode selecionar uma medida calculada; cada membro candidato avalia essa medida a partir das somas de dependência de contexto dele, em vez de somar proporções de registros de fonte ou tratar a fórmula como uma coluna de registro de cache

Resultados de itens calculados também aceitam as transformações ShowDataAs modeladas, incluindo porcentagens, índice, diferenças, totais acumulados, porcentagens de totais acumulados e classificações; membros ocultos ficam fora das sequências visíveis de acumulado e classificação, enquanto as referências de fórmula retêm seus valores originais

Declaração públicaContrato
TXLSPivotFilter.DataFieldIsMeasureIndex: BooleanSeleciona o domínio de identidade de DataField; False retém a identidade existente de campo de cache com base zero, enquanto True identifica uma posição de medida de dados exibida com base zero e é definido quando o iMeasureFld nativo é importado
TXLSPivotFilter.SourceOrder: IntegerOrdem global com base zero de leitura e gravação retida do elemento filters nativo, com -1 como padrão quando ausente; o cálculo local e a gravação tipada usam primeiro EvalOrder não negativo, depois SourceOrder, depois a ordem estável de campo/lista

A gravação nativa tipada converte uma identidade de campo de cache na posição de medida exibida dela; um campo de cache usado por várias medidas de dados precisa de uma posição de medida explícita, porque sua agregação e identidade de exibição seriam ambíguas de outra forma

O Excel pode salvar filtros ativos com evalOrder=-1 preservando a ordem de avaliação deles por meio da sequência do elemento filters; importar, clonar e a reconstrução tipada retêm essa sequência em vez de tratar esses filtros como inativos

Alterar uma definição de filtro ou a posição de fonte retida dela em uma view nativa importada e preservada exige reconstrução tipada; a adoção nativa comum valida a identidade de filtro preservada e rejeita edições sem suporte antes de gravar as células do relatório

Preview, consultas e sistemas de data

function TXLSPivotTable.MakePreview(AWriter: TlxPivotResultWriter;
  ALayoutWriter: TlxPivotLayoutWriter;
  AUseNativeGrandTotals: Boolean = False;
  ABudget: TlxPivotQueryBudget = nil;
  ADateSystem: TXLSPivotDateSystem = xlpdsCache): Integer;

function TXLSPivotTable.GetDataValue(const ADataField: WideString;
  const AConstraints: TXLSPivotDataConstraints;
  ABudget: TlxPivotQueryBudget; out AValue: Variant;
  ADateSystem: TXLSPivotDateSystem = xlpdsCache): Boolean;

MakePreview com AUseNativeGrandTotals=True usa uma tabela e um cache desanexados, incluindo somas nativas exatas e identidades de itens calculados; o Make comum e o MakePreview padrão retêm seu comportamento existente de cálculo baseado em registros

GetDataValue usa somas de contexto nativas quando o cache tem campos ou itens calculados, e GETPIVOTDATA compartilha esse caminho de consulta; nenhuma das operações atualiza dados de fonte, recalcula fórmulas de planilha inspecionadas ou grava células de relatório

Declaração públicaContrato
TXLSPivotCache.Date1904: BooleanContexto de sistema de data de fonte de leitura e gravação para cálculos nativos autônomos; tem False como padrão e é vinculado durante a importação Classic e XLSX e a criação de cache de planilha, e durante a cópia de cache XLSX
TXLSPivotDateSystemSeleção tipada de sistema de data para previews e consultas nativas desanexadas
xlpdsCacheUsa o contexto Date1904 retido do cache sem alterá-lo
xlpds1900Projeta o sistema de data 1900 no cálculo desanexado
xlpds1904Projeta o sistema de data 1904 no cálculo desanexado
TryXLSXMakeNativePivotLayout(...; ADateSystem: TXLSPivotDateSystem = xlpdsCache): BooleanO helper nativo de layout de nível mais baixo aceita a mesma seleção de sistema de data desanexada depois dos parâmetros de saída ResultXml e Reason dele
TXLSGetDate1904 = function: Boolean of objectCallback de metadados da calculadora que lê o sistema de data atual da pasta de trabalho proprietária
TXLSCalculator.OnGetDate1904: TXLSGetDate1904Callback emprestado opcional usado por GETPIVOTDATA; nil usa o contexto do cache, enquanto os avaliadores da pasta de trabalho e as views somente leitura deles fornecem a configuração atual da pasta de trabalho

Chamadores autônomos devem fornecer o contexto Date1904 correto do cache ou uma seleção explícita de sistema de data; a materialização nativa de propriedade da pasta de trabalho e as consultas de fórmula projetam a configuração atual da pasta de trabalho sem modificar o cache vivo

Valores de fonte de data permanecem valores TDateTime absolutos no cache, enquanto fórmulas numéricas nativas usam seriais de data do Excel; o sistema 1904 subtrai 1462 dias por valor de data, e a conversão 1900 trata as datas representáveis antes de março de 1900

A propriedade da saída nativa salva registra o contexto de sistema de data dela e compara valores de data estilizados com o payload numérico serializado deles; salvar, reabrir ou alterar a base de data da pasta de trabalho preserva a propriedade legítima, enquanto payloads de data, Boolean, erro e texto alterados ainda rejeitam a sobregravação

Orçamentos e entrada sem suporte

O callback opcional TlxPivotQueryBudget recebe incrementos de trabalho e uma estimativa de memória atual, incluindo o snapshot desanexado proposto e o armazenamento de fórmula; False aborta com EXLSPivotQueryBudget e exceções de callback propagam

Larguras de registro e identidades de membros de banco de dados são verificadas antes da clonagem; compilação e avaliação de fórmula cobram trabalho, e o cálculo retém profundidade de sintaxe limitada, texto de fórmula, domínios de membros calculados e armazenamento de acumulador

O planejamento de itens calculados limita os domínios de membros combinados, o armazenamento de legendas e os planos de campo antes da alocação; a avaliação nativa de membros e as varreduras tardias de filtro de agregação também rejeitam trabalho proposto acima dos limites fixos delas antes de entrar nessas varreduras, e o cancelamento de orçamento deixa as máscaras de membros vivas inalteradas

O parser de fórmula aceita constantes numéricas, nomes de campo, nomes entre aspas, nomes de membros qualificados por campo, aritmética e comparações, porcentagem e ABS, SQRT, POWER, ROUND, MIN, MAX, SUM, IF, IFERROR, AND, OR e PI; funções desconhecidas, referências de célula, arrays e nomes não vinculados são rejeitados em vez de fornecer valores supostos

Campos calculados nativos exigem medidas de dados SUM e não podem ser eixos de linha, coluna ou página; itens calculados exigem legendas de string retidas em campos de cache não agrupados, subtotais automáticos ou SUM, medidas SUM e a identidade de área de membro único com suporte

Funções de fórmula desconhecidas, fieldPosition de área diferente de zero, metadados de área desconhecidos ou malformados, identidades ambíguas de medida de filtro e transformações de exibição básicas e estendidas mutuamente ativas são rejeitados explicitamente; essas restrições não transformam uma definição sem suporte em um item comum

A filtragem tardia de agregação de membros calculados aceita comparações de valor modeladas; as variantes legadas de filtro de contagem, porcentagem e soma e os metadados Top n não modelados exigem um modelo nativo de seleção com suporte e são rejeitados em vez de substituir comparações de registros de fonte

Partes brutas importadas retêm metadados futuros sem suporte para a preservação comum de roundtrip; cálculo local, reconstrução tipada e extração semântica de recursos exigem um modelo disponível e não atualizam dados de fonte para fabricar registros de cache ausentes

Definições semânticas de cache de Pivot incluem identidade e fórmula de item calculado, contexto de sistema de data e payloads desanexados limitados; extensões nativas indisponíveis continuam sendo um erro semântico explícito