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 pubblica | Contratto |
|---|---|
TXLSPivotCacheCalculatedItem | Una 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: Integer | Identità del campo della cache a base zero, in sola lettura |
TXLSPivotCacheCalculatedItem.ItemIndex: Integer | Identità dello shared member dentro FieldIndex, a base zero e in sola lettura |
TXLSPivotCacheCalculatedItem.Formula: WideString | Formula 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: Boolean | Disponibilità in sola lettura dell'identità dell'area analizzata, non una garanzia che ogni combinazione di formula e vista possa essere valutata |
TXLSPivotCacheCalculatedItem.RawXml: WideString | XML 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): TXLSPivotCacheCalculatedItem | Crea 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): TXLSPivotCacheCalculatedItem | Restituisce la definizione corrispondente presa in prestito, oppure nil |
TXLSPivotCache.CalculatedItemCount: Integer | Numero in sola lettura delle definizioni trattenute, supportate o non supportate |
TXLSPivotCache.CalculatedItems[Index: Integer]: TXLSPivotCacheCalculatedItem | Accesso in sola lettura, a base zero e in prestito, alla lista delle definizioni |
TXLSPivotCache.ClearCalculatedItems | Libera 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.BindCalculatedItemsToCache | Valida 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 pubblica | Contratto |
|---|---|
TXLSPivotFilter.DataFieldIsMeasureIndex: Boolean | Seleziona 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: Integer | Ordine 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 pubblica | Contratto |
|---|---|
TXLSPivotCache.Date1904: Boolean | Contesto 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 |
TXLSPivotDateSystem | Selezione tipizzata del sistema di data per anteprime e query native scollegate |
xlpdsCache | Usa il contesto Date1904 conservato dalla cache senza cambiarlo |
xlpds1900 | Proietta il sistema di data 1900 nel calcolo scollegato |
xlpds1904 | Proietta il sistema di data 1904 nel calcolo scollegato |
TryXLSXMakeNativePivotLayout(...; ADateSystem: TXLSPivotDateSystem = xlpdsCache): Boolean | L'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 object | Callback di metadati del calcolatore che legge il sistema di data corrente del workbook proprietario |
TXLSCalculator.OnGetDate1904: TXLSGetDate1904 | Callback 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