Compartilhar via


Filtrar, agrupar e classificar dados em relatórios paginados do Report Builder

Aplica-se a: Microsoft Report Builder (SSRS) Power BI Report Builder Report Designer no SQL Server Data Tools

Em um relatório paginado, as expressões são usadas para ajudar a controlar, organizar e classificar dados de relatório. Por padrão, quando você cria conjuntos de dados e cria o layout de relatório, as propriedades de itens de relatório são definidas automaticamente como expressões. Esse comportamento é baseado nos campos do conjunto de dados, parâmetros e outros itens que aparecem no painel Dados do Relatório. Também é possível adicionar um botão de classificação interativo a uma tabela ou célula de matriz para permitir que um usuário altere a ordem de classificação de linha interativamente para grupos ou linhas em grupos.

  • Expressões de filtro: uma expressão de filtro testa dados para inclusão ou exclusão com base em uma comparação que você especifica. Os filtros são aplicados aos dados em um relatório depois que os dados são recuperados de uma conexão de dados. É possível adicionar qualquer combinação de filtros aos seguintes itens:

    • Definição de um conjunto de dados compartilhado no servidor de relatório.
    • Instância de conjunto de dados compartilhado ou conjunto de dados inserido em um relatório.
    • Região de dados, como uma tabela ou um gráfico.
    • Grupo de regiões de dados, como um grupo de linhas em uma tabela ou um grupo de categorias em um gráfico.
  • Expressões de grupo: uma expressão de grupo organiza dados com base em um campo de conjunto de dados ou outro valor. As expressões de grupo são criadas automaticamente conforme você compila o layout de relatório. O processador de relatório avalia as expressões de grupo depois que os filtros são aplicados aos dados e conforme os dados de relatório e as regiões de dados são combinados. É possível personalizar uma expressão de grupo depois que ela é criada.

  • Expressões de classificação: uma expressão de classificação controla a ordem na qual os dados aparecem em uma região de dados. As expressões de classificação são criadas automaticamente conforme você compila o layout de relatório. Por padrão, uma expressão de classificação para um grupo é definida com o mesmo valor que a expressão de grupo. É possível personalizar uma expressão de classificação depois que ela é criada.

  • Classificação interativa: para permitir que um usuário classifique ou inverta a ordem de classificação de uma coluna, você pode adicionar um botão de classificação interativo a um cabeçalho de coluna ou célula de cabeçalho de grupo em uma tabela ou matriz.

Para ajudar seus usuários a personalizar o filtro, o grupo ou as expressões de classificação, você pode alterar uma expressão para adicionar uma referência a um parâmetro de relatório. Para obter mais informações, confira Parâmetros de relatório paginado (Report Builder).

Para obter mais informações e exemplos, consulte os seguintes artigos:

Observação

Você pode criar e modificar arquivos de definição de relatório paginado (.rdl) no Construtor de Relatórios da Microsoft, Construtor de Relatórios do Power BI e no Designer de Relatórios no SQL Server Data Tools.

Filtrar dados em um relatório

Os filtros são partes de um relatório que ajuda a controlar dados de relatório depois que eles são recuperados da conexão de dados. Use os filtros quando você não puder alterar uma consulta de conjunto de dados para filtrar os dados antes que eles sejam recuperados de uma fonte de dados externa.

Quando for possível, crie consultas de conjuntos de dados que retornem apenas os dados que você precisa exibir no relatório. Quando você reduz a quantidade dos dados que devem ser recuperados e processados, ajuda a melhorar o desempenho de relatório. Para obter mais informações, confira Conjuntos de Dados inseridos e compartilhados de relatório (Construtor de Relatórios e SSRS).

Depois que os dados forem recuperados da fonte de dados externa, você poderá adicionar filtros a:

  • Conjuntos de dados.
  • Regiões de dados.
  • Grupos de regiões de dados, incluindo grupos de detalhes.

Os filtros são aplicados em tempo de execução primeiro no conjunto de dados e, em seguida, ele prossegue para a região de dados. Depois, o filtro é aplicado no grupo, de cima para baixo nas hierarquias de grupo. Em uma tabela, matriz ou lista, os filtros para grupos de linha, grupos de coluna e grupos adjacentes são aplicados de forma independente. Em um gráfico, os filtros para grupos de categoria e grupos de série são aplicados de forma independente. Para obter mais informações, confira Adicionar filtros de conjunto de dados, de região de dados e de grupo a um relatório paginado (Report Builder).

Para cada filtro, você especifica uma equação de filtro. Uma equação de filtro inclui três elementos:

  • Campo ou expressão do conjunto de dados que especifica os dados a serem filtrados.
  • Operador.
  • Valor para comparação.

Apenas valores de dados que correspondem à condição do filtro são incluídos quando o item é processado.

Para permitir que os usuários controlem os dados em um relatório, inclua parâmetros em expressões de filtro. Para obter mais informações, consulte Referências de coleção de parâmetros em um relatório paginado (Report Builder).

Para personalizar uma exibição para cada usuário, é possível incluir uma referência ao campo UserID interno em um filtro. Para obter mais informações, consulte Referências globais e de usuário internas em um relatório paginado (Report Builder).

Agrupar dados em um relatório

Os grupos organizam dados em um relatório para exibir ou calcular os valores de agregação. O entendimento de como definir grupos e usar recursos de grupos ajuda a criar relatórios mais concisos.

As expressões de grupo são criadas automaticamente quando você:

  • Organiza campos de conjuntos de dados em um assistente de Tabela, Matriz, Gráfico ou campos de correspondência no assistente de Mapa.
  • Em uma tabela, matriz ou lista, adicione um campo à área Grupos de Linhas ou Grupos de Colunas no painel Agrupamento.
  • Em um gráfico, adicione um campo à área Grupos de Categorias ou de Grupos de Séries no painel de Dados do gráfico.
  • Em um mapa, especifique um campo para corresponder a elementos de mapas com dados analíticos no item do menu de contexto Dados da Camada.

Um grupo é uma parte da definição de relatório. Cada grupo tem um nome. Por padrão, o nome de grupo tem como base o campo de conjunto de dados do qual ele é proveniente.

Em uma região de dados de tabela ou matriz, é possível criar vários grupos de linhas e de colunas. Você pode exibir seus dados em uma hierarquia visual organizando grupos aninhados, grupos adjacentes e grupos de hierarquia recursiva (como um organograma).

O nome de grupo identifica um escopo de expressão. Você pode especificar o nome de um grupo como um escopo no qual:

  • Calcule agregados.
  • Organize os dados hierarquicamente e alterne a exibição de nós filhos de nós pai em um relatório de pesquisa.
  • Exiba diferentes exibições dos mesmos dados em várias regiões de dados.
  • Visualize dados resumidos em uma tabela, matriz, gráfico, medidor ou mapa.

Para obter mais informações, confira Escopo de expressão para totais, agregados e coleções internas em um relatório paginado (Report Builder).

Para agrupar em vários campos de conjunto de dados, adicione cada campo ao conjunto de expressões de grupo. Você também pode escrever suas próprias expressões de grupo no Microsoft Visual Basic. Por exemplo, você pode agrupar por um intervalo de valores ou usar um parâmetro de relatório para permitir que os usuários selecionem como agrupar os dados em uma região de dados. Para obter mais informações, confira Exemplos de expressões de grupo em relatórios paginados (Report Builder).

Para reduzir a quantidade de dados em cada página e ajudar a gerenciar o desempenho da apresentação do relatório, adicione quebras de página antes e depois de cada grupo ou de cada instância de grupo. Para obter mais informações, confira Adicionar uma quebra de página a um relatório paginado (Report Builder).

A criação de grupos de regiões de dados é um modo de organizar dados em um relatório. Há vários outros modos de organizar dados, cada um com suas vantagens. Para obter mais informações, confiraDetalhamento, drill down, sub-relatórios e regiões de dados aninhados em um relatório paginado (Report Builder).

Definir variáveis de grupo

Ao definir um grupo, você pode criar uma variável de grupo para usar em expressões cujo escopo seja o grupo e que seja acessada nos grupos aninhados. Uma variável de grupo é calculada uma vez por instância de grupo e é acessada de expressões em grupos filho. Por exemplo, para dados agrupados por região e sub-região, é possível calcular um imposto para cada região e usar esse imposto em cálculos do grupo de sub-regiões.

Para obter mais informações, confiraReferências de variáveis de relatório e grupo em um relatório paginado (Report Builder) e Escopo de expressão para totais, agregados e coleções internas em um relatório paginado (Report Builder).

Grupos e escopo em regiões de dados

Para fornecer várias exibições de dados do mesmo conjunto de dados, será possível especificar as mesmas expressões de grupo para cada região de dados. Por exemplo, é possível exibir dados categorizados em uma tabela para mostrar todos os dados detalhados e em um gráfico de pizza para mostrar agregações e ajudar a visualizar cada categoria em relação ao conjunto de dados inteiro. Para obter mais informações, confira Como vincular várias regiões de dados ao mesmo conjunto de dados em um relatório paginado (Report Builder).

Quando você aninha uma região de dados em uma célula de uma tabela, matriz ou lista, automaticamente está definindo o escopo dos dados como as associações de grupo internas da célula. Por exemplo, suponha que você adicione um gráfico a uma célula que está tanto no grupo de linhas quanto no grupo de colunas. O escopo dos dados disponíveis do gráfico é a instância de grupo de linhas internas e de colunas internas em tempo de execução. Para obter mais informações, confira Escopo de expressão para totais, agregados e coleções internas em um relatório paginado (Report Builder).

Classificar dados no relatório

Para controlar a ordem de classificação dos dados no relatório, é possível classificar dados em uma consulta de conjunto de dados ou definir uma expressão de classificação para um grupo ou região de dados. Você também pode adicionar botões de classificação interativos a tabelas e matrizes para permitir que um usuário altere a ordem das linhas.

Todos os três tipos de classificação podem ser combinados no mesmo relatório. Por padrão, a ordem de classificação é determinada pela ordem em que os dados são retornados pela consulta de conjunto de dados. As expressões de classificação são aplicadas na região de dados e no grupo de regiões de dados. As classificações interativas são aplicadas depois das expressões de classificação.

Para expressões que contêm funções de agregação, a ordem de classificação não afeta a maioria dos resultados. A ordem de classificação afeta valores de retorno das seguintes funções de agregação: Primeiro, Último e Anterior. Para obter mais informações, confira Funções do Construtor de Relatórios – referência de funções de agregação em relatórios paginados (Report Builder).

Classificar dados em uma consulta de conjunto de dados

Para pré-classificar os dados antes de serem recuperados para um relatório, inclua a ordem de classificação na consulta do conjunto de dados. Com a classificação de dados na consulta, o trabalho de classificação é feito pela fonte de dados em vez de pelo processador de relatório.

Para um tipo de fonte de dados do Microsoft SQL Server, é possível adicionar uma cláusula ORDER BY à consulta de conjunto de dados. Por exemplo, a seguinte consulta Transact-SQL classifica as colunas Sales e Region por Sales em ordem decrescente na tabela SalesOrders: SELECT Sales, Region FROM SalesOrders ORDER BY Sales DESC.

Observação

Nem todas as fontes de dados dão suporte à capacidade de especificar a ordem de classificação na consulta.

Classificar dados com expressões de classificação

Para classificar dados no relatório após ele ser recuperado da fonte de dados, você pode definir expressões de classificação em um grupo ou em uma região de dados Tablix, incluindo o grupo de Detalhes. A lista a seguir descreve o efeito da definição de expressões de classificação em diferentes itens:

  • Região de dados Tablix: defina expressões de classificação em uma tabela, matriz ou região de dados de lista para controlar a ordem de classificação dos dados na região de dados, após os filtros do conjunto de dados e da região de dados serem aplicados em tempo de execução.

  • Região de dados Tablix: defina expressões de classificação para cada grupo, incluindo o grupo de Detalhes, para controlar a ordem de classificação de instâncias do grupo. Por exemplo, no grupo de Detalhes, você controla a ordem das linhas de detalhes. Para um grupo filho, você controla a ordem das instâncias do grupo filho dentro do grupo pai. Por padrão, quando você cria um grupo, a expressão de classificação é definida para a expressão de grupo e para a ordem crescente.

    Quando você tem apenas um grupo de detalhes, pode definir uma expressão de classificação na consulta, na região de dados ou no grupo de detalhes para obter o mesmo efeito.

  • Região de dados em gráfico: defina uma expressão de classificação para os grupos de categorias e de séries para controlar a ordem de classificação dos pontos de dados. Por padrão, a ordem dos pontos de dados também é a ordem das cores na legenda do gráfico. Para saber mais, confira Formatar cores de série em um gráfico de relatório paginado (Report Builder).

  • Item de relatório de mapa: em geral, não é necessário classificar os dados para uma região de dados de mapa porque o mapa agrupa os dados para exibir em elementos de mapas.

  • Região de dados do Medidor: normalmente, não é necessário classificar dados para uma região de dados do medidor porque ele exibe um único valor relativo para um intervalo. Se forem necessários dados de classificação em um medidor, você deverá definir um grupo primeiro e, em seguida, definir uma expressão de classificação para o grupo.

Classificar por um valor diferente

É possível classificar as linhas em uma região de dados por um valor que não seja o valor de campo. Por exemplo, suponha que o campo Tamanho contenha valores de texto que correspondam a pequeno, médio, grande e extragrande. Por padrão, a expressão de classificação para uma linha de grupo se baseia em Tamanho que também é chamado [Size]. Para ter mais controle sobre os dados classificados, é possível adicionar um campo à consulta do conjunto de dados que define a ordem de classificação desejada.

Se desejar, você pode definir um conjunto de dados que inclua apenas os tamanhos e um valor que especifique a ordem desejada. É possível alterar a expressão de classificação para usar a função Pesquisar para obter o valor de ordem de classificação.

Por exemplo, digamos que a consulta Transact-SQL a seguir defina um conjunto de dados chamado Tamanhos. A consulta usa uma instrução CASE para definir um valor de ordem de classificação SizeSortOrder para obter cada valor de Size:

SELECT Size,   
  CASE Size  
        WHEN 'S' THEN 1  
        WHEN 'M' THEN 2    
        WHEN 'L' THEN 3  
        WHEN 'XL' THEN 4  
        ELSE 0  
  END as SizeSortOrder  
FROM Production.Product  

Em uma tabela com um grupo de linhas baseado em Tamanho, é possível alterar a expressão de classificação de grupo para usar uma função Lookup a fim de localizar o campo numérico que corresponde ao valor de tamanho. A expressão seria semelhante a este exemplo:

=Lookup(Fields!Size.Value, Fields!Size.Value, Fields!SizeSortOrder.Value, "Sizes")  

Para obter mais informações, confira Classificar dados em uma região de dados em um relatório paginado (Report Builder) e Funções do Report Builder – função Lookup em um relatório paginado (Report Builder).

Adicionar uma classificação interativa para o usuário

Para permitir que um usuário altere a ordem de classificação de dados de relatório em uma tabela ou matriz, você pode adicionar botões de classificação interativos a cabeçalhos de coluna e cabeçalhos de grupo. Os usuários podem selecionar o botão para alterar a ordem de classificação. A classificação interativa possui suporte em formatos de renderização que permitem a interação do usuário, como HTML.

Você adiciona botões de classificação interativos a uma caixa de texto em uma célula de região de dados tablix. Por padrão, toda célula contém uma caixa de texto. Nas propriedades da caixa de texto, você especifica qual parte de uma região de dados de tabela ou matriz classificar (os valores do grupo pai, os valores do grupo filho ou as linhas de detalhes). Você especifica o que classificar e se deseja aplicar a expressão de classificação a outros itens de relatório que tenham uma relação de mesmo nível. Por exemplo,quando uma tabela e um gráfico que fornecem exibições sobre o mesmo conjunto de dados estão contidos em um retângulo, eles são regiões de dados pares. Quando um usuário alterna a ordem de classificação na tabela, a ordem de classificação do gráfico também é alternada. Para obter mais informações, confira Classificação interativa em um relatório paginado (Report Builder).

Tópicos práticos