Relatório com dados de várias tabelas e Seleção
de registros.
|
O Crystal Reports é o gerador de relatórios que vem junto com o Visual Basic.
Para uma introdução téorica já com um exemplo prático clique no link Crystal.
Nesta secção iremos abordar exemplos práticos abordando as dúvidas mais comuns
dos iniciantes. Vamos lá.
Veremos como gerar um relatório que contenha dados oriundos de diversas tabelas,
e de como selecionar os registros que queremos imprimir.
Estaremos usando a versão do Crystal Reports que acompanha o Visual Basic 5.0.
Projeto Alunos - Relatório - BOLETIM ESCOLAR
Você trabalha como programador em uma grande escola e recebeu a incumbência
de gerar o relatório bimestral para os alunos do 2º grau com
os seguintes dados:
-
Código do Aluno
-
Nome do Aluno
-
Data de Emissão do relatório
-
Periodo, Curso, Série , Bimestre
-
Nome da Matéria Cursada
-
Nota do bimestre para cada aluno/matéria.
Só para lembrar você possui somente o Visual Basic 5.0.E vai
ter que usar o Crystal Reports para gerar o relatório. Ah!, esqueci
de avisar, o relatório era para ontem... -Vamos supor que temos
três tabelas:
-
Dados Disclipinas/Notas - tblnotas
-
Cadastro dos alunos - TblAlunos
-
Cadastro de Disciplinas - tblCursos
-
Cadastro Professores - TblProfessor
A estrutura das tabelas é dada a seguir:
TblAlunos |
TblCursos |
TblNotas |
TblProfessor |
codaluno
nome
endereco
telefone
nascimento
nomepai
nomemae
observacao
Periodo
serie
numero
|
codcurso
nomecurso
codprofessor
|
codaluno
codcurso
nota
ano
bimestre
Observacao
|
codprofessor
nome
endereco
telefone
|
Obs : Codaluno , Codcurso, CodProfessor são
chaves primárias de suas respectivas tabelas.
Já deu para perceber que os dados dos seus relatórios
não estão todos em uma única tabela, e , você
vai ter que juntar os dados para obter o rela- tório que deverá
ter o seguinte layout :
Nome Escola BOLETIM ESCOLAR pag. nº
Bimestre
------------------------------------------------------------------------
Nome do Aluno cod. aluno data emissão
Período Curso Série Número
-------------------------------------------------------------------------
Nome das disciplinas| Nota | OBSERVAÇÕES
--------------------|---------|------------------------------------------
. | |
. | |
. | |
-------------------------------------------------------------------------
|
No espaço reservado para observações devemos informar
quando o aluno não atingiu a média mímina para aprovação
, nota inferior a 5, e colocar a mensagem : "NOTA ABAIXO DA NOTA MÍNIMA
- ALUNO EM RECUPERAÇÃO". Além disso deveremos informar
a média aritmética das notas do aluno no bimestre.
Bem , vamos ao trabalho, no VB ative o Crystal Reports através da opção Add Ins->Report Designer...
ou crie um atalho na área de trabalho para chamar o Crystal Reports.
Selecionando a opção New do menu File teremos
a tela da figura 1.0 abaixo:
figura 1.0 |
Após clicar no botão Standard
, devemos selecionar a base de dados na opção Data File
, para o nosso caso criamos a base de dados chamada Escola.mdb.
Como você pode notar a tabela Tblprofessor não contém
nenhum campo que iremos usar em nosso relatório, portanto exclua-a
da lista e a seguir clique no botão Next para prosseguir.
A seguir temos um lista de todas as tabelas e consultas gravadas na
base de dados que iremos utilizar (fig 2.0)
figura 2.0 |
No próximo passo, Links , é que esta o segredo para
que os dados das três tabelas sejam incorporados ao nosso relatório
e mantenham a correspondencia entre os dados das mesmas: O Crystal reconhece
os relacionamentos entre as tabelas automaticamente , mas é possível
criá-los nesta etapa , bastando clicar sobre o campo de uma tabela
e arrastá-lo até o campo correspondente da outra tabela ,
apos feito isto uma linha unindo os dois campos indica que o relacionamento
foi criado. Nesta etapa podemos também eliminar as associações
existentes bem como admitir novas bases de dados ao relatório. Naturalmente
uma relação válida somente será efetivada entre
campos indexados (pelo menos um) e do mesmo tipo.
figura 3.0 |
Para verificar o relacionamento clique com o botão direito do mouse
sobre uma das linhas e na opção options do menu suspenso.(fig
4.0)
figura 4.0 |
A caixa de diálogo Link Options surge mostrando os detalhes
dos vínculos (fig 5.0)
figura 5.0 |
Vamos selecionar os campos da tabela que serão impressos no relatório
- selecione cada campo e clique no botão Add. Os campos do
nosso relatório serão os seguintes:
Nome do Campo |
Tabela de Origem |
Codaluno
Nome
periodo
serie
numero
nomecurso
nota
ano
bimestre
|
tblalunos
tblalunos
tblalunos
tblalunos
tblalunos
tblcursos
tblnotas
tblnotas
tblnotas
|
Ao final devemos ter algo parecido com a figura 6.0 abaixo:
figura 6.0 |
Ja podemos clicar no botão Preview para podermos visualizarmos
nosso relatório (fig 7.0)
figura 7.0 |
Nada animador não é mesmo ? Mas iremos ajustá-lo ao
nosso lay-out.Clique na aba Design para podermos ajustar o lay-out
do relatório.(fig 8.0)
figura 8.0 |
Primeiro iremos inserir um grupo em nosso relatório , pois
queremos agrupar os alunos por código. Para isso clique no menu
Insert opção Group Section. e selecione a opção
tblalunos.codigo(fig 9.0) e clique em OK.
figura 9.0
Se você fez tudo certo obterá algo parecido com a figura
10 abaixo:
figura 10 |
Agora e só ajustar os campos conforme o lay-out da figura 11 abaixo:
figura 11 |
Para mover os campos clique sobre os mesmos e arraste-os para a nova posição.
Para inserir um texto selecione a opção do menu Insert
e a seguir Text Field, digitando o texto desejado e posicionando-o
no relatório. Para formatar um campo clique com o botão direito
do mouse sobre o campo , o menu da figura 12 surgirá com as várias
opções de formatação.
figura 12 |
Iremos formatar a seção que inserimos de forma a obter os
dados de cada aluno em páginas distintas, para isso clique com o
botão direito do mouse sobre a seção e ative as opções
mostradas na figura 13:
figura 13 |
Vamos agora inserir o campo que calculará a média aritmética
das notas dos alunos. Clique no campo nota e a seguir no botão
com simbolo de somatória
. A seguir
na janela da figura abaixo(figura 14) selecione a opção average
e posicione o campo abaixo do campo nota.
figura 14 |
Deveremos também inserir uma fórmula que irá mostrar
a mensagem no espaço observações quando a nota do
aluno para a matéria for abaixo da nota mínima(5)
Para isso clique na opção do menu Insert e Formula
Field, a seguir informe o nome da formula figura 15:
figura 15 |
Logo a seguir a janela da figura 16 será mostrada e iremos montar
a fórmula nela mostrada:
figura 16 |
Observer as janelas Fields, Functions e Operators . Para selecionar
um de seus elementos basta clicar duas vezes sobre o mesmo. Bem agora não
esqueça de salvar o relatório , chamaremos o nosso de boletim.rpt.
Finalmente você pode clicar na aba Preview para ver o resultado
final do seu trabalho (figura 17)
figura 17 |
Obs: Para desenhas as linhas e a caixa em torno do nome BOLETIM usamos
os botões da barra de ferramentas do crystal (fig 18).
figura 18 |
Muito bem, e como ficaria o código para imprimir o relatório
boletim.rpt no Visual Basic ? Que tal algo como: (Aqui chamamos o nosso
controle Crystal Reports de CR1)
cr1.WindowState = 2 'janela maximizada
cr1.WindowControlBox = True 'ativa os botões de controle da janela
cr1.ReportFileName = App.Path & "\boletim.rpt" 'caminho nome do relatorio
cr1.Destination = 0 'imprime na tela
cr1.Action = 1 'inicia impressao
|
Obs:
Não esqueça de ao gerar o seu relatório deixar ativa
a opçao Verify on Every Print do menu Database
desative opção Save Data with Closed Report
na opção Database->Set Location... clique no
botão Same as Report.
Voilá , até a próxima... Conteúdo
Retorna