Tutorial: adicionando um parâmetro ao relatório (Construtor de Relatórios 3.0)

Adicione um parâmetro ao seu relatório para permitir que os usuários filtrem dados de relatório na fonte de dados ou no relatório. Os parâmetros de relatório são criados automaticamente para cada parâmetro de consulta incluído em uma consulta de conjunto de dados. O tipo de dados do parâmetro determina como ele aparece na barra de ferramentas de exibição de relatório.

Relatório de vendas parametrizado

O que você aprenderá

Neste tutorial, você aprenderá a:

  1. Criar um relatório de matriz e um conjunto de dados no Assistente de Tabela ou Matriz

  2. Organizar dados, escolher layout e estilo no Assistente de Tabela ou Matriz

  3. Adicionar um parâmetro de consulta para criar um parâmetro de relatório

  4. Alterar o tipo de dados padrão e outras propriedades de um parâmetro de relatório

    1. Adicionar um conjunto de dados para fornecer valores disponíveis e nomes para exibição

    2. Especificar os valores disponíveis para criar uma lista suspensa de valores

    3. Especificar os valores padrão para que o relatório seja executado automaticamente

    4. Pesquisar um valor em um conjunto de dados com pares de nome/valor

  5. Exibir o valor selecionado de parâmetro no relatório

  6. Usar o parâmetro de relatório em um filtro

  7. Alterar o parâmetro de relatório para aceitar vários valores

  8. Adicionar um parâmetro booliano para visibilidade condicional

  9. Adicionar um título de relatório

  10. Salvar o relatório

ObservaçãoObservação

Neste tutorial, as etapas do assistente são consolidadas em um procedimento. Para obter instruções passo a passo sobre como navegar até um servidor de relatório, escolher uma fonte de dados e criar um conjunto de dados, consulte o primeiro tutorial nesta série: Tutorial: Criando um relatório de tabela básico (Construtor de Relatórios 3.0).

Tempo estimado para concluir este tutorial: 25 minutos.

Requisitos

Para obter informações sobre os requisitos, consulte Pré-requisitos para tutoriais (Construtor de Relatórios 3.0).

1. Criar um relatório de matriz e um conjunto de dados no Assistente de Tabela ou Matriz

Criar um relatório de matriz, uma fonte de dados e um conjunto de dados.

ObservaçãoObservação

Neste tutorial, a consulta contém os valores de dados para que não precise de uma fonte de dados externa. Isso torna a consulta bastante longa. Em um ambiente empresarial, uma consulta não conteria os dados. Isso é apenas para fins de aprendizado.

Para criar um novo relatório de matriz

  1. Clique em Iniciar, aponte para Programas, aponte para Construtor de Relatórios 3.0 do Microsoft SQL Server 2008 R2 e clique em Construtor de Relatórios 3.0.

    A caixa de diálogo Guia de Introdução é exibida.

    ObservaçãoObservação

    Se a caixa de diálogo Guia de Introdução não for exibida, no botão Construtor de Relatórios, clique em Novo.

  2. No painel esquerdo, verifique se Relatório está selecionado.

  3. No painel à direita, clique em Assistente de Tabela ou Matriz.

  4. Clique em Criar.

  5. Na página Escolha um conjunto de dados, clique em Criar um conjunto de dados.

  6. Clique em Avançar.

  7. Na página Escolha uma conexão com uma fonte de dados, selecione uma fonte de dados do tipo SQL Server. Selecione uma fonte de dados na lista ou navegue até o servidor de relatório para selecionar uma.

  8. Clique em Avançar.

  9. Na página Crie uma consulta, clique em Editar como Texto.

  10. Cole a seguinte consulta no painel de consulta:

    ;WITH CTE (StoreID, Subcategory, Quantity) 
    AS (
    SELECT 200 AS StoreID, 'Digital SLR Cameras' AS Subcategory, 2002 AS Quantity
    UNION SELECT  200 AS StoreID, 'Camcorders' AS Subcategory, 1954 AS Quantity
    UNION SELECT  200 AS StoreID, 'Accessories' AS Subcategory, 1895 AS Quantity
    UNION SELECT  199 AS StoreID, 'Digital Cameras' AS Subcategory, 1849 AS Quantity
    UNION SELECT  306 AS StoreID, 'Digital SLR Cameras' AS Subcategory, 1579 AS Quantity
    UNION SELECT  306 AS StoreID, 'Camcorders' AS Subcategory, 1561 AS Quantity
    UNION SELECT  306 AS StoreID, 'Digital Cameras' AS Subcategory, 1553 AS Quantity
    UNION SELECT  306 AS StoreID, 'Accessories' AS Subcategory, 1534 AS Quantity
    UNION SELECT 307 AS StoreID, 'Accessories' AS Subcategory, 1755 AS Quantity
    UNION SELECT 307 AS StoreID, 'Camcorders' AS Subcategory, 1631 AS Quantity
    UNION SELECT 307 AS StoreID, 'Digital SLR Cameras' AS Subcategory, 1772 AS Quantity)
    SELECT StoreID, Subcategory, Quantity
    FROM CTE
    

    Esta consulta combina os resultados de várias instruções SELECT Transact-SQL dentro de uma expressão de tabela comum para especificar valores baseados em dados simplificados do banco de dados de exemplo Contoso. Os dados de vendas em Contoso representam os dados de vendas internacionais de bens de consumo. Este tutorial usa dados de vendas de câmeras. As subcategorias representam câmeras digitais, câmeras digitais SLR (reflex de lente única), filmadoras e acessórios.

    A consulta especifica nomes de coluna que incluem um identificador de repositório, uma subcategoria de item de vendas e a quantidade solicitada para ordens de venda de três repositórios. Nesta consulta, o nome do repositório não faz parte do conjunto de resultados. Posteriormente neste tutorial, você irá pesquisar o nome do repositório que corresponde ao identificador de repositório de um conjunto de dados separado.

    Esta consulta não contém parâmetros de consulta. Você adicionará parâmetros de consulta posteriormente neste tutorial.

  11. Na barra de ferramentas do designer de consulta, clique em Executar (!). O conjunto de resultados exibe 11 linhas de dados que mostram a quantidade de itens vendidos para cada subcategoria de quatro repositórios e inclui as seguintes colunas: StoreID, Subcategory, Quantity.

  12. Clique em Avançar.

2. Organizar dados, escolher layout e estilo no Assistente de Tabela ou Matriz

Use o assistente para fornecer um design inicial no qual exibir dados. O painel de visualização no assistente ajuda a visualizar o resultado do agrupamento de dados antes de concluir o design da tabela ou da matriz.

Para organizar dados em grupos

  1. Na página Organizar campos, arraste Subcategoria até Grupos de linhas.

  2. Arraste StoreID até Grupos de colunas.

  3. Arraste Quantidade até Valores.

    Você organizou os valores das quantidades vendidas em linhas agrupadas por subcategoria. Haverá uma coluna para cada repositório.

  4. Clique em Avançar.

  5. Na página Escolha um Layout, em Opções, verifique se a opção Mostrar subtotais e totais gerais está selecionada.

    Quando você executar o relatório, a última coluna mostrará a quantidade total de cada subcategoria para todos os repositórios, e a última linha mostrará a quantidade total para todas as subcategorias de cada repositório.

  6. Clique em Avançar.

  7. Na página Escolher um Estilo, no painel Estilos, selecione um estilo.

  8. Clique em Concluir.

    A matriz é adicionada à superfície de design. A matriz exibe três colunas e três linhas. As células na primeira linha contêm Subcategory, [StoreID] e Total. As células na segunda linha contêm expressões que representam a subcategoria, a quantidade de itens vendidos para cada repositório e a quantidade total de cada subcategoria para todos os repositórios. As células na linha final exibem o total geral de cada repositório.

  9. Clique na matriz, passe o mouse sobre a borda da primeira coluna e arraste a alça para aumentar a largura da coluna.

  10. Clique em Executar para visualizar o relatório.

O relatório será executado no servidor de relatório e exibirá o título e a hora em que o processamento de relatório ocorreu.

Neste cenário, os títulos de coluna exibem o identificador, mas não o nome do repositório. Posteriormente, você irá adicionar uma expressão para pesquisar o nome do repositório em um conjunto de dados contendo pares de identificador/nome do repositório.

3. Adicionar um parâmetro de consulta para criar um parâmetro de relatório

Quando você adicionar um parâmetro de consulta a uma consulta, o Construtor de Relatórios criará automaticamente um parâmetro de relatório de valor único com propriedades padrão para nome, aviso e tipo de dados.

Para adicionar um parâmetro de consulta

  1. Alterne para a exibição Design.

  2. No painel Dados do Relatório, expanda a pasta Conjuntos de Dados, clique com o botão direito do mouse em DataSet1 e depois clique em Consulta.

  3. Adicione a seguinte cláusula Transact-SQLWHERE como a última linha na consulta:

    WHERE StoreID = (@StoreID)
    

    A cláusula WHERE limita os dados recuperados ao identificador de repositório que é especificado pelo parâmetro de consulta @StoreID.

  4. Na barra de ferramentas do designer de consulta, clique em Executar (!). A caixa de diálogo Definir Parâmetros de Consulta é aberta e solicita um valor para o parâmetro de consulta @StoreID.

  5. Em Valor do Parâmetro, digite 200.

  6. Clique em OK.

    O conjunto de resultados exibe as quantidades vendidas de Acessórios, Filmadoras e Câmeras Digitais SLR para o identificador de repositório 200.

  7. Clique em OK.

  8. No painel Dados do Relatório, expanda a pasta Parâmetros.

Repare que agora existe um parâmetro de relatório denominado @StoreID. Por padrão, o parâmetro tem o tipo de dados Text. Como o identificador de repositório é um inteiro, você precisará alterar o tipo de dados para Inteiro no próximo procedimento.

4. Alterar o tipo de dados padrão e outras propriedades de um parâmetro de relatório

Depois de criar um parâmetro, você pode ajustar os valores padrão de propriedades.

Para alterar o tipo de dados padrão de um parâmetro de relatório

  1. No painel Dados do Relatório, no nó Parâmetros, clique com o botão direito do mouse em @StoreID e em Propriedades do Parâmetro.

  2. No Prompt, digite Identificador do repositório? Este texto aparece na barra de ferramentas do visualizador de relatórios quando você executa o relatório.

  3. Em Tipo de dados, na lista suspensa, selecione Integer.

  4. Aceite os valores padrão restantes na caixa de diálogo.

  5. Clique em OK.

  6. Visualize o relatório. O visualizador de relatórios exibe o aviso para @StoreID.

  7. Na barra de ferramentas do visualizador de relatórios, junto a ID do Repositório, digite 200 e clique em Exibir Relatório.

4a. Adicionar um conjunto de dados para fornecer valores disponíveis e nomes para exibição

Para garantir que um usuário possa digitar somente valores válidos para um parâmetro, você pode criar uma lista suspensa de valores a serem escolhidos. Os valores podem vir de um conjunto de dados ou de uma lista especificada por você. Devem ser fornecidos valores disponíveis de um conjunto de dados que contenha uma consulta sem referência ao parâmetro.

Para criar um conjunto de dados com valores válidos para um parâmetro

  1. Alterne para a exibição Design.

  2. No painel Dados do Relatório, clique com o botão direito do mouse na pasta Conjuntos de Dados e depois clique em Adicionar Conjunto de Dados.

  3. Em Nome, digite Repositórios.

  4. Selecione a opção Usar um conjunto de dados incorporado no meu relatório.

  5. Em Conjunto de Dados, na lista suspensa, escolha a fonte de dados criada por você no primeiro procedimento.

  6. Em Tipo de consulta, verifique se Texto está selecionado.

  7. Em Consulta, cole o seguinte texto:

    SELECT 200 AS StoreID, 'Contoso Catalog Store' as StoreName
    UNION SELECT 199 AS StoreID, 'Contoso North America Online Store' as StoreName
    UNION SELECT 307 AS StoreID, 'Contoso Asia Online Store' as StoreName
    UNION SELECT 306 AS StoreID, 'Contoso Europe Online Store' as StoreName
    
  8. Clique em OK.

    O painel Dados de Relatório exibe os campos StoreID e StoreName no nó de conjunto de dados Repositórios.

4b. Especificar os valores disponíveis para criar uma lista suspensa de valores

Depois de criar um conjunto de dados para fornecer valores disponíveis, altere as propriedades do relatório para especificar o conjunto de dados e o campo a serem usados para preencher a lista suspensa de valores válidos na barra de ferramentas do visualizador de relatórios.

Para fornecer valores disponíveis para um parâmetro a partir de um conjunto de dados

  1. No painel Dados do Relatório, clique com o botão direito do mouse no parâmetro @StoreID e depois clique em Propriedades do Parâmetro.

  2. Clique em Valores Disponíveis e depois em Obter valores de uma consulta.

  3. Em Conjunto de Dados, na lista suspensa, clique em Repositórios.

  4. Em Campo de valor, na lista suspensa, clique em StoreID.

  5. Em Campo de rótulo, na lista suspensa, clique em StoreName. O campo de rótulo especifica o nome para exibição do valor.

  6. Clique em Geral.

  7. No Prompt, digite Nome do repositório?

    O usuário selecionará agora em uma lista de nomes de repositório, em vez de identificadores de repositório. Observe que o tipo de dados de parâmetro permanece Integer porque o parâmetro se baseia no identificador de repositório, e não no nome de repositório.

  8. Clique em OK.

  9. Visualize o relatório.

    Na barra de ferramentas do visualizador de relatórios, a caixa de texto de parâmetro agora é uma lista suspensa que exibe <Selecione um Valor>.

  10. Na lista suspensa, selecione Repositório de Catálogos Contoso e depois clique em Exibir Relatório.

O relatório exibe a quantidade vendida de Acessórios, Filmadoras e Câmeras Digitais SLR para o identificador de repositório 200.

4c. Especificar os valores padrão para que o relatório seja executado automaticamente

Você pode especificar um valor padrão para cada parâmetro, de forma que o relatório seja executado automaticamente.

Para especificar um valor padrão a partir de um conjunto de dados

  1. Alterne para a exibição Design.

  2. No painel Dados do Relatório, clique com o botão direito do mouse em @StoreID e clique em Propriedades do Parâmetro.

  3. Clique em Valores Padrão e depois em Obter valores de uma consulta.

  4. Em Conjunto de Dados, na lista suspensa, clique em Repositórios.

  5. Em Campo de valor, na lista suspensa, clique em StoreID.

  6. Clique em OK.

  7. Visualize o relatório.

Para @StoreID, o visualizador de relatórios exibe o valor "Repositório Online Contoso América do Norte". Este é o primeiro valor do conjunto de resultados para o conjunto de dados Repositórios. O relatório exibe a quantidade vendida de Câmeras Digitais para o identificador de repositório 199.

Para especificar um valor padrão personalizado

  1. Alterne para a exibição Design.

  2. No painel Dados do Relatório, clique com o botão direito do mouse em @StoreID e clique em Propriedades do Parâmetro.

  3. Clique em Valores Padrão, em Especificar valores e em Adicionar. Uma nova linha de valor é adicionada.

  4. Em Valor, digite 200.

  5. Clique em OK.

  6. Visualize o relatório.

Para @StoreID, o visualizador de relatórios exibe o valor "Repositório de Catálogos Contoso". Este é o nome para exibição do identificador de repositório 200. O relatório exibe a quantidade vendida de Acessórios, Filmadoras e Câmeras Digitais SLR para o identificador de repositório 200.

4d. Pesquisar um valor em um conjunto de dados com pares de nome/valor

Um conjunto de dados pode conter o identificador e o campo de nome correspondente. Quando você só tiver um identificador, poderá pesquisar o nome correspondente em um conjunto de dados criado por você, incluindo pares de nome/valor.

Para pesquisar um valor em um conjunto de dados

  1. Alterne para a exibição Design.

  2. Na superfície de design, dentro da matriz, no cabeçalho da coluna da primeira linha, clique com o botão direito do mouse em [StoreID] e depois clique em Expressão.

  3. No painel de expressão, exclua todo o texto exceto o equals (=) inicial.

  4. Em Categoria, expanda Funções Comuns e clique em Diversas. O painel Item exibe um conjunto de funções.

  5. Em Item, clique duas vezes em Pesquisa. O painel de expressão exibe =Lookup(. O painel Exemplo exibe um exemplo de sintaxe de Pesquisa.

  6. Digite a seguinte expressão: =Lookup(Fields!StoreID.Value,Fields!StoreID.Value,Fields!StoreName.Value,"Stores")

    A função Pesquisa irá pesquisar o valor de StoreID no conjunto de dados "Repositórios" e retornar o valor StoreName.

  7. Clique em OK.

    O cabeçalho da coluna de repositórios contém o texto de exibição de uma expressão complexa: <<Expr>>.

  8. Visualize o relatório.

A caixa de texto na parte superior de cada página exibe o nome do repositório, em vez do identificador do repositório.

5. Exibir o valor selecionado de parâmetro no relatório

Quando um usuário tem dúvidas sobre um relatório, é útil saber quais foram os valores de parâmetros escolhidos. Você pode preservar os valores selecionados pelos usuários para cada parâmetro no relatório. Uma forma de fazer isso é exibir os parâmetros em uma caixa de texto no rodapé da página.

Para exibir o valor de parâmetro selecionado e o rótulo em um rodapé de página

  1. Alterne para a exibição Design.

  2. Clique com o botão direito do mouse no rodapé da página, aponte para Inserir e clique em Caixa de Texto. Arraste a caixa de texto para junto da caixa de texto com o carimbo de data/hora. Arraste a alça lateral da caixa de texto para expandir sua largura.

  3. No painel Dados do Relatório, arraste o parâmetro @StoreID até a caixa de texto. A caixa de texto exibe [@StoreID].

  4. Para exibir o rótulo de parâmetro, clique na caixa de texto até aparecer o cursor de inserção depois da expressão existente, digite um espaço e arraste outra cópia do parâmetro do painel Dados do Relatório para a caixa de texto. A caixa de texto exibe [@StoreID] [@StoreID].

  5. Clique com o botão direito do mouse na primeira expressão e clique em Expressão. A caixa de diálogo Expressão é aberta. Substitua o texto Value por Label.

  6. Clique em OK.

    O texto exibe: [@StoreID.Label] [@StoreID].

  7. Visualize o relatório.

6. Usar o parâmetro de relatório em um filtro

Os filtros ajudam a controlar os dados a serem usados em um relatório, depois de recuperados em uma fonte de dados externa. Para permitir que um usuário ajude a controlar os dados que deseja consultar, você pode incluir o parâmetro de relatório em um filtro para a matriz.

Para especificar um parâmetro em um filtro de matriz

  1. Alterne para a exibição Design.

  2. Clique com o botão direito do mouse em um cabeçalho de linha ou coluna e, depois, clique em Propriedades do Tablix.

  3. Clique em Filtros e em Adicionar. Uma nova linha de filtro é exibida.

  4. Em Expressão, na lista suspensa, selecione o campo de conjunto de dados StoreID. O tipo de dados exibe Integer. Quando o valor de expressão for um campo de conjunto de dados, o tipo de dados será definido automaticamente.

  5. Em Operador, verifique se equals (=) está selecionado.

  6. Em Valor, digite [@StoreID]. [@StoreID] é a sintaxe de expressão simples que representa =Parameters!StoreID.Value.

  7. Clique em OK.

  8. Visualize o relatório.

    A matriz só exibe dados para o "Repositório de Catálogos Contoso".

  9. Na barra de ferramentas do visualizador de relatórios, para Nome do repositório?, selecione Repositório Online Contoso Ásia e clique em Exibir Relatório.

A matriz exibe dados correspondentes ao repositório que você selecionou.

7. Alterar o parâmetro de relatório para aceitar vários valores

Para alterar um parâmetro de valor único para vários valores, você deve alterar a consulta e todas as expressões que contêm alguma referência ao parâmetro, inclusive filtros. Um parâmetro de vários valores é uma matriz de valores. Em uma consulta de conjunto de dados, a sintaxe de consulta deve testar a inclusão de um valor em um conjunto de valores. Em uma expressão de relatório, a sintaxe da expressão deve acessar uma matriz de valores, em vez de um valor individual.

Para alterar um parâmetro de valor único para vários valores

  1. Alterne para a exibição Design.

  2. No painel Dados do Relatório, clique com o botão direito do mouse em @StoreID e clique em Propriedades do Parâmetro.

  3. Selecione Permitir vários valores.

  4. Clique em OK.

  5. No painel Dados do Relatório, expanda a pasta Conjuntos de Dados, clique com o botão direito do mouse em DataSet1 e depois clique em Consulta.

  6. Altere equals (=) para IN na cláusula Transact-SQLWHERE na última linha da consulta:

    WHERE StoreID IN (@StoreID)
    

    O operador IN testa um valor para inclusão em um conjunto de valores.

  7. Clique em OK.

  8. Clique com o botão direito do mouse em um cabeçalho de linha ou coluna e, depois, clique em Propriedades do Tablix.

  9. Clique em Filtros.

  10. Em Operador, selecione Dentro.

  11. Clique em OK.

  12. Na caixa de texto que exibe o parâmetro no rodapé da página, exclua todo o texto.

  13. Clique com o botão direito do mouse na caixa de texto e depois clique em Expressão. Digite a seguinte expressão: =Join(Parameters!StoreID.Label, ", ")

    Esta expressão concatena todos os nomes de repositório selecionados pelo usuário.

  14. Clique em OK.

  15. Clique na caixa de texto em frente à expressão que você acaba de criar e digite o seguinte: Valores de Parâmetros Selecionados:.

  16. Visualize o relatório.

  17. Clique na lista suspensa junto a Nome do Repositório?

    Cada valor válido aparece junto a uma caixa de seleção.

  18. Clique em Selecionar Tudo e depois em Exibir Relatório.

    O relatório exibe a quantidade vendida de todas as subcategorias de todos os repositórios.

  19. Na lista suspensa, clique em Selecionar Tudo para limpar a lista, clique em "Repositório de Catálogos Contoso" e em "Repositório Online Contoso Ásia", e depois em Exibir Relatório.

8. Adicionar um parâmetro booliano para visibilidade condicional

Para adicionar um parâmetro booliano

  1. Na superfície de design, no painel Dados do Relatório, clique com o botão direito do mouse em Parâmetros e depois clique em Adicionar Parâmetro.

  2. Em Nome, digite ShowSelections.

  3. Em Aviso, digite Mostrar seleções?

  4. Em Tipo de dados, na lista suspensa, clique em Booliano.

  5. Clique em Valores Padrão.

  6. Clique em Especificar valor e depois em Adicionar.

  7. Em Valor, digite False.

  8. Clique em OK.

Para definir a visibilidade com base em um parâmetro booliano

  1. Na superfície de design, clique com o botão direito do mouse na caixa de texto no rodapé de página que exibe os valores de parâmetros, e depois clique em Propriedades da Caixa de Texto.

  2. Clique em Visibilidade.

  3. Selecione a opção Mostrar ou ocultar com base em uma expressão e clique no botão de expressão Fx.

  4. Digite a seguinte expressão: =Not Parameters!ShowSelections.Value

    A opção de Visibilidade de caixa de texto é controlada pela propriedade Oculta. Aplique o operador Not de forma que, quando o parâmetro for selecionado, a propriedade Oculta seja falsa e a caixa de texto seja exibida.

  5. Clique em OK.

  6. Clique em OK.

  7. Visualize o relatório.

    A caixa de texto que exibe as escolhas de parâmetro não aparece.

  8. Na barra de ferramentas do visualizador de relatórios, junto a Mostrar seleções, clique em True.

  9. Visualize o relatório.

A caixa de texto no rodapé da página exibe todos os nomes de repositório selecionados por você.

9. Adicionar um título de relatório

Para adicionar um título de relatório

  1. Na superfície de design, clique em Clique para adicionar título.

  2. Digite Vendas de Produto com Parâmetros e clique fora da caixa de texto.

10. Salvar o relatório

Para salvar o relatório em um servidor de relatório

  1. No botão Construtor de Relatórios, clique em Salvar como.

  2. Clique em Sites e Servidores Recentes.

  3. Selecione ou digite o nome do servidor de relatório no qual você tem permissão para salvar relatórios.

    A mensagem Conectando a um servidor de relatório aparece. Quando a conexão for concluída, você verá o conteúdo da pasta de relatório que o administrador de servidor de relatório especificou como o local padrão para relatórios.

  4. Em Nome, substitua o nome padrão por Relatório de Vendas com Parâmetros.

  5. Clique em Salvar.

O relatório será salvo no servidor de relatório. O servidor de relatório ao qual você está conectado aparece na barra de status na parte inferior da janela.

Próximas etapas

Isso conclui o passo a passo da adição de um parâmetro ao seu relatório. Para obter mais informações sobre parâmetros, consulte Parâmetros (Report Builder 3.0 e SSRS).