Solicitud de datos 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 matriz o se especifican para niveles individuales de la jerarquía de datos de 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 subtotales 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 está usando, compruebe el apiVersion
en el archivo pbiviz.json.
Cada vez que un objeto visual actualiza sus datos, el objeto visual 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. La API Total y Subtotal le permiten personalizar la consulta de datos salientes para solicitar más datos de agregación o subtotales.
API de subtotales
La API ofrece la siguiente personalización 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 propiedad 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 enbottom
, el total solo se puede mostrar después de capturar todos los datos. El valor predeterminado esbottom
.
A cada uno de estos interruptores se le asigna un valor basado en las propiedades relacionadas y los valores predeterminados del panel de propiedades.
Cómo usar la API de subtotales
El archivo capabilities.json del objeto visual tiene que:
- especifique la propiedad a la que se asigna cada conmutador.
- proporcione el valor predeterminado que se usará si la propiedad no está definida.
Los interruptores usan un formato como el ejemplo siguiente:
"rowSubtotals": {
"propertyIdentifier": {
"objectName": "subTotals",
"propertyName": "rowSubtotals"
},
"defaultValue": true
},
El código anterior indica que las subtotales de fila están habilitadas por la propiedad rowSubtotals
en el objeto subTotals
. La propiedad tiene un valor predeterminado de true
.
La API se habilita automáticamente para un objeto visual cada vez que la estructura de subtotales y todas las asignaciones de conmutadores se definen en el archivo capabilities.json.
El código siguiente es un ejemplo de la configuración completa de la API en el archivo capabilities.json (copiado del objeto visual de ejemplo de 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 se alinee 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, las personalizaciones de subtotal reales pueden diferir 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 los subtotales y realice un seguimiento de los cambios realizados en la presentación de subtotales (denominada Totales) en el panel Visualizaciones.
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 sirowSubtotals
está establecido en false.
Contenido relacionado
Agregar interactividad al objeto visual mediante selecciones de objetos visuales de Power BI