A ferramenta Crystal Reports, da Seagate, é sem dúvida a ferramenta preferida pelos desenvolvedores da atualidade para desenvolver relatórios. Isso por quê ele automatiza várias tarefas que o programador teria de fazer manualmente, caso fosse usar o Printer. Você pode selecionar um banco de dados de forma interativa e escolher quais campos devem aparecer no relatório, que ele monta automaticamente o relatório pra você.
Possui ainda um assistente que faz todo o trabalho “pesado” pra você. Você terá apenas que arrumar alguns detalhes, se necessário, no relatório.
Criando um relatório no Crystal Reports usando o assistente
Existem várias versões do Crystal Reports espalhadas por aí. A versão que iremos usar é o “Crystal Reports Report Design Component” .
Em outras versões do “Crystal Reports”, ele funciona como um programa separado onde criamos os relatórios dentro dele mesmo. Esses relatórios, contituem um arquivo separado, que terá de ser chamado pelo Visual Basic.
Com o “Crystal Reports Report Design Component” , você cria os relatórios dentro do próprio Visual Basic, e não há necessidade nenhuma de ter um arquivo separado para cada relatório. Esta é, na minha opinião, a granda vantagem de usar essa versão.
Bem, deixando de rodeios e indo ao que interessa, o que primeiramente precisamos para criar um relatório usando o Crystal é ter ele instalado. Feito isso, ele já irá aparecer nos menus do Visual Basic.
Para não termos problemas com o uso do assistente, devemos adicionar um componente ao projeto. Vá no menu Project, selecione Components e marque o controle “Crystal Report View Control”. Este controle é requerido pelo assistente quando ele cria o relatório e se você não adicioná-lo terá problemas sérios ao encerrar o assistente. Esses “problemas sérios” incluem o Visual Basic fechar e você perder tudo o que não foi salvo. Portanto, não esqueça de marcar tal componente.
Para adicionarmos um novo relatório usando o Crystal Reports, acessamos o menu
Project e escolhemos a opção Add Crystal Reports 8.5.
Abrirá então uma janela perguntando se queremos criar o novo relatório usando o
assintente, se queremos criar um relatório vazio ou criar um relatório a partie de outro existente.
Além disso, existe uma lista abaixo com vários tipos de relatórios predefinidos para que possamos escolher.
Como vamos criar nosso relatório usando o assistente, marque a primeira opção e clique
em OK.
Feito isso, o assistente iniciará o processo:
Criar um novo relatório usando o assistente
Criar um novo relatório em branco
Criar um novo relatório a partir de um relatório já existente
Aqui temos uma lista de tipos de relatórios predefinidos
Aqui é exibido o LayOut do relatório predefinido escolhido na lista.
Primeiramente, deveremos selecionar um banco de dados, de onde virão os dados do relatório. Para fazer isso, clicamos no botão Project. Após clicarmos nesse botão, irá abrir uma janela com várias opções para nos conectarmos com diferentes bancos de dados.
Como estamos utilizando conexão com banco de dados via DAO, marque a opção DAO e clique no botão Browse para selecionar um banco de dados ou digite o caminho do banco de dados na caixa de texto.
Note ainda que existe uma caixa abaixo, onde podemos selecionar para abrir vários tipos de banco de dados diferentes. Como o banco de dados que iremos abrir é Access, então não precisamos alterar.
Estando o nome do banco de dados e o tipo selecionado, podemos clicar no botão OK para proseguirmos. Feito isso, abrirá uma janela onde podemos selecionar o objeto do banco de dados que desejamos, no nosso caso, a tabela “Clientes”.
Atenção: Neste exemplo selecionamos a tabela “Clientes”. No entanto, podemos selecionar mais de uma tabela sem problemas. O ato de adicionar mais de uma tabela ao relatório não obriga o relatório a ser baseado em todas as tabelas. Mas por sua vez, mantém essas tabelas disponíveis para usarmos no relatório.
Estando esta tabela selecionada, já podemos clicar no botão OK. O assistente retornará novamente para a primeira tela.
O assistente então passará para o guia Fields, onde definimos quais campos aparecerão no relatório:
Nesta lista estão
todos os campos que podemos adicionar ao relatório. Para adicionar um campo, basta selecioná-lo nesta lista e clicar no botão Add ->
O botão Add All-> coloca todos os campos no relatório sem a necessidade de termos que inserir um por um.
É nessa lista que ficam os campos que escolhemos para exibir no relatório O botão Remove <- remove o campo selecionado na lista de campos a exibir no
O botão <- Remove All remove todos os campos da lista de campos a exibir no relatório.
Nesta caixa,
podemos selecionar individualmente o
Depois de adicionados os campos necessários para o nosso relatório e caso ele seja um relatório simples, já podemos finalizar, clicando no botão Finish. Veremos mais tarde ao que se destinam os próximos passos do assintente.
Se você já adicionou os campos que precisa no relatório e não usará nenhum recurso especial no seu relatório, deverá clicar no botão Finish. Feito isso, aparecerá a seguinte janela:
Depois que você selecionar as opções que você deseja, clique em OK.
Aqui ele pergunta se queremos que o assistente crie um formuilário que servirá como visualização de impressão. Caso você queira visualizar o relatório antes de imprimir, marque a opção
Yes.
Aqui ele pergunta se você que o assistente modifique as propriedades de projeto para que o formulário de
visualização de impressão seja o objeto inicial do projeto(StartUp Object). Caso você queira, marque
Veja que o assistente criou um Relatório(Report) com o nome “CrystalReports1”. Nomeio-o como “RptClientes”. Caso já tivéssemos um relatório com o nome de “CrystalReports1”, ele nomearia como “CrystalReports2”, e assim sucessivamente. Note também que ele criou um formulário como o nome “Form1”. Se já tivéssemos um formulário com esse nome, ele criaria um com o nome de “Form2” e assim sucessivamente. Nome-o para “FrmRelCli”. Veja que esse formulário funciona como visualização dos relatórios. Assim, quando precisarmos imprimir um relatório criado a partir do Crystal, basta chamar o formulário que o assistente criou para esse relatório através do método
Show. O formulário fará toda a parte de imprimir o relatório para nós.
A janela abaixo mostra uma pré-visualização que foi criada pelo assistente do “Crystal” em um formulário. Ela oferece recursos de Zoom, mudança de página, pesquisa e ainda oferece recursos para alternarmos entre os grupos, caso estejamos trabalhando com relatórios que contenham grupos.
Depois de renomear o nome do relatório e o do formulário que o assistente criou, você também deve renomear o nome no código do formulário que o assistente criou. Nesse código ele faz referência ao relatório que o assistente criou. Como modificamos o nome desse relatório, também temos de fazer o mesmo no código. A única linha que teremos de
alterar é na declaração, onde é declarado um objeto do tipo Report(relatório). Altere o nome para o novo nome que você atribuiu ao
relatório.
Essa é única linha que teremos de alterar nesse código para que ele funcione
perfeitamente. Essa mudança só é necessária por que alteramos o nome do objeto Report. Feito essa modificação, talvez você queira fazer alguns ajustes no Layout do relatório. Um relatório é dividido em várias seções. Veremos agora a função de cada uma delas.
A seção Report Header é o cabeçalho do relatório. Não confunda cabeçalho do relatório com cabeçalho da página. Pois o cabeçalho da página é impresso sempre antes de uma
página ser impressa. Já o cabeçalho do relatório será impresso somente uma vez, antes de qualquer página ser impressa.
A seção Page Header é o cabeçalho de página e como já falamos anteriormente é impressa sempre que é iniciada uma nova página. Usamos esta seção para colocar os cabeçalhos para os campos, além de outras informações.
A seção Details(detalhe) é a mais importante do relatório. É nela que irão os dados que compõem o relatório. Como por exemplo, os campos nome, endereço, etc.
A seção Report Footer é o rodapé do relatório. Ou seja, é o que será impresso, no final do relatório, após todas as páginas serem impressas.
A seção Page Footer é o rodapé da pagina. É o que será impresso no fim de cada página. Usamos esta seção para imprimir, por exemplo, os números de página. Ao criar um relatório pelo assistente, o Crystal automaticamente insere uma função, para retornar o número de página nesta seção.
Na caixa de ferramentas a esquerda podemos ver os controles disponíveis para inserir nos relatórios criados pelo Crystal
Os controles mais importantes são:
Text Objext – Um simples objeto de texto que tem a mesma função do objeto Label
nos formulários.
Line Object – Serve para traçarmos uma linha reta no relatório.
Além desses recursos, o Crystal ainda nos oferece recursos de poder inserir campos especiais, como hora, data, etc. Vejamos alguns: