Saltar al contenido principal Saltar al contenido complementario

CalcDim - función de gráfico

Cuando se utiliza en una expresión de dimensión, CalcDim() anula la interpretación automática del motor sobre cómo manejar internamente la expresión. Específicamente, la función evita que se cree un nuevo campo interno en el modelo de datos. En su lugar, las selecciones realizadas en la app se tratan como selecciones en los campos aplicables del modelo de datos original.

Esta función no puede utilizarse en el script de carga. Además, una práctica recomendada para el rendimiento del sistema es cargar los campos que se utilizan en la dimensión calculada como campos lógicos a través del script de carga siempre que sea posible. CalcDim() ofrece una forma de controlar el comportamiento del motor en aquellos casos en los que no es posible cargar el campo calculado desde el script.

En Qlik Sense, la expresión de dimensión se realiza por defecto como un campo sobre la marcha, es decir, como un campo real, aparente en la barra de selección actual, creado bajo demanda. Las selecciones se aplican e infieren a este campo, de forma similar a cualquier campo lógico del script.

Una expresión incluida en CalcDim() se comportará de la misma manera que todas las expresiones de dimensión calculada funcionan en QlikView, que es una asociación ad-hoc de los valores calculados a los valores del campo fuente subyacente. Todos los cálculos de campo sobre la marcha pueden transferirse a dimensiones calculadas utilizando la función CalcDim(), ya que la dimensión calculada tiene que cumplir menos requisitos basados en el modelo de datos que el correspondiente cálculo de campo sobre la marcha. Esta transformación puede ser deseable para garantizar un comportamiento similar para todas las dimensiones calculadas cuando el modelo de datos pueda impedir el uso de un cálculo de campo sobre la marcha en algunos casos, pero no en otros.

Sintaxis:  

CalcDim(expr)

Tipo de datos que devuelve: dual

Argumentos
Argumento Descripción
expr

Una expresión que se utiliza como dimensión, o como segmento dentro de una expresión de dimensión.

Cuándo utilizar CalcDim

CalcDim() resulta útil cuando necesita un mayor control sobre la forma en que el motor Qlik gestiona los campos que invoca en una expresión de dimensión.

De manera predeterminada, Qlik Sense decide automáticamente si crea y referencia campos internos en el modelo de datos cuando utiliza una expresión de dimensión personalizada. Qlik Sense crea y utiliza estos campos internos siempre que sea posible. Cuando no es posible, la expresión se trata con referencia a los campos existentes en el modelo de datos en los que se basa.

Dependiendo de su caso de uso, este procesamiento automático puede no ser siempre lo más deseable. Por ejemplo, si utiliza una variable en una expresión de dimensión, la creación automática de nuevos campos puede resultar problemática. En ese caso, utilice CalcDim() para obligar a que la expresión se gestione sin usar este método.

He aquí algunos casos de uso común:

  • Ha migrado el contenido de QlikView a Qlik Sense y desea conservar el método de procesamiento de QlikView para las dimensiones calculadas.

  • Desea simplificar el comportamiento de selección en su app. Por ejemplo, prefiere mostrar las selecciones de campos como selecciones en campos del modelo de datos original, en lugar de selecciones en campos nuevos.

  • Su caso de uso requiere una expresión ad hoc por coherencia y rendimiento. Por ejemplo, si su expresión de dimensión contiene parámetros de visualización dinámicos controlables por el usuario, como formato, valores de corte o períodos controlables.

Ejemplos de funciones
Ejemplo Resultado
=CalcDim(if(Year < 2023, 'Older', Year))

Realizar una selección en una visualización que utilice esta dimensión se procesará y mostrará como una selección en el valor del campo Year asociado del modelo de datos.

Por el contrario, supongamos que no envuelve la expresión en CalcDim(). En este caso, tendría el siguiente aspecto:

=if(Year < 2023, 'Older', Year)

Hacer una selección en la expresión anterior se procesaría y mostraría como una selección en el campo interno =if(Year < 2023, 'Older', Year), que no está en el modelo de datos.

Ejemplo 1 - Comparación simple

Ejemplo 2 - Caso práctico para modificar el comportamiento predeterminado

¿Esta página le ha sido útil?

Si encuentra algún problema con esta página o su contenido (errores tipográficos, pasos que faltan o errores técnicos), no dude en ponerse en contacto con nosotros.