Documentación de HotXLS

Campos Pivot calculados nativos y elementos propios de la caché

Calcular a partir de sumas de contexto

Para un campo de caché calculado local, la vista previa nativa primero suma cada campo de base de datos referenciado en el contexto solicitado de hoja, subtotal o total general y después evalúa la fórmula; las dependencias pueden estar ausentes de los campos de datos mostrados

Por ejemplo, dos registros con valores Amount/Units de 10/1 y 30/9 producen un resultado de campo calculado nativo de 40/10 = 4, y un total general evalúa sus propias sumas de dependencias en lugar de añadir las razones mostradas

Los elementos calculados evalúan las referencias de miembros en cada contexto de hoja completo, incluidos los demás ejes de fila y columna; los subtotales y los totales generales incluyen las contribuciones resultantes de los miembros, de modo que un elemento de razón puede contribuir con una suma de sus razones de hoja

Un miembro oculto manualmente sigue estando disponible cuando otro elemento calculado lo referencia, mientras que su propia contribución queda fuera de los totales mostrados; con A=40 y B=60, ocultar A sigue dando a Combined=A+B un valor de 100 e incluye Combined en el total general visible

Cuando coexisten campos y elementos calculados, las contribuciones de los elementos actualizan primero las sumas de sus campos de base de datos referenciados y después el campo calculado evalúa esas sumas de contexto actualizadas

Los elementos calculados pueden pertenecer a varios campos sin agrupar; el orden de definición retenido de la caché determina qué fórmula de campo escribe una intersección al final, de modo que mover una definición puede cambiar tanto esa intersección como los totales mostrados

Una dependencia de miembro calculado sin resolver se evalúa cuando se la referencia, incluida una dependencia definida más tarde en ese orden; un miembro ya calculado en un paso anterior conserva su valor de intersección actual cuando otra fórmula lo referencia

Las sumas nativas de campos ignoran los valores Boolean y de texto del origen, retienen los valores numéricos y de fecha y propagan los errores con tipo del origen; los IF e IFERROR perezosos pueden gestionar un error sin evaluar una rama sin uso

Propiedad de la caché y vinculación

Declaración públicaContrato
TXLSPivotCacheCalculatedItemDefinición nativa de miembro calculado propia de la caché; obténla a través de la caché propietaria y mantén viva la caché mientras uses el objeto prestado
TXLSPivotCacheCalculatedItem.FieldIndex: IntegerIdentidad de campo de caché de base cero de solo lectura
TXLSPivotCacheCalculatedItem.ItemIndex: IntegerIdentidad de miembro compartido de base cero de solo lectura dentro de FieldIndex
TXLSPivotCacheCalculatedItem.Formula: WideStringFórmula nativa de miembro de lectura/escritura; establecerla cambia el modelo, mientras que la vista previa o la vinculación explícita validan la sintaxis y los ciclos de dependencia antes de calcular
TXLSPivotCacheCalculatedItem.Supported: BooleanDisponibilidad de solo lectura de la identidad de área analizada, más que una garantía de que toda combinación de fórmula o vista pueda evaluarse
TXLSPivotCacheCalculatedItem.RawXml: WideStringXML preservado de solo lectura para una definición de elemento calculado no admitida; las definiciones con tipo conocidas usan una cadena vacía
TXLSPivotCache.AddCalculatedItem(AFieldIndex, AItemIndex: Integer; const AFormula: WideString): TXLSPivotCacheCalculatedItemCrea una definición con tipo admitida para un miembro existente, rechazando identidades no válidas, una fórmula vacía o una identidad de destino duplicada; el objeto devuelto pertenece a la caché
TXLSPivotCache.FindCalculatedItem(AFieldIndex, AItemIndex: Integer): TXLSPivotCacheCalculatedItemDevuelve la definición coincidente prestada o nil
TXLSPivotCache.CalculatedItemCount: IntegerNúmero de solo lectura de definiciones admitidas o no admitidas retenidas
TXLSPivotCache.CalculatedItems[Index: Integer]: TXLSPivotCacheCalculatedItemAcceso prestado de solo lectura de base cero a la lista de definiciones
TXLSPivotCache.ClearCalculatedItemsLibera las definiciones propias e invalida los manejadores prestados; no elimina miembros compartidos ni establece la completitud de la consulta de la caché
TXLSPivotCache.MoveCalculatedItem(AIndex, ANewIndex: Integer)Mueve una definición existente entre posiciones de base cero del orden de resolución nativo preservando su identidad de objeto prestada; las posiciones no válidas lanzan EArgumentOutOfRangeException sin mover definiciones
TXLSPivotCache._AddUnsupportedCalculatedItem(const ARawXml: WideString)Gancho de preservación orientado al parser que retiene el XML desconocido y marca el modelo de consulta de la caché como incompleto
TXLSPivotCache.Assign(Source: TXLSPivotCache)Copia en profundidad definiciones, campos, miembros compartidos, índices de registro y contexto de sistema de fechas; los manejadores del origen permanecen independientes, y asignar la misma caché a sí misma es seguro
TXLSPivotTable.BindCalculatedItemsToCacheValida y vincula los elementos calculados escritos en vistas sobre una caché desacoplada y después añade los nuevos miembros compartidos y definiciones a la caché activa; los fallos dejan las identidades de miembros y las definiciones sin cambios, mientras que los manejadores existentes de campos y miembros siguen siendo válidos

Un elemento escrito en una vista creado con TXLSPivotField.AddCalculatedItem necesita una BindCalculatedItemsToCache explícita antes de la materialización nativa o la reconstrucción nativa con tipo; importar una definición nativa de caché admitida ya aporta esa propiedad

La vinculación de la caché afecta a todas las vistas que comparten esa caché, así que llámala como una operación de creación y retén los manejadores prestados solo hasta que la lista correspondiente se limpie, se asigne o se destruya

Filtros de miembros y transformaciones de presentación

Las comparaciones de rótulo y de valor sobre un campo de elementos calculados seleccionan los miembros mostrados después de que las fórmulas de miembro se ejecuten; los miembros del origen filtrados siguen estando disponibles para las fórmulas que los referencian, y los subtotales y totales generales visibles excluyen las contribuciones directas de esos miembros

Una comparación de valor puede seleccionar una medida calculada; cada miembro candidato evalúa esa medida a partir de las sumas de dependencias de su contexto, en lugar de añadir las razones de los registros del origen o tratar la fórmula como una columna de registro de caché

Los resultados de elementos calculados también admiten las transformaciones ShowDataAs modeladas, incluidos porcentajes, índice, diferencias, totales acumulados, porcentajes de totales acumulados y rangos; los miembros ocultos quedan fuera de las secuencias visibles de acumulación y de rango, mientras que las referencias de fórmula conservan sus valores originales

Declaración públicaContrato
TXLSPivotFilter.DataFieldIsMeasureIndex: BooleanSelecciona el dominio de identidades de DataField; False conserva la identidad existente de campo de caché de base cero, mientras que True identifica una posición de medida de datos mostrada de base cero y se establece cuando se importa un iMeasureFld nativo
TXLSPivotFilter.SourceOrder: IntegerOrden global de base cero de lectura/escritura retenido del elemento nativo filters, con -1 por defecto cuando está ausente; el cálculo local y la escritura con tipo usan primero el EvalOrder no negativo, después el SourceOrder y por último el orden estable de campo/lista

La escritura nativa con tipo convierte una identidad de campo de caché en su posición de medida mostrada; un campo de caché usado por varias medidas de datos necesita una posición de medida explícita, porque de otro modo su agregación e identidad de presentación serían ambiguas

Excel puede guardar filtros activos con evalOrder=-1 preservando su orden de evaluación mediante la secuencia del elemento filters; importar, clonar y la reconstrucción con tipo retienen esa secuencia en lugar de tratar esos filtros como inactivos

Cambiar una definición de filtro o su posición de origen retenida en una vista nativa importada y preservada exige reconstrucción con tipo; la adopción nativa ordinaria valida la identidad del filtro preservado y rechaza las ediciones no admitidas antes de escribir las celdas del informe

Vista previa, consultas y sistemas de fechas

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 tabla y una caché desacopladas, incluidas las sumas nativas exactas y las identidades de elementos calculados; el Make ordinario y el MakePreview por defecto conservan su comportamiento existente de cálculo basado en registros

GetDataValue usa sumas de contexto nativas cuando la caché tiene campos o elementos calculados, y GETPIVOTDATA comparte esa vía de consulta; ninguna de las dos operaciones actualiza los datos del origen, recalcula las fórmulas inspeccionadas de la hoja ni escribe celdas del informe

Declaración públicaContrato
TXLSPivotCache.Date1904: BooleanContexto de sistema de fechas del origen de lectura/escritura para los cálculos nativos independientes; su valor por defecto es False y se vincula durante la importación Classic y XLSX y la creación de cachés de hoja, y durante la copia de cachés XLSX
TXLSPivotDateSystemSelección con tipo del sistema de fechas para las vistas previas y consultas nativas desacopladas
xlpdsCacheUsa el contexto Date1904 retenido de la caché sin cambiarlo
xlpds1900Proyecta el sistema de fechas 1900 en el cálculo desacoplado
xlpds1904Proyecta el sistema de fechas 1904 en el cálculo desacoplado
TryXLSXMakeNativePivotLayout(...; ADateSystem: TXLSPivotDateSystem = xlpdsCache): BooleanEl helper nativo de diseño de nivel inferior acepta la misma selección de sistema de fechas desacoplado después de sus parámetros de salida ResultXml y Reason
TXLSGetDate1904 = function: Boolean of objectCallback de metadatos de la calculadora que lee el sistema de fechas actual del libro propietario
TXLSCalculator.OnGetDate1904: TXLSGetDate1904Callback prestado opcional usado por GETPIVOTDATA; nil usa el contexto de la caché, mientras que los evaluadores de libro y sus vistas de solo lectura aportan el ajuste actual del libro

Los llamadores independientes deben aportar el contexto Date1904 correcto de la caché o una selección explícita de sistema de fechas; la materialización nativa propiedad del libro y las consultas de fórmula proyectan el ajuste actual del libro sin modificar la caché activa

Los valores de fecha del origen permanecen como valores TDateTime absolutos en la caché, mientras que las fórmulas numéricas nativas usan números seriales de fecha de Excel; el sistema 1904 resta 1462 días por valor de fecha, y la conversión 1900 gestiona las fechas representables anteriores a marzo de 1900

La propiedad de la salida nativa guardada registra su contexto de sistema de fechas y compara los valores de fecha con estilo contra su carga numérica serializada; guardar, reabrir o cambiar la base de fechas del libro preserva la propiedad legítima, mientras que las cargas de fecha, Boolean, error y texto cambiadas siguen rechazando la sobrescritura

Presupuestos y entrada no admitida

El callback opcional TlxPivotQueryBudget recibe incrementos de trabajo y una estimación de memoria actual, incluida la instantánea desacoplada propuesta y el almacenamiento de fórmulas; False aborta con EXLSPivotQueryBudget y las excepciones del callback se propagan

Los anchos de registro y las identidades de miembros de base de datos se comprueban antes de clonar; la compilación y la evaluación de fórmulas cobran trabajo, y el cálculo retiene una profundidad de sintaxis acotada, texto de fórmula, dominios de miembros calculados y almacenamiento de acumuladores

La planificación de elementos calculados limita los dominios de miembros combinados, el almacenamiento de rótulos y los planes de campo antes de la asignación; la evaluación nativa de miembros y los escaneos tardíos de filtros agregados también rechazan el trabajo propuesto por encima de sus límites fijos antes de entrar en esos escaneos, y la cancelación por presupuesto deja las máscaras de miembros activas sin cambios

El parser de fórmulas admite constantes numéricas, nombres de campo, nombres entre comillas, nombres de miembros calificados por campo, aritmética y comparaciones, porcentaje, y ABS, SQRT, POWER, ROUND, MIN, MAX, SUM, IF, IFERROR, AND, OR y PI; las funciones desconocidas, las referencias de celda, las matrices y los nombres sin vincular se rechazan en lugar de aportar valores supuestos

Los campos calculados nativos exigen medidas de datos SUM y no pueden ser ejes de fila, columna o página; los elementos calculados exigen rótulos de cadena retenidos en campos de caché sin agrupar, subtotales automáticos o SUM, medidas SUM y la identidad de área de miembro único admitida

Las funciones de fórmula desconocidas, un fieldPosition de área distinto de cero, los metadatos de área desconocidos o malformados, las identidades de medida de filtro ambiguas y las transformaciones de presentación básicas y extendidas mutuamente activas se rechazan explícitamente; estas restricciones no convierten una definición no admitida en un elemento ordinario

El filtrado agregado tardío de miembros calculados admite las comparaciones de valor modeladas; las variantes heredadas de filtro de recuento, porcentaje y suma y los metadatos Top n sin modelar exigen un modelo nativo de selección admitido y se rechazan en lugar de sustituir las comparaciones de registros del origen

Las partes crudas importadas retienen los metadatos futuros no admitidos para la preservación ordinaria de ida y vuelta; el cálculo local, la reconstrucción con tipo y la extracción semántica de características exigen un modelo disponible y no actualizan los datos del origen para fabricar registros de caché ausentes

Las definiciones semánticas de caché de tabla dinámica incluyen la identidad y la fórmula de elementos calculados, el contexto de sistema de fechas y las cargas desacopladas acotadas; las extensiones nativas no disponibles siguen siendo un error semántico explícito