Campos calculados nativos de tablas dinámicas y elementos de propiedad del caché
Calcular a partir de sumas de contexto
Para un campo calculado local del caché, la vista previa nativa primero suma cada campo de base de datos referenciado en el contexto solicitado de hoja, subtotal o total general, y luego 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 sumar las razones mostradas
Los elementos calculados evalúan las referencias de miembros en cada contexto completo de hoja, 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 permanece disponible cuando otro elemento calculado lo referencia, mientras que su propia contribución queda fuera de los totales mostrados; para A=40 y B=60, ocultar A todavía da a Combined=A+B un valor de 100 e incluye Combined en el total general visible
Cuando los campos y elementos calculados coexisten, las contribuciones de los elementos actualizan primero las sumas de sus campos de base de datos referenciados, y luego el campo calculado evalúa esas sumas de contexto actualizadas
Los elementos calculados pueden pertenecer a varios campos no agrupados; el orden de definición retenido del caché determina qué fórmula de campo escribe al final una intersección, 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 le referencia, incluida una dependencia definida más adelante 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 de fuente Boolean y de texto, retienen los valores numéricos y de fechas, y propagan los errores con tipo de la fuente; el IF e IFERROR perezosos pueden manejar un error sin evaluar una rama no usada
Propiedad del caché y enlace
| Declaración pública | Contrato |
|---|---|
TXLSPivotCacheCalculatedItem | Una definición nativa de miembro calculado de propiedad del caché; obténgala a través del caché propietario y mantenga vivo el caché mientras usa el objeto prestado |
TXLSPivotCacheCalculatedItem.FieldIndex: Integer | Identidad de campo del caché de solo lectura, basada en cero |
TXLSPivotCacheCalculatedItem.ItemIndex: Integer | Identidad de miembro compartido de solo lectura, basada en cero, dentro de FieldIndex |
TXLSPivotCacheCalculatedItem.Formula: WideString | Fórmula nativa de miembro de lectura y escritura; definirla cambia el modelo, mientras que la vista previa o el enlace explícito validan la sintaxis y los ciclos de dependencias antes de calcular |
TXLSPivotCacheCalculatedItem.Supported: Boolean | Disponibilidad de solo lectura de la identidad del área analizada, más que una garantía de que toda combinación de fórmula y 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 inválidas, una fórmula vacía o una identidad de destino duplicada; el objeto devuelto pertenece al caché |
TXLSPivotCache.FindCalculatedItem(AFieldIndex, AItemIndex: Integer): TXLSPivotCacheCalculatedItem | Devuelve la definición prestada coincidente o nil |
TXLSPivotCache.CalculatedItemCount: Integer | Número de solo lectura de definiciones retenidas admitidas o no admitidas |
TXLSPivotCache.CalculatedItems[Index: Integer]: TXLSPivotCacheCalculatedItem | Acceso prestado de solo lectura, basado en cero, a la lista de definiciones |
TXLSPivotCache.ClearCalculatedItems | Libera las definiciones de su propiedad e invalida los manejadores prestados; no elimina miembros compartidos ni establece la completitud de consulta del caché |
TXLSPivotCache.MoveCalculatedItem(AIndex, ANewIndex: Integer) | Mueve una definición existente entre posiciones basadas en cero del orden de resolución nativo, preservando su identidad de objeto prestada; las posiciones inválidas lanzan EArgumentOutOfRangeException sin mover definiciones |
TXLSPivotCache._AddUnsupportedCalculatedItem(const ARawXml: WideString) | Gancho de preservación orientado al analizador que retiene el XML desconocido y marca el modelo de consulta del caché como incompleto |
TXLSPivotCache.Assign(Source: TXLSPivotCache) | Copia en profundidad las definiciones, los campos, los miembros compartidos, los índices de registros y el contexto del sistema de fechas; los manejadores de la fuente permanecen independientes, y asignar el mismo caché a sí mismo es seguro |
TXLSPivotTable.BindCalculatedItemsToCache | Valida y enlaza los elementos calculados escritos en la vista sobre un caché desacoplado, y luego agrega los nuevos miembros compartidos y definiciones al caché vivo; las fallas dejan las identidades de miembros y las definiciones sin cambios, mientras que los manejadores existentes de campos y miembros permanecen válidos |
Un elemento escrito en la vista creado con TXLSPivotField.AddCalculatedItem necesita un BindCalculatedItemsToCache explícito 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
El enlace del caché afecta a cada vista que comparte ese caché, así que llámelo como una operación de creación y conserve los manejadores prestados únicamente hasta que la lista correspondiente se limpie, se asigne o se destruya
Filtros de miembros y transformaciones de visualización
Las comparaciones de leyenda y de valor sobre un campo de elementos calculados seleccionan los miembros mostrados después de que las fórmulas de miembros se ejecuten; los miembros de la fuente filtrados permanecen disponibles para las fórmulas referenciadas, y los subtotales y totales generales visibles excluyen las contribuciones directas de esos miembros
Una comparación de valores 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 sumar las razones de los registros de la fuente ni tratar la fórmula como una columna de registros del 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 acumulados y rangos, mientras que las referencias de fórmulas 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 del caché basada en cero, mientras que True identifica una posición de medida de datos mostrada basada en cero y se define cuando el iMeasureFld nativo se importa |
TXLSPivotFilter.SourceOrder: Integer | Orden global de lectura y escritura, basado en cero, retenido del elemento nativo de filtros, con -1 como valor predeterminado cuando está ausente; el cálculo local y la escritura con tipo usan primero el EvalOrder no negativo, luego SourceOrder, y después el orden estable de campo/lista |
La escritura nativa con tipo convierte una identidad de campo del caché a su posición de medida mostrada; un campo del caché usado por varias medidas de datos necesita una posición de medida explícita, porque de lo contrario su agregación y su identidad de visualización serían ambiguas
Excel puede guardar filtros activos con evalOrder=-1 preservando su orden de evaluación a través de la secuencia del elemento de filtros; la importación, la clonación 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 fuente 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 celdas del reporte
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 un caché desacoplados, incluidas las sumas nativas exactas y las identidades de elementos calculados; el Make ordinario y el MakePreview predeterminado conservan su comportamiento existente de cálculo basado en registros
GetDataValue usa sumas de contexto nativas cuando el caché tiene campos o elementos calculados, y GETPIVOTDATA comparte esa ruta de consulta; ninguna de las dos operaciones actualiza los datos de la fuente, recalcula las fórmulas de la hoja inspeccionada ni escribe celdas del reporte
| Declaración pública | Contrato |
|---|---|
TXLSPivotCache.Date1904: Boolean | Contexto de sistema de fechas de la fuente de lectura y escritura para cálculos nativos independientes; tiene False como valor predeterminado y se enlaza durante la importación Classic y XLSX y la creación de cachés de hojas, y durante la copia de cachés XLSX |
TXLSPivotDateSystem | Selección con tipo del sistema de fechas para vistas previas y consultas nativas desacopladas |
xlpdsCache | Usa el contexto Date1904 retenido del 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 ayudante nativo de diseño de nivel más bajo acepta la misma selección de sistema de fechas desacoplada después de sus parámetros de salida ResultXml y Reason |
TXLSGetDate1904 = function: Boolean of object | Devolución de llamada de metadatos de la calculadora que lee el sistema de fechas actual del libro propietario |
TXLSCalculator.OnGetDate1904: TXLSGetDate1904 | Devolución de llamada prestada opcional usada por GETPIVOTDATA; nil usa el contexto del caché, mientras que los evaluadores de libros y sus vistas de solo lectura aportan la configuración actual del libro |
Los llamadores independientes deben aportar el contexto Date1904 correcto del caché o una selección explícita de sistema de fechas; la materialización nativa de propiedad del libro y las consultas de fórmulas proyectan la configuración actual del libro sin modificar el caché vivo
Los valores de fuente de fechas permanecen como valores TDateTime absolutos en el caché, mientras que las fórmulas numéricas nativas usan seriales de fecha de Excel; el sistema 1904 resta 1462 días por valor de fecha, y la conversión 1900 maneja 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 fechas, Boolean, errores y texto cambiadas siguen rechazando la sobreescritura
Presupuestos y entrada no admitida
La devolución de llamada 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 de la devolución de llamada se propagan
Los anchos de registros y las identidades de miembros de la base de datos se verifican antes de la clonación; la compilación y la evaluación de fórmulas cargan trabajo, y el cálculo retiene una profundidad de sintaxis, texto de fórmulas, dominios de miembros calculados y almacenamiento de acumuladores acotados
La planificación de elementos calculados limita los dominios combinados de miembros, el almacenamiento de leyendas y los planes de campos 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 del presupuesto deja las máscaras de miembros vivas sin cambios
El analizador de fórmulas admite constantes numéricas, nombres de campos, 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 celdas, los arreglos y los nombres sin enlazar provocan rechazo 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 leyendas de cadena retenidas en campos de caché no agrupados, subtotales automáticos o SUM, medidas SUM y la identidad de área de un solo miembro admitida
Las funciones de fórmula desconocidas, un fieldPosition de área distinto de cero, metadatos de área desconocidos o malformados, identidades de medida de filtro ambiguas y transformaciones de visualización básicas y extendidas mutuamente activas provocan rechazo explícito; 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 valores modeladas; las variantes heredadas de filtros de conteo, porcentaje y suma y los metadatos Top n no modelados exigen un modelo nativo de selección admitido y provocan rechazo en lugar de sustituir comparaciones de registros de la fuente
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 funciones exigen un modelo disponible y no actualizan los datos de la fuente para fabricar registros de caché faltantes
Las definiciones semánticas del caché de tablas dinámicas incluyen la identidad y la fórmula de elementos calculados, el contexto del sistema de fechas y las cargas desacopladas acotadas; las extensiones nativas no disponibles siguen siendo un error semántico explícito