Solicitud de datos de subtotales agregados

La API de totales y subtotales permite que los objetos visuales personalizados con una vista de datos de matriz soliciten datos de subtotales agregados del host de Power BI. Los subtotales se calculan para todo el modelo semántico de la matriz, o bien se especifican para los niveles individuales de la jerarquía de datos de la matriz. Vea el informe de ejemplo para obtener un ejemplo de Total and Subtotal API en un objeto visual de Power BI.

Nota:

La solicitud de datos de subtotal se admite en la versión 2.6.0 y posteriores. La propiedad rowSubtotalType está disponible en la versión 5.1.0 y posteriores. Para averiguar qué versión usa, compruebe apiVersion en el archivo pbiviz.json.

Cada vez que un objeto visual actualiza sus datos, emite una solicitud de captura de datos al back-end de Power BI. Estas solicitudes de datos suelen ser para los valores de los campos que el usuario ha arrastrado al área de campos del objeto visual. En ocasiones, el objeto visual necesita que se apliquen agregaciones o subtotales diferentes (como una suma o un recuento) a las áreas de campos. Total and Subtotal API le permite personalizar la consulta de datos salientes para solicitar más datos de agregación o subtotales.

Screenshot of visual with subtotals row and columns highlighted.

API de subtotales

La API ofrece la personalización siguiente para cada tipo de vista de datos (actualmente, solo vistas de datos de matriz).

  • rowSubtotals: (booleano) indica si se deben solicitar datos de subtotales para todos los campos del área de campos de filas.
  • rowSubtotalsPerLevel: (booleano) indica si los datos de subtotales se pueden alternar para campos individuales en el área de campos de filas.
  • columnSubtotals: (booleano) indica si se deben solicitar datos de subtotales para todos los campos del área de campos de columnas.
  • columnSubtotalsPerLevel: (booleano) indica si los datos de subtotales se pueden alternar para campos individuales en el área de campos de columnas.
  • levelSubtotalEnabled: (booleano) indica si se solicitan los subtotales para la fila o columna. A diferencia de las demás propiedades, esta se aplica a filas o columnas individuales.
  • rowSubtotalsType: ("Superior" o "Inferior") indica si la fila con los datos totales se debe recuperar antes (top) o después (bottom) que el resto de los datos. Si esta propiedad se establece en bottom, el total solo se puede mostrar después de capturar todos los datos. El valor predeterminado es bottom.

A cada uno de los modificadores mostrados antes se le asigna un valor basado en las propiedades relacionadas en el panel de propiedades y los valores predeterminados.

Cómo usar la API de subtotales

El archivo capabilities.json del objeto visual tiene que:

  • especificar la propiedad a la que se asigna cada uno de los modificadores anteriores.
  • proporcionar el valor predeterminado que se usará si la propiedad no está definida.

Los modificadores usan un formato como el del ejemplo siguiente:

    "rowSubtotals": { 
                "propertyIdentifier": { 
                    "objectName": "subTotals", 
                    "propertyName": "rowSubtotals" 
                }, 
                "defaultValue": true 
            },

En el código anterior se indica que los subtotales de fila los habilita la propiedad rowSubtotals del objeto subTotals. La propiedad tiene un valor predeterminado de true.

La API se habilita automáticamente para un objeto visual siempre que la estructura de subtotales y todas las asignaciones de modificadores se definen en el archivo capabilities.json.

El código siguiente es un ejemplo de la configuración completa de la API completa en el archivo capabilities.json (copiado del objeto visual de ejemplo de la API):

"subtotals": { 
        "matrix": { 
            "rowSubtotals": { 
                "propertyIdentifier": { 
                    "objectName": "subTotals", 
                    "propertyName": "rowSubtotals" 
                }, 
                "defaultValue": true 
            }, 
            "rowSubtotalsPerLevel": { 
                "propertyIdentifier": { 
                    "objectName": "subTotals", 
                    "propertyName": "perRowLevel" 
                }, 
                "defaultValue": false 
            }, 
            "columnSubtotals": { 
                "propertyIdentifier": { 
                    "objectName": "subTotals", 
                    "propertyName": "columnSubtotals" 
                }, 
                "defaultValue": true 
            }, 
            "columnSubtotalsPerLevel": { 
                "propertyIdentifier": { 
                    "objectName": "subTotals", 
                    "propertyName": "perColumnLevel" 
                }, 
                "defaultValue": false 
            }, 
            "levelSubtotalEnabled": { 
                "propertyIdentifier": { 
                    "objectName": "subTotals", 
                    "propertyName": "levelSubtotalEnabled" 
                }, 
                "defaultValue": true 
            },
            "rowSubtotalsType": {
                "propertyIdentifier": {
                    "objectName": "subtotals",
                    "propertyName": "rowSubtotalsType"
                },
                "defaultValue": "Bottom"
            }
        } 
    }

Es importante que la función enumerateProperties() del objeto visual esté alineada con los valores predeterminados especificados en el archivo capabilities.json. La lógica de personalización funciona según los valores predeterminados especificados. Si la función enumerateProperties() y los valores predeterminados no están alineados, es posible que las personalizaciones de subtotal reales difieran de las expectativas del usuario.

enum RowSubtotalType {
        Top = "Top",
        Bottom = "Bottom",
   }

Para revisar las personalizaciones disponibles, expanda el menú desplegable Subtotales en el panel de propiedades Formato. Modifique la configuración de subtotales y realice el seguimiento de los cambios en la presentación de subtotales (denominados Totales) en el panel Visualizaciones.

Screenshot of the Power BI Visualizations pane, which shows the Column and Row subtotals field wells.

Consideraciones y limitaciones

  • La propiedad rowSubtotalsType solo está disponible para las filas. No se pueden establecer subtotales de columna al principio de una columna.

  • La característica expandir y contraer invalida rowSubtotals. Los subtotales se muestran cuando se expanden las filas, incluso si rowSubtotals se establece en false.

Incorporación de interactividad a un objeto visual mediante las selecciones de objetos visuales de Power BI