Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La función RollupChildren de expresiones multidimensionales (MDX) [Script for Search and Replace] simplifica los hijos de un miembro, aplicando un operador unario diferente a cada hijo y devuelve el valor de esta simplificación como un número. El operador unario puede proporcionarse a través de una propiedad de miembro asociada con el miembro hijo, o el operador puede ser una expresión de cadena proporcionada directamente a la función.
Ejemplos de la función "RollupChildren"
El uso de la RollupChildren función en instrucciones MDX (Expresiones multidimensionales) es fácil de explicar, pero el efecto de esta función en las consultas MDX puede ser de gran alcance.
El efecto de la función RollupChildren se produce en consultas MDX diseñadas para realizar análisis selectivos en los datos existentes del cubo. Por ejemplo, la tabla siguiente contiene una lista de miembros secundarios para el miembro primario Net Sales, con sus operadores unarios (representados por la UNARY_OPERATOR propiedad miembro) que se muestran entre paréntesis.
| Miembro primario | Miembro menor |
|---|---|
| Ventas netas | Ventas nacionales (+) Devoluciones nacionales (-) Ventas extranjeras (+) Devoluciones externas (-) |
Actualmente, el miembro primario de Ventas netas proporciona el total de ventas netas restando los valores brutos de las ventas nacionales y extranjeras, con las devoluciones nacionales y extranjeras restadas como parte de la consolidación.
Sin embargo, quiere proporcionar una previsión rápida y sencilla de las ventas brutas nacionales y extranjeras más 10%, ignorando los retornos nacionales y extranjeros. Para calcular este valor, puede usar la RollupChildren función de una de estas dos maneras: con una propiedad miembro personalizada o con la IIf función .
Usar una propiedad miembro personalizada
Si el cálculo de agregación es una operación que se realiza con frecuencia, un método consiste en crear una propiedad de miembro que almacene el operador que se usará para cada hijo en una función específica. En la tabla siguiente se muestran operadores unarios válidos y se describe el resultado esperado.
| Operador | Resultado |
|---|---|
| + | total = total + nodo hijo actual |
| - | total = total - hijo actual |
| * | total = total * elemento hijo actual |
| / | total = total / niño actual |
| ~ | El hijo no se usa en el conjunto acumulativo. Se ignora el valor del niño. |
Por ejemplo, se podría crear una propiedad miembro denominada SALES_OPERATOR y los siguientes operadores unarios se asignarían a esa propiedad miembro, como se muestra en la tabla siguiente.
| Miembro primario | Miembro infantil |
|---|---|
| Ventas netas | Ventas nacionales (+) Devoluciones nacionales (~) Ventas extranjeras (+) Devoluciones externas (~) |
Con esta nueva propiedad miembro, la siguiente instrucción MDX realizaría la operación de estimación de ventas brutas de forma rápida y eficaz (ignorando los retornos extranjeros y nacionales):
RollupChildren([Net Sales], [Net Sales].CurrentMember.Properties("SALES_OPERATOR")) * 1.1
Cuando se llama a la función, el valor de cada hijo se aplica a un total mediante el operador almacenado en la propiedad de miembro. Se omiten los miembros que se refieren a los retornos nacionales y extranjeros, y el total acumulado devuelto por la función RollupChildren se multiplica por 1,1.
Uso de la función IIf
Si la operación de ejemplo no es habitual o si la operación solo se aplica a una consulta MDX, la función IIf se puede usar con la RollupChildren función para proporcionar el mismo resultado. La siguiente consulta MDX proporciona el mismo resultado que el ejemplo de MDX anterior, pero lo hace sin recurrir al uso de una propiedad miembro personalizada:
RollupChildren([Net Sales], IIf([Net Sales].CurrentMember.Properties("UNARY_OPERATOR") = "-", "~", [Net Sales].CurrentMember.Properties("UNARY_OPERATOR))) * 1.1
La instrucción MDX examina el operador unario del miembro hijo. Si el operador unario se usa para la resta (como en el caso de los miembros de devoluciones nacionales y extranjeras), la función IIf reemplaza al operador unario de tilde (~). De lo contrario, la función IIf usa el operador unario del miembro hijo. Por último, el total acumulado devuelto se multiplica por 1,1 para proporcionar el valor de previsión de ventas brutas nacionales y extranjeras.