Partilhar via


Solicitar dados agregados do subtotal

A API Total e Subtotal permite que visuais personalizados com uma exibição de dados de matriz solicitem dados de subtotal agregados do host do Power BI. Os subtotais são calculados para todo o modelo semântico da matriz ou especificados para níveis individuais da hierarquia de dados da matriz. Consulte o relatório de exemplo para obter um exemplo da API Total e Subtotal em um visual do Power BI.

Nota

A solicitação de dados de subtotal é suportada na versão 2.6.0 e posterior. A rowSubtotalType propriedade está disponível na versão 5.1.0 e posterior. Para descobrir qual versão você está usando, verifique o apiVersion no arquivo pbiviz.json .

Sempre que um visual atualiza seus dados, o visual emite uma solicitação de busca de dados para o back-end do Power BI. Essas solicitações de dados geralmente são para valores dos campos que o usuário arrastou para os poços de campo do visual. Às vezes, o visual precisa de outras agregações ou subtotais (por exemplo, soma ou contagem) aplicados aos poços de campo. A API Total e Subtotal permite personalizar a consulta de dados de saída para solicitar mais dados de agregação ou subtotal.

Screenshot of visual with subtotals row and columns highlighted.

A API de subtotais

A API oferece a seguinte personalização para cada tipo de exibição de dados (atualmente, apenas exibições de dados de matriz).

  • rowSubtotals: (booleano) Indica se os dados do subtotal devem ser solicitados para todos os campos no campo de linhas.
  • rowSubtotalsPerLevel: (booleano) Indica se os dados do subtotal podem ser alternados para campos individuais no campo da linha.
  • columnSubtotals: (booleano) Indica se os dados do subtotal devem ser solicitados para todos os campos no campo de colunas.
  • columnSubtotalsPerLevel: (booleano) Indica se os dados do subtotal podem ser alternados para campos individuais no campo de colunas bem.
  • levelSubtotalEnabled: (booleano) Indica se os subtotais são solicitados para a linha ou coluna. Ao contrário de todas as outras propriedades, esta propriedade é aplicada a linhas ou colunas individuais.
  • rowSubtotalsType: ("Superior" ou "Inferior") Indica se a linha com o total de dados deve ser recuperada antes () ou depoisbottom (top) do resto dos dados. Se essa propriedade estiver definida como bottom, o total só poderá ser exibido depois que todos os dados tiverem sido buscados. A predefinição é bottom.

A cada uma das opções listadas anteriormente é atribuído um valor com base nas propriedades relacionadas no painel de propriedades e nos padrões.

Como usar a API subtotal

O arquivo capabilities.json do visual deve:

  • Especifique a propriedade para a qual cada uma das opções acima é mapeada.
  • Forneça o valor padrão a ser usado se a propriedade for indefinida.

As opções usam um formato como o exemplo a seguir:

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

O código anterior indica que os subtotais de linha são habilitados pela propriedade rowSubtotals no subTotals objeto. A propriedade tem um valor padrão de true.

A API é ativada automaticamente para um visual sempre que a estrutura dos subtotais e todos os mapeamentos de switch são definidos no arquivo capabilities.json .

O código a seguir é um exemplo da configuração completa da API no arquivo capabilities.json (copiado do visual de exemplo da 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"
            }
        } 
    }

É importante que a enumerateProperties() função do visual esteja alinhada com os padrões especificados no arquivo capabilities.json . A lógica de personalização opera de acordo com os padrões especificados. Se a enumerateProperties() função e os padrões não estiverem alinhados, as personalizações reais do subtotal podem diferir das expectativas do usuário.

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

Para revisar as personalizações disponíveis, expanda o menu suspenso Subtotais no painel de propriedades Formatar. Modifique as configurações de subtotais e controle as alterações na apresentação de subtotais (chamada Totais) no painel Visualizações.

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

Considerações e limitações

  • A rowSubtotalsType propriedade só está disponível para linhas. Não é possível definir subtotais de coluna para o início de uma coluna.

  • O recurso expandir e recolher substitui o rowSubtotals. Os subtotais são exibidos quando as linhas são expandidas, mesmo que rowSubtotals esteja definido como false.

Adicionar interatividade ao visual usando seleções visuais do Power BI