Fórum Usuário escolher qual relatório imprimir - Urgente! #172011

28/07/2003

0

Tenho um sistema para impressão de boletins de notas. Por enquanto ele só imprime TODOS os boletins de TODOS os alunos. Gostaria de saber como faço para que o usuário selecione o nome de um aluno e este seja o único boletim a ser impresso. Alguem me ajuda?

Agradeço desde já.


Hermeson Menezes

Hermeson Menezes

Responder

Posts

28/07/2003

Josemarlourenco

Hemerson,

Pra começar, não sei qual ferramenta de relatório vc usa, mas vai algumas dicas, assumindo que seu relatório irá imprimir o boletim do(s) aluno(s) que estiver na fonte de dados ligado a ele.
Para imprimir todos os boletins:
1) Selecione os dados de TODOS os alunos em uma fonte de dados (o melhor é uma query)
2) Ligue esta fonte de dados ao relatório.
3) Execute o relatório. Serão impressos os boletins de todos os alunos.

Para imprimir de apenas um aluno:
1) Exiba uma janela onde o usuário deverá informar o aluno
2) Selecione os dados somente deste aluno em uma fonte de dados (o melhor é uma query).
3) Ligue esta fonte de dados ao relatório
4) Execute o relatório. Será impresso o boletim do aluno selecionado.

O esquema acima vale para as ferramentes que fazem a impressão automaticamente (QuickReport e outros do gênero).

Se vc controla toda a impressão (Cabeçalho, detalhes, rodapés,...) via código, o melhor é criar uma rotina para a impressão dos boletins de apenas um aluno.
Esta rotina deverá, por exemplo, receber o código do aluno e a partir daí, selecionar os dados do aluno que possui aquele código e imprimir o boletim.
Sendo assim, para imprimir o boletim somente de um aluno, chame a rotina, enviando o código daquele aluno específico (ja selecionado pelo usuário).
Ex.: no onclick do botão imprimir...
Begin
Imprimir(StrToInt(Edit1.Text));
End;
Para imprimir de todos, selecione todos os alunos, e para cada aluno, chame a rotina, enviando o código do aluno atualmente posicionado.
Ex.: no onclick do botão imprimir...
Begin
Query.Close;
Query.SQL.Clear;
Query.SQL.Add(´select * from alunos´);
Query.Open;
while not query.eof do
Begin
Imprimir(query.FieldByName(´Codigo´).value);
Query.Next;
End;
End;

Josemar


Responder

Gostei + 0

28/07/2003

Felipemmarinho

se vc usa uma query para fazer seus boletins
faça o seguinte :
no evento da query ´SQL´ Digite o seguinte

select * from ´NOME DA TABELA´
where matricula = :MAT

OBS1 : MATRICULA É O NOME DO CAMPO QUE IRA IDENTIFICAR O ALUNO JÁ QUE EU NÃO SEI QUAL O NOME DO CAMPO

OBS2 : O NOIME QUE SE DA ´ :MAT ´ É CHAMADO DE PARAMETRO ESTE PARAMETRO É PASSADO EM TEMPO DE EXECUÇÃO.

E QUANDO VC FOR CHAMAR O FORMULÁRIO DE IMPRESSÃO DE BOLETIM
VC TERÁ QUE COLOCAR O SEGUINTE :

PODE SER NO EVENTO ONCLICK DO BOTAO

[NOME DA QUERY].PARAMBYNAME(´MAT´).[TIPO DO PARÂMETRO SE É STRING ...] := Edit1.Text

espero que tenha te ajudado caso tenha alguma dúvuda meu email é felipemmarinho@ig.com.br


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar