Los miembros calculados son miembros "ficticios" creados a partir de las dimensiones de la aplicación en un único formulario y utilizados en este mismo formulario, sin necesidad de alterar la estructura del modelo de la aplicación. Estos miembros se utilizan para realizar cálculos dentro del formulario, sin necesidad de crear miembros adicionales en las dimensiones de la aplicación.
Entre las funcionalidades de los miembros calculados tenemos cálculos realizados directamente a partir de los miembros calculados creados, agregación de valores, alteración en la forma de exhibición de los datos y creación de filas y columnas en el formulario.
Los miembros calculados pueden ser creados utilizando las siguientes funciones:
Funciones |
---|
Blank |
Comment |
Header |
Parent |
PrevMember |
Property |
TimeRelative |
TimeSpan |
YTD |
A continuación tenemos la descripción, sintaxis y los parámetros de cada una de ellas:
Descripción:
Crea una fila o columna con celdas en blanco. Este miembro añade una fila en blanco, creando un espacio para separar mejor un grupo de filas o columnas. Las celdas de esta fila o columna quedarán en blanco.
Sintaxis:
Blank()
Parámetros:
Nombre | Descripción | Tipos de parámetros | Obligatorio | Repeticiones |
---|---|---|---|---|
Blank | Fila o columna en blanco | {} | Sí | No |
Ejemplo: En el campo de expresión el texto deberá ser:
Blank{}
.
Descripción:
Crea un miembro donde es posible insertar comentarios para ser replicados. Este miembro creará una fila o columna para agregar comentarios que serán guardados en los comentarios de celdas en el ámbito correcto.
La dimensión usada para seleccionar este miembro debe ser filtrada con N miembros usando el popup de selección de miembros e incluso con parámetros. Esta selección será utilizada para saber en qué miembros debemos guardar el comentario en esta dimensión. El miembro comentario solo puede ser usado en una única dimensión por formulario y una única vez.
Sintaxis:
Comment([context])
Parámetros:
Nombre | Descripción | Tipos de parámetros | Obligatorio | Repeticiones |
---|---|---|---|---|
Context | Contexto del comentario | Dimensión , Miembro | Sí | No |
Para que podamos insertar caracteres de texto en los comentarios, es necesario cambiar el tipo del miembro calculado a Texto.
Ejemplo: Podemos colocarlo en columna, después de las 12 columnas con el mes y guardar el comentario en las 12 columnas replicando o solo en el año, entonces el filtro en la dimensión sobre el miembro comentario es usado para saber de dónde buscar y dónde guardar el comentario.
Descripción:
Crea un encabezado con celdas en blanco.
Sintaxis:
Header([Title])
Parámetros:
Nombre | Descripción | Tipos de parámetros | Obligatorio | Repeticiones |
---|---|---|---|---|
Title | Título del encabezado | "Texto" | Sí | No |
Para la inserción del parámetro del tipo Title, es necesario que el texto solicitado esté entre comillas (""). Este miembro sirve solo como encabezado, sus celdas siempre estarán en blanco.
Ejemplo: En el campo de expresión tendremos un texto similar a este:
Header("Ejemplo Header")
.
Descripción:
Busca el valor de un miembro en una determinada dimensión. La cantidad identifica cuántos miembros se debe subir en el árbol jerárquico de la dimensión seleccionada.
Sintaxis:
Parent([Input], [Dimension], [Quantity])
Parámetros:
Nombre | Descripción | Tipos de parámetros | Obligatorio | Repeticiones |
---|---|---|---|---|
Input | Valor | Dimensión, Miembro | Sí | No |
Dimensión | Dimensión para subir en la jerarquía | Dimensión | Sí | No |
Quantity | Cantidad de niveles a subir | Número | Sí | No |
Ejemplo: En el campo de expresión tenemos:
Parent([Cuenta].[Financiero], [Tiempo], 1)
.
En esta expresión, los valores del miembro Financiero de la dimensión Cuenta serán replicados en el siguiente nivel jerárquico de la dimensión Tiempo.
Si el valor añadido en el parámetro "Quantity" fuera 2, los valores serían replicados 2 niveles jerárquicos arriba. Al subir un nivel, estaremos replicando los valores en el trimestre; al subir 2 niveles, estaremos replicando el valor en el semestre y así sucesivamente.
Descripción:
Busca el valor del miembro anterior.
Sintaxis:
PrevMember([Base])
Parámetros:
Nombre | Descripción | Tipos de parámetros | Obligatorio | Repeticiones |
---|---|---|---|---|
Base | Miembro Base | Dimensión, Miembro | Sí | No |
Ejemplo: En el campo de expresión tendremos un texto similar a este:
PrevMember([Cuenta].[Total de los Ítems Vendidos])
.
Este ejemplo mostrará el valor anterior del miembro en el período siguiente.
Si tenemos el valor "2.500" en el mes de Enero/24 y "3.000" en el mes de Febrero/24, en el miembro PrevMember tendremos "2.500" en el mes de Febrero/24 y "3.000" en el mes de Marzo/24 y así consecutivamente.
Descripción:
Busca la propiedad de un miembro.
Sintaxis:
[Function Result] = Property([Property], [Context])
Parámetros:
Nombre | Descripción | Tipos de parámetros | Obligatorio | Repeticiones |
---|---|---|---|---|
Function Result | Property | Dimensión | Sí | No |
Property | Valor que se desea buscar del atributo | Dimensión | Sí | No |
Context | Contexto (miembro) que se desea buscar el valor | Dimensión, Miembro | Sí | No |
Para utilizar correctamente la función Property, necesitaremos que la propiedad que deseamos exhibir del miembro en la dimensión seleccionada esté rellenada y que el tipo del miembro calculado sea cambiado a texto. En nuestro ejemplo utilizaremos la propiedad "Descripción" de la dimensión "Cuenta".
Ejemplo: Si queremos mostrar la descripción de los miembros de la dimensión cuenta, tendremos la siguiente expresión: Property([Cuenta].[Descripción], [Cuenta].[GetDataTableData])
.
En el parámetro "Function Result" de este miembro calculado, podemos seleccionar cualquier dimensión, la selección de la misma no afectará el resultado final.
Descripción:
Función utilizada en la dimensión tiempo para buscar el valor de un tiempo relativo al parámetro.
Sintaxis:
TimeRelative([Base], [Shift], [Relative])
Parámetros:
Nombre | Descripción | Tipos de parámetros | Obligatorio | Repeticiones |
---|---|---|---|---|
Base | Valor base a ser acumulado | Miembro (dimensión tiempo) | Sí | No |
Shift | Cantidad de períodos agregados | Número | No | No |
Relative | Tiempo relativo a la base | Miembro (dimensión tiempo) | No | No |
Ejemplo: Si queremos mostrar el valor de enero de 2024 y compararlo con el valor de enero de 2025, tendremos la siguiente expresión:
TimeRelative([Tiempo].[Todos].[2024].[1S/24].[1T/24].[Enero/24], 0, [Tiempo].[Todos].[2025])
.
Vamos a crear un formulario con la dimensión tiempo en columnas e insertar el miembro "Enero/24", junto con el miembro calculado con la expresión anterior. Este miembro calculado mostrará siempre el valor de "Enero/25".
El parámetro shift siempre se aplicará horizontalmente en el miembro resultante. Si tenemos Enero/25 con shift 1, el miembro resultante será en realidad Febrero/25. Si el shift es -1, el miembro resultante será Diciembre/24.
Podemos hacer la función TimeRelative más flexible. Para eso, necesitaremos crear algunos parámetros en nuestro formulario.
Vamos a crear 3 parámetros en la dimensión tiempo de nuestro formulario:
TimeRelative({Meses 2024}, 0, {Año 2025})
;Meses 2024
y el miembro calculado creado;Año 2024
, Año 2025
y Meses 2024
;Descripción:
Calcula el valor agregado durante un determinado período de tiempo.
Sintaxis:
TimeSpan([Initial], [Final])
Parámetros:
Nombre | Descripción | Tipos de parámetros | Obligatorio | Repeticiones |
---|---|---|---|---|
Initial | Inicio del período | Miembro (dimensión tiempo) | Sí | No |
Final | Fin del período | Miembro (dimensión tiempo) | Sí | No |
Ejemplo: Si el miembro inicial es Enero/2024 y el final Junio/2024, tendremos la siguiente expresión:
TimeSpan([Tiempo].[Todos].[2024].[1S/24].[1T/24].[Enero/24], [Tiempo].[Todos].[2024].[1S/24].[2T/24].[Junio/24])
.
El sistema mostrará el valor de la suma de enero a junio de 2024.
Descripción:
La función YTD (Year-To-Date) acumula el valor base en los períodos, iniciando al comienzo de cada año o año fiscal.
Sintaxis:
YTD([Base])
Parámetros:
Nombre | Descripción | Tipos de parámetros | Obligatorio | Repeticiones |
---|---|---|---|---|
Base | Valor a ser acumulado | Miembro de la dimensión tiempo | Sí | No |
Ejemplo: Si el parámetro o miembro base viene con Marzo/24, significa que tenemos que calcular el YTD hasta Marzo/24. En este caso, tendremos la siguiente expresión:
YTD([Tiempo].[Todos].[2024].[1S/24].[1T/24].[Marzo/24])
.
Para crear miembros calculados, necesitaremos seguir los siguientes pasos:
Ejemplo:
[Cuenta].[Miembro1] + [Cuenta].[Miembro2]
[Cuenta]
: Es la dimensión donde el miembro utilizado en la expresión se encuentra;
[Miembro1]
: Operando que será utilizado en el cálculo de la expresión y miembro de la dimensión Cuenta;
+
: Operador a ser utilizado en el cálculo de la expresión;
[Miembro2]
: Operando que será utilizado en el cálculo de la expresión y miembro de la dimensión Cuenta.
En este ejemplo, el valor del miembro calculado será igual al valor de [Miembro1]
más el valor de [Miembro2]
.
Entre los operadores tenemos: Suma (+), Resta (-), Multiplicación (*), División (/) y Potencia (^).
En el campo expresión, podremos utilizar el autocompletado digitando al menos 3 caracteres (después de 1 segundo se mostrarán las sugerencias) o haciendo clic en CTRL + ESPACIO para mostrar las sugerencias para inserción.
Tenemos un botón que muestra las Funciones disponibles para selección: {.no-margin-img}.
Las funciones son asistentes para la creación de miembros calculados, permitiendo cálculos más elaborados, además de ofrecer acceso a diversas informaciones del modelo.
En caso de que en nuestro formulario sea necesario utilizar miembros calculados con las funciones
TimeSpan
,TimeRelative
oYTD
, tendremos que, en la pestaña de propiedades, deshabilitar el checkbox "Mostrar filtro de año en la página". Este checkbox, si está habilitado, puede interferir en el correcto funcionamiento de las funciones.
Para eliminar un miembro calculado, seguir los siguientes pasos: