Crystal Reports - Gerando seus relatórios.
O Crystal Reports é o gerador de relatórios do Visual Basic e com ele desenhamos os relatórios de nossos aplicativos. Embora possua um objeto chamado Printer para imprimir dados, sua utilização além de complexa é trabalhosa pois tudo deve ser codificado. Ao Contrário, o Crystal Reports utiliza uma interface gráfica a partir de onde podemos construir qualquer relatório que necessitamos.Podemos iniciar o Crystal Reports através da opção Report Designer... do menu Add-Ins ou pelo ícone correspondente na pasta de trabalho do Visual Basic no Windows.
Vamos gerar um relatório baseado na tabela agenda que se encontra no banco de dados Controle . Nosso relatório deverá obedecer os seguintes parâmetros: 1- Campos a serem impressos : sobrenome , endereço e a data de nascimento. 2- O relatório deverá ser ordenado pelo campo sobrenome. 3- Deveremos permitir inicialmente a visualização do relatório para posterior impressão. 4- O nome do relatório será agenda.rpt.Selecionando a opção New do menu File teremos a tela da figura 1.0 abaixo:
![]() figura 1.0 |
![]() figura 2.0 |
![]() figura 3.0 |
Para agrupar registros , ordenando-os por uma determinada coluna selecione a opção Group Section do menu Insert. Agrupando pelo campo sobrenome em ordem ascendente veremos na tela a figura 4.0:
![]() figura 4.0 |
Vamos inserir um título em nosso relatório e uma legenda para o campo sobrenome, para isso selecione a opção Text Field... do menu Insert. Na caixa de diálogo Enter Text digite o título: Agenda Pessoal e clique no botão Accept. Ao lado do ponteiro do mouse acompanha um retângulo que você deverá posicionar no local desejado, ou seja, na seção Title. Para criar a legenda Nome para o campo sobrenome no cabeçalho de grupo, selecionte Text Field... novamente e digite Nome, clicando em Accept e posicionando a legenda mesmo local da legenda sobrenome.Conteúdo
Para formatar campos basta selecionar o campo desejado e clicar na opção Format do menu ou clicando com o botão direito do mouse sobre o campo teremos um menu pop-up como na figura 5.0 abaixo:
![]() figura 5.0 |
Pelo menu podemos acessar as opções pertinentes a um
determinado campo do relatório. Para o caso selecionamos o título Agenda Pessoal , vamos
alterar
Para alterar mais de um campo selecione-os mantendo a tecla Shift
|
Vamos montar uma fórmula para imprimir o número da página no rodapé do relatório. Para isso usamos o editor de fórmulas do Crystal Reports que pode ser disparado através do íconeou da opção Formula Field... do menu Insert. Após isso você deve informar o nome da fórmula no campo Formula Name para o nosso caso informe "pagina" e clique no botão OK. O Editor é mostrado na figura 7.0 :
![]() figura 7.0 |
Você pode utilizar a guia Style para escolher a forma de apresentação do relatório.
![]() figura 8.0 |
Agora que nosso relatório esta pronto vamos associá-lo a nossa aplicação de forma a poder imprimí-lo a partir do Visual Basic. Para isso devemos ativar o componente do Crystal Reports para a nossa aplicação na opção Components.. do menu Project e a seguir selecionar o controle Crystal ReportsConteúdoe copiá-lo para nosso formulário. A seguir vamos definir algumas propriedades para o controle CrystalReport1 1-CopiesToPrinter - Determina o número de cópias do relatório.Informe um (1) 2-Destination - Direciona a impressão: 0-na tela 1-na impressora 2-em arquivo. Informe zero (0). 3-ReportFileName - Indica a localização do relatório (arquivo .RPT) a ser impresso. 4-WindowTitle - Título a janela Preview , informe Agenda . 5-SortFields - Configura a ordem de classificação.(Ver abaixo.) Finalmente crie um botão de comando no formulário que irá disparar a impressão do relatório com o nome de Imprime e a seguir associe o seguinte código ao botão de comando: Private Sub imprime_Click() CrystalReport1.Destination = 0 CrystalReport1.ReportFileName = "c:\Controle\agenda.rpt" CrystalReport1.SortFields(0) = "+{Agenda.Sobrenome}" CrystalReport1.Action = 1 End Sub A propriedade Action definida para 1 dispara a impressão do relatório. Outra forma de ordenar os registros via código é utilizar a propriedade sortfields. Na propriedade Sortfields , "+{Agenda.Sobrenome}" , indica que a ordem de impressão será por campo sobrenome (Agenda.sobrenome) e em ordem ascendente (+).