Compartilhar via


Solicitar dados subtotais agregados

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

Nota

A solicitação de dados subtotais tem suporte na versão 2.6.0 e posterior. A propriedade rowSubtotalType está disponível na versão 5.1.0 e posterior. Para descobrir qual versão você está usando, verifique o apiVersion no arquivo de 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 são geralmente para valores dos campos que o usuário arrastou para as caixas 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 agregação ou dados subtotais.

Captura de tela do visual com linhas e colunas de subtotais realçadas.

A API de subtotais

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

  • rowSubtotals: (booliano) indica se os dados de subtotal devem ser solicitados para todos os campos na caixa de campo de linhas.
  • rowSubtotalsPerLevel: (booliano) indica se os dados de subtotal podem ser alternados para campos individuais na caixa de campo da linha.
  • columnSubtotals: (booliano) indica se os dados de subtotal devem ser solicitados para todos os campos na caixa de campo de colunas.
  • columnSubtotalsPerLevel: (booliano) indica se os dados de subtotal podem ser alternados para campos individuais na caixa de campo das colunas.
  • levelSubtotalEnabled: (booliano) Indica se os subtotais são solicitados para a linha ou coluna. Ao contrário de todas as outras propriedades, essa propriedade é aplicada a linhas ou colunas individuais.
  • rowSubtotalsType: ("Superior" ou "Inferior") indica se a linha com o total de dados deve ser recuperada antes (top) ou depois (bottom) do restante dos dados. Se essa propriedade estiver definida como bottom, o total só poderá ser exibido depois que todos os dados forem buscados. O padrão é bottom.

Cada um desses interruptores recebe um valor com base nas propriedades relacionadas no painel de propriedades e nos padrões predefinidos.

Como usar a API subtotal

O arquivo capabilities.json do visual deve:

  • especificar a propriedade à qual cada comutador está mapeado.
  • forneça o valor padrão a ser usado se a propriedade for indefinida.

Os interruptores usam um formato como o seguinte exemplo:

    "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 objeto subTotals. A propriedade tem um valor padrão de true.

A API é habilitada automaticamente para um visual sempre que a estrutura de subtotais e todos os mapeamentos de alternância 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 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"
            }
        } 
    }

É importante que a função enumerateProperties() do visual se alinhe 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 função enumerateProperties() e os padrões não estiverem alinhados, as personalizações subtotais reais poderão ser diferentes das expectativas do usuário.

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

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

Captura de tela do painel Visualizações do Power BI, que mostra os campos de subtotais Coluna e Linha.

Considerações e limitações

  • A propriedade rowSubtotalsType só está disponível para linhas. Você não pode definir subtotais de coluna para o início de uma coluna.

  • O recurso expandir e recolher substitui rowSubtotals. Os subtotais são exibidos quando as linhas são expandidas, mesmo se rowSubtotals estiver configurado como falso .

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