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ública | Contrato |
|---|---|
TXLSPivotCacheCalculatedItem | Definició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: Integer | Identidad de campo de caché de base cero de solo lectura |
TXLSPivotCacheCalculatedItem.ItemIndex: Integer | Identidad de miembro compartido de base cero de solo lectura dentro de FieldIndex |
TXLSPivotCacheCalculatedItem.Formula: WideString | Fó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: Boolean | Disponibilidad 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: WideString | XML 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): TXLSPivotCacheCalculatedItem | Crea 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): TXLSPivotCacheCalculatedItem | Devuelve la definición coincidente prestada o nil |
TXLSPivotCache.CalculatedItemCount: Integer | Número de solo lectura de definiciones admitidas o no admitidas retenidas |
TXLSPivotCache.CalculatedItems[Index: Integer]: TXLSPivotCacheCalculatedItem | Acceso prestado de solo lectura de base cero a la lista de definiciones |
TXLSPivotCache.ClearCalculatedItems | Libera 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.BindCalculatedItemsToCache | Valida 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ública | Contrato |
|---|---|
TXLSPivotFilter.DataFieldIsMeasureIndex: Boolean | Selecciona 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: Integer | Orden 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ública | Contrato |
|---|---|
TXLSPivotCache.Date1904: Boolean | Contexto 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 |
TXLSPivotDateSystem | Selección con tipo del sistema de fechas para las vistas previas y consultas nativas desacopladas |
xlpdsCache | Usa el contexto Date1904 retenido de la caché sin cambiarlo |
xlpds1900 | Proyecta el sistema de fechas 1900 en el cálculo desacoplado |
xlpds1904 | Proyecta el sistema de fechas 1904 en el cálculo desacoplado |
TryXLSXMakeNativePivotLayout(...; ADateSystem: TXLSPivotDateSystem = xlpdsCache): Boolean | El 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 object | Callback de metadatos de la calculadora que lee el sistema de fechas actual del libro propietario |
TXLSCalculator.OnGetDate1904: TXLSGetDate1904 | Callback 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