Escopo de expressão para totais, agregações e coleções internas em um relatório paginado (Construtor de Relatórios do Power BI)
APLICA-SE A: Power BI Report Builder Power BI Desktop
Ao escrever expressões, você descobrirá que o termo escopo é usado em vários contextos em relatórios paginados. O escopo pode especificar os dados a serem usados para avaliar uma expressão, o conjunto de caixas de texto em uma página renderizada, o conjunto de itens de relatório que podem ser mostrados ou ocultos com base em uma alternância. Você verá o termo escopo em tópicos relacionados à avaliação de expressão, sintaxe de função agregada, visibilidade condicional e também em mensagens de erro relacionadas a essas áreas. Use as descrições a seguir para ajudar a diferenciar qual significado de escopo se aplica:
Escopo de dados O escopo de dados é uma hierarquia de escopos que o processador de relatório usa quando combina dados de relatório e layout de relatório e cria regiões de dados, como tabelas e gráficos, nas quais exibir os dados. Compreender o escopo de dados ajuda você a obter os resultados desejados ao fazer o seguinte:
Escrever expressões que usam funções de agregação Especifique quais dados devem ser agregados. A localização da expressão no relatório influencia quais dados estão no escopo para cálculos agregados.
Adicionar minigráficos a uma tabela ou matriz Especifique um intervalo mínimo e máximo para eixos de gráfico para alinhar instâncias aninhadas em uma tabela ou matriz.
Adicionar indicadores a uma tabela ou matriz Especifique uma escala mínima e máxima para o medidor alinhar instâncias aninhadas em uma tabela ou matriz.
Escrever expressões de classificação Especifique um escopo de contenção que você pode usar para sincronizar a ordem de classificação entre vários itens de relatório relacionados.
Escopo da célula O escopo da célula é o conjunto de grupos de linhas e colunas em uma região de dados tablix à qual uma célula pertence. Por padrão, cada célula tablix contém uma caixa de texto. O valor da caixa de texto é a expressão. O local da célula determina indiretamente quais escopos de dados você pode especificar para cálculos agregados na expressão.
Escopo do item de relatório O escopo do item de relatório refere-se à coleção de itens em uma página de relatório renderizada. O processador de relatórios combina dados e elementos de layout de relatório para produzir uma definição de relatório compilada. Durante esse processo, as regiões de dados, como tabelas e matrizes, se expandem conforme necessário para exibir todos os dados do relatório. O relatório compilado é então processado por um renderizador de relatório. O renderizador de relatório determina quais itens de relatório aparecem em cada página. Em um servidor de relatório, cada página é renderizada conforme você a visualiza. Quando você exporta um relatório, todas as páginas são renderizadas. Compreender o escopo do item de relatório ajuda você a obter os resultados desejados ao fazer o seguinte:
Adicionar itens de alternância Especifique uma caixa de texto para adicionar a alternância que controla a visibilidade de um item de relatório. Você só pode adicionar uma alternância às caixas de texto que estão no escopo do item de relatório que você deseja alternar.
Escrever expressões em cabeçalhos e rodapés de página Especifique valores em expressões em caixas de texto ou outros itens de relatório que aparecem na página renderizada.
Compreender os escopos ajuda você a escrever com êxito expressões que fornecem os resultados desejados.
Compreender o escopo e a hierarquia de dados
O escopo de dados especifica um conjunto de dados de relatório. O escopo de dados tem uma hierarquia natural com uma relação de contenção inerente. Os escopos mais altos na hierarquia contêm escopos que são mais baixos na hierarquia. A lista de escopos de dados a seguir descreve a hierarquia em ordem da maioria dos dados para o mínimo de dados:
Conjuntos de dados, após a aplicação dos filtros do conjunto de dados Especifica o conjunto de dados do relatório vinculado à região de dados ou a um item de relatório no corpo do relatório. Os dados usados para agregação são do conjunto de dados de relatório depois que as expressões de filtro do conjunto de dados são aplicadas. Para conjuntos de dados compartilhados, isso significa os filtros na definição de conjunto de dados compartilhado e os filtros na instância do conjunto de dados compartilhado no relatório.
Regiões de dados Especifica os dados da região de dados depois de aplicar um filtro de região de dados e expressões de classificação. Os filtros de grupo não são usados ao calcular agregações para regiões de dados.
Grupos de regiões de dados, após a aplicação de filtros de grupo Especifica os dados depois que as expressões de grupo e os filtros de grupo são aplicados para o grupo pai e os grupos filho. Para uma tabela, este é o grupo de linhas e colunas. Para um gráfico, este é o grupo de séries e categorias. Para fins de identificação da contenção do escopo, cada grupo pai contém seus grupos filhos.
Regiões de dados aninhadas Especifica os dados para a região de dados aninhada no contexto da célula à qual ela foi adicionada e após a aplicação das expressões de filtro e classificação da região de dados aninhada.
Grupos de linhas e colunas para as regiões de dados aninhadas Especifica os dados após a aplicação das expressões de grupo de regiões de dados aninhadas e dos filtros de grupo.
Compreender os escopos contidos e contidos é importante quando você escreve expressões que incluem funções agregadas.
Escopo e expressões da célula
Ao especificar um escopo, você está indicando ao processador de relatório quais dados usar para um cálculo agregado. Dependendo da expressão e do local da expressão, os escopos válidos podem ser escopos de contenção, também conhecidos como escopos pai, ou escopos contidos, também conhecidos como escopos filho ou aninhados. Em geral, não é possível especificar uma instância de grupo individual em um cálculo agregado. Você pode especificar uma agregação em todas as instâncias do grupo.
Como o processador de relatório combina dados de um conjunto de dados de relatório com a região de dados tablix, ele avalia expressões de grupo e cria as linhas e colunas necessárias para representar as instâncias do grupo. O valor das expressões em uma caixa de texto em cada célula tablix é avaliado no contexto do escopo da célula. Dependendo da estrutura tablix, uma célula pode pertencer a vários grupos de linhas e grupos de colunas. Para funções agregadas, você pode especificar qual escopo usar usando um dos seguintes escopos:
Escopo padrão Os dados que estão no escopo para cálculos quando o processador de relatório avalia uma expressão. O escopo padrão é o conjunto mais interno de grupos ao qual a célula ou ponto de dados pertence. Para uma região de dados tablix, o conjunto pode incluir grupos de linhas e colunas. Para uma região de dados do gráfico, o conjunto pode incluir grupos de categorias e séries.
Escopo nomeado O nome de um conjunto de dados, uma região de dados ou um grupo de regiões de dados que está no escopo da expressão. Para cálculos agregados, você pode especificar um escopo de contenção. Não é possível especificar um escopo nomeado para um grupo de linhas e um grupo de colunas em uma única expressão. Não é possível especificar um escopo contido, a menos que a expressão seja para uma agregação de uma agregação.
A expressão a seguir gera o intervalo de anos entre SellStartDate e LastReceiptDate. Esses campos estão em dois conjuntos de dados diferentes, DataSet1 e DataSet2. A Primeira Função (Construtor de Relatórios), que é uma função agregada, retorna o primeiro valor de SellStartDate em DataSet1 e o primeiro valor de LastReceiptDate em DataSet2.
=DATEDIFF("yyyy", First(Fields!SellStartDate.Value, "DataSet1"), First(Fields!LastReceiptDate.Value, "DataSet2"))
Escopo do domínio Também chamado de escopo de sincronização. Um tipo de escopo de dados que se aplica à avaliação de expressão para regiões de dados aninhadas. O escopo do domínio é usado para especificar agregações em todas as instâncias de um grupo para que as instâncias aninhadas possam ser alinhadas e facilmente comparadas. Por exemplo, você pode alinhar o intervalo e a altura dos minigráficos incorporados em uma tabela para que os valores se alinhem.
Em alguns locais de um relatório, você deve especificar um escopo. Por exemplo, para uma caixa de texto na superfície de design, você deve especificar o nome do conjunto de dados a ser usado: =Max(Fields!Sales.Value,"Dataset1")
. Em outros locais, há um escopo padrão implícito. Por exemplo, se você não especificar uma agregação para uma caixa de texto em um escopo de grupo, a agregação padrão First será usada.
Cada tópico de função agregada lista os escopos que são válidos para seu uso. Para obter mais informações, consulte Referência de funções agregadas (Construtor de Relatórios do Power BI).
Exemplo de expressões agregadas para uma região de dados de tabela
Para escrever expressões que especificam escopos não padrão, é preciso alguma prática. Para ajudá-lo a entender os diferentes escopos, use a figura e a tabela a seguir. A figura rotula cada célula em uma tabela de informações de vendas que exibe a quantidade de itens vendidos por ano e trimestre e também por território de vendas. Observe as pistas visuais nas alças de linha e coluna que exibem a estrutura do grupo de linhas e colunas, indicando grupos aninhados. A tabela tem a seguinte estrutura:
Um cabeçalho de tabela que contém a célula de canto e três linhas que incluem os cabeçalhos do grupo de colunas.
Dois grupos de linhas aninhados com base na categoria chamada Cat e na subcategoria chamada SubCat.
Dois grupos de colunas aninhadas com base no ano chamado Ano e trimestre chamado Qtr.
Uma coluna de totais estáticos chamada Totais.
Um grupo de colunas adjacente baseado no território de vendas chamado Território.
O cabeçalho da coluna para o grupo de territórios foi dividido em duas células para fins de exibição. A primeira célula exibe o nome e os totais do território, e a segunda célula tem texto de espaço reservado que calculou a contribuição percentual de cada território para todas as vendas.
Suponha que o conjunto de dados é chamado DataSet1 e a tabela é chamada Tablix1. A tabela a seguir lista o rótulo da célula, o escopo padrão e exemplos. Os valores para texto de espaço reservado são mostrados por sintaxe de expressão.
Cell | Âmbito por defeito | Rótulos de espaço reservado | Valores de texto ou espaço reservado |
---|---|---|---|
C01 | Tablix1 | [Soma(Qtd)] | Agregados e Âmbito=Sum(Fields!Qty.Value) |
C02 | Grupo de colunas exteriores "Ano" | [Ano] ([AnoQtd]) |
=Fields!Year.Value =Sum(Fields!Qty.Value) |
C03 | Tablix1 | [Soma(Qtd)] | Totais=Sum(Fields!Qty.Value) |
C04 | Grupo de colunas de pares "Território" | ([Total]) | Territory=Sum(Fields!Qty.Value) |
C05 | Grupo interno "Qtr" | [Qtr] ([QtrQty]) |
PERGUNTAS E=Fields!Qtr.Value =Sum(Fields!Qty.Value) |
C06 | Grupo de colunas de pares "Território" | [Território] ([Tty]) [Pct] |
=Fields!Territory.Value =Sum(Fields!Qty.Value) =FormatPercent(Sum(Fields!Qty.Value,"Territory")/Sum(Fields!Qty.Value,"Tablix1"),0) & " of " & Sum(Fields!Qty.Value,"Tablix1") |
C07 | Grupo da linha exterior "Cat" | [Gato] [Soma(Qtd)] |
=Fields!Cat.Value =Sum(Fields!Qty.Value) |
C08 | O mesmo que C07 | ||
C09 | Grupo de linhas externas "Cat" e grupo de colunas internas "Qtr" | [Soma(Qtd)] | =Sum(Fields!Qty.Value) |
C10 | O mesmo que C07 | <<Expr>> | =Sum(Fields!Qty.Value) & ": " & FormatPercent(Sum(Fields!Qty.Value)/Sum(Fields!Qty.Value,"Tablix1"),0) & " of " & Sum(Fields!Qty.Value,"Tablix1") |
C11 | Grupo de linhas exteriores "Gato" e grupo de colunas "Território" | <<Expr>> | =Sum(Fields!Qty.Value) & ": " & FormatPercent(Sum(Fields!Qty.Value)/Sum(Fields!Qty.Value,"Territory"),0) & " of " & Sum(Fields!Qty.Value,"Territory") |
C12 | Grupo de linha interna "Subcat" | [Subcat] [Soma(Qtd)] |
=Fields!SubCat.Value =Sum(Fields!Qty.Value) |
C13 | Grupo de linhas internas "Subcat" e grupo de colunas internas "Qtr" | [Soma(Qtd)] | =Sum(Fields!Qty.Value) |
C14 | Grupo de linha interna "Subcat" | <<Expr>> | =Sum(Fields!Qty.Value) & ": " & FormatPercent(Sum(Fields!Qty.Value)/Sum(Fields!Qty.Value,"Cat"),0) & " of " & Sum(Fields!Qty.Value,"Cat") |
C15 | Grupo de linhas internas "Subcat" e grupo de colunas "Território" | <<Expr>> | =Sum(Fields!Qty.Value) & ": " & FormatPercent(Code.CalcPercentage(Sum(Fields!Qty.Value),Sum(Fields!Qty.Value,"Cat")),0) & " of " & Sum(Fields!Qty.Value,"Cat") |
Para mais informações sobre estes assuntos:
- Interpretando pistas visuais em regiões de dados tablix: Células, Linhas e Colunas da Região de Dados Tablix (Construtor de Relatórios do Power BI).
- A região de dados tablix: Células, linhas e colunas da região de dados tablix (Construtor de Relatórios).
- Expressões: usos de expressões em relatórios (Construtor de Relatórios do Power BI)
- Agregações: Referência de funções agregadas (Construtor de Relatórios do Power BI).
Sincronizar escalas para minigráficos
Para comparar valores ao longo do tempo no eixo horizontal de um gráfico de minigráfico aninhado em uma tabela ou matriz, você pode sincronizar os valores do grupo de categorias. Isso é chamado de alinhamento de eixos. Ao selecionar a opção para alinhar eixos, o relatório define automaticamente valores mínimos e máximos para um eixo e fornece espaços reservados para valores agregados que não existem em todas as categorias. Isso faz com que os valores no minigráfico fiquem alinhados em todas as categorias e permite comparar valores para cada linha de dados agregados. Ao selecionar essa opção, você está alterando o escopo da avaliação da expressão para o escopo do domínio. Definir o escopo do domínio para um gráfico aninhado também controla indiretamente a atribuição de cores para cada categoria na legenda.
Por exemplo, em um minigráfico que mostra tendências semanais, suponha que uma cidade tenha dados de vendas por 3 meses e outra cidade tenha dados de vendas por 12 meses. Sem escalas sincronizadas, o minigráfico para a primeira cidade teria apenas 3 bares e eles seriam muito mais amplos e ocupariam o mesmo espaço que o conjunto de bares de 12 meses para a segunda cidade.
Para obter mais informações, consulte Alinhar os dados em um gráfico em uma tabela ou matriz (Construtor de Relatórios do Power BI).
Sincronizar intervalos para indicadores
Para especificar os valores de dados a serem usados para um conjunto de indicadores, você deve especificar um escopo. Dependendo do layout da região de dados que contém o indicador, você especifica um escopo ou um escopo que contém. Por exemplo, em uma linha de cabeçalho de grupo associada a vendas de categoria, um conjunto de setas (para cima, para baixo, lateralmente) pode indicar valores de vendas relativos a um limite. O escopo que contém é o nome da tabela ou matriz que contém os indicadores.
Para obter mais informações, consulte Definir escopo de sincronização (Construtor de Relatórios do Power BI).
Especificar escopos do cabeçalho ou rodapé da página
Para exibir dados diferentes em cada página de um relatório, adicione expressões a um item de relatório que deve estar na página renderizada. Como um relatório é dividido em páginas enquanto é renderizado, somente durante a renderização é possível determinar quais itens existem em uma página. Por exemplo, uma célula em uma linha de detalhes tem uma caixa de texto que tem muitas ocorrências em uma página.
Para isso, há uma coleção global chamada ReportItems. Este é o conjunto de caixas de texto na página atual.
Para obter mais informações, consulte Cabeçalhos e rodapés de página (Construtor de Relatórios do Power BI) e Referências de coleção ReportItems (Construtor de Relatórios do Power BI).
Especificar um item de alternância para detalhamento e visibilidade condicional
As alternâncias são imagens de sinal de mais ou menos que são adicionadas a uma caixa de texto e que um usuário pode selecionar para mostrar ou ocultar outros itens de relatório. Na página Visibilidade da maioria das propriedades do item de relatório, você pode especificar a qual item de relatório adicionar a alternância. O item de alternância deve estar em um escopo de contenção mais alto do que o item a ser mostrado ou ocultado.
Em uma região de dados tablix, para criar um efeito de detalhamento em que você seleciona uma caixa de texto para expandir a tabela para mostrar mais dados, você deve definir a propriedade Visibility no grupo e selecionar como alternância uma caixa de texto em um cabeçalho de grupo associado a um grupo que contém.
Para obter mais informações, consulte Adicionar uma ação de expandir ou recolher a um item (Construtor de Relatórios do Power BI).
Especificar uma expressão de classificação para sincronizar a ordem de classificação
Ao adicionar um botão de classificação interativo a uma coluna de tabela, você pode sincronizar a classificação de vários itens que têm um escopo de contenção comum. Por exemplo, você pode adicionar um botão de classificação a um cabeçalho de coluna em uma matriz e especificar o escopo que contém como o nome do conjunto de dados vinculado à matriz. Quando um usuário seleciona o botão de classificação, não apenas as linhas da matriz são classificadas, mas também os grupos de séries de gráficos vinculados ao mesmo conjunto de dados são classificados. Dessa forma, todas as regiões de dados que dependem desse conjunto de dados podem ser sincronizadas para mostrar a mesma ordem de classificação.
Para obter mais informações, consulte Filtrar, agrupar e classificar dados (Construtor de Relatórios do Power BI).
Suprimir valores nulos ou zero em uma célula
Para muitos relatórios, os cálculos com escopo para grupos podem criar muitas células com valores zero (0) ou nulos. Para reduzir a desordem no relatório, adicione uma expressão para retornar espaços em branco se o valor agregado for 0. Para obter mais informações, consulte "Exemplos que suprimem valores nulos ou zero" em Exemplos de expressão (Construtor de Relatórios do Power BI).