Documentazione HotXLS

Campi pivot calcolati nativi ed elementi di proprietà della cache

Calcolare dalle somme di contesto

Per un campo calcolato locale della cache, l'anteprima nativa somma prima ogni campo del database referenziato nel contesto richiesto di foglio, subtotale o totale complessivo, e poi valuta la formula; le dipendenze possono restare assenti dai campi dati mostrati

Per esempio, due record con valori Amount/Units di 10/1 e 30/9 producono un risultato di campo calcolato nativo pari a 40/10 = 4, e un totale complessivo valuta le proprie somme di dipendenze invece di sommare i rapporti mostrati

Gli elementi calcolati valutano i riferimenti ai membri in ogni contesto di foglio completo, inclusi gli altri assi di riga e colonna; subtotali e totali complessivi includono i contributi risultanti dei membri, quindi un elemento di rapporto può contribuire con una somma dei propri rapporti di foglio

Un membro nascosto manualmente resta disponibile quando un altro elemento calcolato lo referenzia, mentre il suo contributo proprio resta fuori dai totali mostrati; con A=40 e B=60, nascondere A dà comunque a Combined=A+B il valore 100 e include Combined nel totale complessivo visibile

Quando campi ed elementi calcolati coesistono, i contributi degli elementi aggiornano prima le somme dei campi del database referenziati, poi il campo calcolato valuta quelle somme di contesto aggiornate

Gli elementi calcolati possono appartenere a più campi non raggruppati; l'ordine delle definizioni conservato nella cache determina quale formula di campo scrive per ultima un'intersezione, quindi spostare una definizione può cambiare sia quell'intersezione sia i totali mostrati

Una dipendenza di membro calcolato non risolta viene valutata quando viene referenziata, inclusa una dipendenza definita più avanti in quell'ordine; un membro già calcolato in un passo precedente conserva il valore corrente della propria intersezione quando un'altra formula lo referenzia

Le somme native dei campi ignorano i valori sorgente Boolean e testuali, conservano i valori numerici e di data e propagano gli errori tipizzati della sorgente; IF e IFERROR lazy possono gestire un errore senza valutare un ramo inutilizzato

Proprietà della cache e binding

Dichiarazione pubblicaContratto
TXLSPivotCacheCalculatedItemUna definizione nativa di membro calcolato di proprietà della cache; ottienila tramite la cache proprietaria e tieni viva la cache mentre usi l'oggetto preso in prestito
TXLSPivotCacheCalculatedItem.FieldIndex: IntegerIdentità del campo della cache a base zero, in sola lettura
TXLSPivotCacheCalculatedItem.ItemIndex: IntegerIdentità dello shared member dentro FieldIndex, a base zero e in sola lettura
TXLSPivotCacheCalculatedItem.Formula: WideStringFormula nativa del membro, in lettura e scrittura; impostarla cambia il modello, mentre l'anteprima o il binding esplicito validano sintassi e cicli di dipendenza prima del calcolo
TXLSPivotCacheCalculatedItem.Supported: BooleanDisponibilità in sola lettura dell'identità dell'area analizzata, non una garanzia che ogni combinazione di formula e vista possa essere valutata
TXLSPivotCacheCalculatedItem.RawXml: WideStringXML preservato in sola lettura per una definizione di elemento calcolato non supportata; le definizioni tipizzate note usano una stringa vuota
TXLSPivotCache.AddCalculatedItem(AFieldIndex, AItemIndex: Integer; const AFormula: WideString): TXLSPivotCacheCalculatedItemCrea una definizione tipizzata supportata per un membro esistente, rifiutando identità non valide, una formula vuota o un'identità di destinazione duplicata; l'oggetto restituito appartiene alla cache
TXLSPivotCache.FindCalculatedItem(AFieldIndex, AItemIndex: Integer): TXLSPivotCacheCalculatedItemRestituisce la definizione corrispondente presa in prestito, oppure nil
TXLSPivotCache.CalculatedItemCount: IntegerNumero in sola lettura delle definizioni trattenute, supportate o non supportate
TXLSPivotCache.CalculatedItems[Index: Integer]: TXLSPivotCacheCalculatedItemAccesso in sola lettura, a base zero e in prestito, alla lista delle definizioni
TXLSPivotCache.ClearCalculatedItemsLibera le definizioni di proprietà e invalida gli handle in prestito; non rimuove shared member né stabilisce la completezza interrogativa della cache
TXLSPivotCache.MoveCalculatedItem(AIndex, ANewIndex: Integer)Sposta una definizione esistente tra posizioni a base zero nell'ordine di risoluzione nativo, preservando l'identità dell'oggetto preso in prestito; posizioni non valide sollevano EArgumentOutOfRangeException senza spostare definizioni
TXLSPivotCache._AddUnsupportedCalculatedItem(const ARawXml: WideString)Hook di preservazione orientato al parser che conserva XML sconosciuto e marca incompleto il modello interrogativo della cache
TXLSPivotCache.Assign(Source: TXLSPivotCache)Copia in profondità definizioni, campi, shared member, indici dei record e contesto del sistema di data; gli handle della sorgente restano indipendenti, e assegnare la stessa cache a sé stessa è sicuro
TXLSPivotTable.BindCalculatedItemsToCacheValida e lega alla cache gli elementi calcolati creati in una vista su una cache scollegata, poi aggiunge i nuovi shared member e le definizioni alla cache attiva; i fallimenti lasciano invariate identità dei membri e definizioni, e gli handle esistenti di campi e membri restano validi

Un elemento creato in una vista con TXLSPivotField.AddCalculatedItem richiede un BindCalculatedItemsToCache esplicito prima della materializzazione nativa o della ricostruzione nativa tipizzata; importare una definizione nativa di cache supportata fornisce già quella proprietà

Il binding alla cache riguarda ogni vista che condivide quella cache, quindi chiamalo come operazione di creazione e conserva gli handle in prestito solo finché la lista corrispondente non viene svuotata, riassegnata o distrutta

Filtri sui membri e trasformazioni di visualizzazione

I confronti su didascalia e valore in un campo con elementi calcolati selezionano i membri mostrati dopo l'esecuzione delle formule dei membri; i membri della sorgente filtrati restano disponibili alle formule referenziate, e i subtotali e totali complessivi visibili escludono i contributi diretti di quei membri

Un confronto per valore può selezionare una misura calcolata; ogni membro candidato valuta quella misura dalle somme di contesto delle proprie dipendenze, invece di sommare i rapporti dei record sorgente o trattare la formula come colonna di record della cache

Anche i risultati degli elementi calcolati supportano le trasformazioni ShowDataAs modellate, incluse percentuali, indice, differenze, totali progressivi, percentuali dei totali progressivi e ranghi; i membri nascosti restano fuori dalle sequenze visibili di totali progressivi e ranghi, mentre i riferimenti delle formule conservano i loro valori originali

Dichiarazione pubblicaContratto
TXLSPivotFilter.DataFieldIsMeasureIndex: BooleanSeleziona il dominio di identità di DataField; False conserva l'identità esistente del campo della cache a base zero, mentre True identifica una posizione a base zero della misura dati mostrata e viene impostato quando il iMeasureFld nativo viene importato
TXLSPivotFilter.SourceOrder: IntegerOrdine globale a base zero in lettura e scrittura, conservato dall'elemento filters nativo, con valore predefinito -1 quando assente; il calcolo locale e la scrittura tipizzata usano prima il EvalOrder non negativo, poi SourceOrder, infine l'ordine stabile di campo/lista

La scrittura nativa tipizzata converte un'identità di campo della cache nella sua posizione di misura mostrata; un campo della cache usato da più misure dati richiede una posizione di misura esplicita, perché altrimenti la sua identità di aggregazione e visualizzazione risulterebbe ambigua

Excel può salvare filtri attivi con evalOrder=-1 preservando il loro ordine di valutazione attraverso la sequenza dell'elemento filters; importazione, clonazione e ricostruzione tipizzata conservano quella sequenza invece di trattare quei filtri come inattivi

Cambiare una definizione di filtro o la sua posizione nella sorgente conservata su una vista nativa importata e preservata richiede la ricostruzione tipizzata; l'adozione nativa ordinaria valida l'identità del filtro preservato e rifiuta le modifiche non supportate prima di scrivere le celle del report

Anteprime, query e sistemi di 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 con AUseNativeGrandTotals=True usa una tabella e una cache scollegate, comprese somme native esatte e identità degli elementi calcolati; il Make ordinario e il MakePreview predefinito conservano il loro comportamento esistente di calcolo basato sui record

GetDataValue usa le somme di contesto native quando la cache ha campi o elementi calcolati, e GETPIVOTDATA condivide quello stesso percorso di query; nessuna delle due operazioni aggiorna i dati della sorgente, ricalcola le formule del foglio ispezionate o scrive celle del report

Dichiarazione pubblicaContratto
TXLSPivotCache.Date1904: BooleanContesto del sistema di data della sorgente, in lettura e scrittura, per i calcoli nativi standalone; il predefinito è False e viene legato durante l'importazione Classic e XLSX, la creazione della cache del foglio e la copia della cache XLSX
TXLSPivotDateSystemSelezione tipizzata del sistema di data per anteprime e query native scollegate
xlpdsCacheUsa il contesto Date1904 conservato dalla cache senza cambiarlo
xlpds1900Proietta il sistema di data 1900 nel calcolo scollegato
xlpds1904Proietta il sistema di data 1904 nel calcolo scollegato
TryXLSXMakeNativePivotLayout(...; ADateSystem: TXLSPivotDateSystem = xlpdsCache): BooleanL'helper nativo di layout di livello più basso accetta la stessa selezione scollegata del sistema di data dopo i suoi parametri di output ResultXml e Reason
TXLSGetDate1904 = function: Boolean of objectCallback di metadati del calcolatore che legge il sistema di data corrente del workbook proprietario
TXLSCalculator.OnGetDate1904: TXLSGetDate1904Callback opzionale presa in prestito usata da GETPIVOTDATA; nil usa il contesto della cache, mentre i valutatori del workbook e le loro viste in sola lettura forniscono l'impostazione corrente del workbook

I chiamanti standalone devono fornire il corretto contesto Date1904 della cache o una selezione esplicita del sistema di data; la materializzazione nativa e le query di formula di proprietà del workbook proiettano l'impostazione corrente del workbook senza modificare la cache attiva

I valori sorgente di data restano valori TDateTime assoluti nella cache, mentre le formule numeriche native usano seriali di data Excel; il sistema 1904 sottrae 1462 giorni per ogni valore di data, e la conversione 1900 gestisce le date rappresentabili prima di marzo 1900

La proprietà dell'output nativo salvato registra il proprio contesto di sistema di data e confronta i valori di data con stile rispetto al payload numerico serializzato; salvare, riaprire o cambiare la base di data del workbook preserva la proprietà legittima, mentre payload di data, Boolean, errore e testo cambiati rifiutano comunque la sovrascrittura

Budget e input non supportato

La callback opzionale TlxPivotQueryBudget riceve incrementi di lavoro e una stima corrente della memoria, incluso lo snapshot scollegato proposto e lo storage delle formule; False interrompe con EXLSPivotQueryBudget e le eccezioni delle callback si propagano

Le larghezze dei record e le identità dei membri del database vengono verificate prima della clonazione; la compilazione e la valutazione delle formule addebitano lavoro, e il calcolo mantiene limitati profondità di sintassi, testo delle formule, domini dei membri calcolati e storage degli accumulatori

La pianificazione degli elementi calcolati limita prima dell'allocazione i domini combinati dei membri, lo storage delle didascalie e i piani dei campi; anche la valutazione nativa dei membri e le scansioni tardive dei filtri aggregati rifiutano il lavoro proposto oltre i loro limiti fissi prima di entrarvi, e l'annullamento del budget lascia invariate le maschere attive dei membri

Il parser delle formule supporta costanti numeriche, nomi di campo, nomi tra virgolette, nomi di membri qualificati dal campo, aritmetica e confronti, percentuale e le funzioni ABS, SQRT, POWER, ROUND, MIN, MAX, SUM, IF, IFERROR, AND, OR e PI; funzioni sconosciute, riferimenti a celle, array e nomi non legati vengono rifiutati invece di fornire valori inventati

I campi calcolati nativi richiedono misure dati SUM e non possono essere assi di riga, colonna o pagina; gli elementi calcolati richiedono didascalie stringa conservate in campi della cache non raggruppati, subtotali automatici o SUM, misure SUM e l'identità supportata di area a membro singolo

Funzioni di formula sconosciute, fieldPosition di area diverso da zero, metadati di area sconosciuti o malformati, identità ambigue di misure nei filtri e trasformazioni di visualizzazione base ed estese simultaneamente attive vengono rifiutati esplicitamente; queste restrizioni non trasformano una definizione non supportata in un elemento ordinario

Il filtraggio aggregato tardivo dei membri calcolati supporta i confronti per valore modellati; le varianti legacy di filtro per conteggio, percentuale e somma e i metadati Top n non modellati richiedono un modello nativo di selezione supportato e vengono rifiutati invece di sostituire confronti sui record sorgente

Le parti grezze importate conservano i metadati futuri non supportati per la preservazione roundtrip ordinaria; il calcolo locale, la ricostruzione tipizzata e l'estrazione semantica delle funzionalità richiedono un modello disponibile e non aggiornano i dati della sorgente per fabbricare record di cache mancanti

Le definizioni semantiche della cache pivot includono identità e formula degli elementi calcolati, contesto del sistema di data e payload scollegati e limitati; le estensioni native non disponibili restano un errore semantico esplicito