Crystal Reports - Usando parâmetros em relatórios


Vamos aprender a como usar parâmetros em relatórios Crystal Reports usando o Visual Studio 2005. Os parâmetros geralmente são usados para filtros, ou seja, você tem uma quantidade de informação e deseja exibir apenas uma parte dela.

Por exemplo você tem uma relação de clientes e deseja exibir apenas único cliente ou um determinado número de clientes que atenda um critério definido. Para conseguir realizar esse objetivo podemos usar parâmetros.

Eu vou usar o Crystal Reports que vem junto com o Visual Studio 2005 (Infelizmente as versões Express não possuem o Crystal Reports) e gerar um relatório com base na tabela Customers do banco de dados Northwind.mdf, esse banco de dados pode ser obtido no site da Microsoft.

Abra então o Visual Studio 2005 e no menu File -> New Project selecione em Project Types Visual Basic -> Windows e em Templates Windows Application;

Informe o nome CrystalReports1 e clique em OK;

Com isso criamos a solução contendo o projeto CrystalReports1.

Agora vamos criar o relatório usando o Crystal Reports. No menu Project -> Add New Item;

Na janela a seguir selecione o Template Crystal Reports e aceite o nome padrão CrystalReports1.rpt ou se preferir indique um nome mais sugestivo;

Neste momento será iniciado o assistente do Crystal Reports apresentando a tela abaixo;

Selecione o item - Using the Report Wizard -  e clique em OK;

Na janela Chosse the data you wnat do report on expanda o item Create a New Connection e clique em OLE DB (ADO);

A seguir na janela - Select a provider from a list or select a data link file - selecione Microsoft OLE DB Provider for SQL Server  e clique em Avançar;

Na próxima janela vamos indicar as informações para conexão com o banco de dados. Em Server informe o nome do seu servidor SQL Server. O nome do meu servidor é MAC\SQLEXPRESS o seu será diferente , verifique qual o nome o seu servidor e informe aqui;

Marque a opção Integrated Security e em DataBase selecione o banco de dados Northwind;

Obs: Você deverá possuir o banco de dados Northwind.mdf instalado no seu SQL Server Local;

A seguir clique em Concluir;

Na janela a seguir expanda os objetos de forma a visualizar as tabelas e selecione a tabela Customers e clique no botão    para selecionar a tabela e clique em Avançar;

Será exibido todos os campos da tabela , selecione os campos que deseja exibir no relatório e clique no botão , Vamos selecione apenas os campos CustomerID, ContactName, Phone e City;

Clique em Avançar;

Como não vamos agrupar os dados nem selecionar um subconjunto de dados clique no botão Avançar até chegar na tela final onde iremos selecione o Report Style; No nosso relatório vamos usar a opção Standard;

Para encerrar clique em Concluir;

Será apresentada no Visual Studio a seguinte tela, onde vemos o relatório criado com os campos definidos e na ToolBox os objetos que podemos usar no relatório;

Neste momento se você clicar em - Main Report Preview - irá poder visualizar o relatório conforme a figura abaixo:

Perceba que o relatório exibe todos os registros da tabela. Vamos supor que você não quer isso, você quer poder exibir uma relação de clientes por cidade.

Neste caso vamos criar um parâmetro para filtrar os registros pelo nome da cidade desejado.

Clique em Main Report para retornar ao relatório no modo de desenho e abra o Field Explorer;

Clique com o botão direito no item Parameter FIelds e a seguir em New;

Será aberta a janela Create Parameter Field, onde devemos definir:

  1. O nome do parâmetro - no meu exemplo eu defini o nome cidade;
  2. O texto que irá aparecer na janela - Informe o nome da cidade;
  3. O tipo de dados do parâmetro - no caso String;

Neste momento se você clicar em OK o parâmetro será criado de forma que uma caixa de texto irá aparecer na janela e o usuário deverá digitar o nome da cidade;

Vamos incrementar esta etapa definindo valores padrões; Clique no botão Default Values;

Com isso ao invés de uma caixa de texto vamos gerar os valores em um combobox onde o usuário terá que selecionar um dos valores definidos;

Na janela Set Defatul Values defina:

1- A tabela Customers;
2- O campo que vamos selecionar: city;
3- Será apresentado todos os valores do campo city na tabela Customers;

Clique no botão  para selecionar todos os valores;

A seguir clique no botão OK e novamente em OK;

Você deverá ver em Field Explorer, o parâmetro criado com o nome cidade;

Agora temos que definir qual campo do relatório o parâmetro deverá usar como critério e qual o critério; Vamos usar o campo City e o critério is equal to;

No menu Crystal Reports selecione Report -> Select Expert;

Na janela Choose Field selecione city e clique em OK;

Na janela Select Expert defina - is equal to - e selecione o parâmetro {?cidade} e clique em OK;

Clique em OK para encerrar;

Se agora  você clicar em - Main Report Preview - para  poder visualizar o relatório e em seguida  clicar com o botão direito sobre o relatório e selecionar atualizar, será exibida a janela abaixo solicitando que você selecione o valor do parâmetro de um combobox e clique em OK;

Selecionando a cidade London e clicando em OK iremos visualizar o relatório abaixo;

Agora  é só incluir um componente CrystalReportViewer a a partir da ToolBox no formulário form1.vb e em Choose a Crystal Report selecionar o relatório que criamos;

Executando o projeto será apresentada a tela solicitando a seleção da cidade; Para selecionar outro valor clique no ícone do relatório.

Em um próximo artigo irei mostrar como tratar os parâmetros via código;

Pegue o projeto completo aqui: CrystalReports1.zip

Aguarde...

Eu sei é apenas .NET , mas eu gosto...


José Carlos Macoratti