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
creditos
|
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