Fórum Ata de Resultados #354825
05/03/2008
0
Venho mais uma vez pedir a ajuda dos nobres colegas para poder resolver uma dúvida que me ocorre:
Tenho um sistema em paradox para administração escolar rodando, estou precisando gerar a ata de resultados finais para o mesmo, porém, estou com um problema que ainda não consegui resolver.
Tenho uma tabela onde ficam registradas todas as informações de notas e matérias do alunos.
Ex.:
Nome Matéria Nota
---------------------------------
Maria da silva Portugues 10
Maria da Silva Matemática 08
Maria da Silva Inglês 09
Maria da Silva Física 08
e assim por diante com todos os alunos da turma. Se existirem 10 matérias o nome do aluno se repete as mesmas 10 vezes.
Como faria para gerar uma segunda tabela ou outra maneira de poder gerar ata de resultados finais com o tipo de tabela que possuo?
Nesta sistema estou utilizando Delphi 7, Paradox e FortesReport, mas a dica poderia ser também em QR se caso fosse mais prático.
Desde já agradeço a ajuda.
Abraços.
Ralp Alves Bezerra
Ralp
Curtir tópico
+ 0Posts
05/03/2008
Ralp
Gostei + 0
05/03/2008
Ferreia2
o que vc precisa que seja impresso?
Gostei + 0
05/03/2008
Ralp
Nome Materia Nota
--------------- ----------- -----
Maria da silva Portugues 10
Maria da Silva Matemática 08
Maria da Silva Inglês 09
Maria da Silva Física 08
Porém, para gerar a ata de resultados finais da escola preciso que os dados fiquem desta forma
Maria da silva Portugues 10 | Matemática 08 | Inglês 09 | Física 08 e assim por diante.
Se puderem me ajudar lhe ficarei muito grato.
Ralp Alves
Gostei + 0
05/03/2008
Ferreia2
Gostei + 0
05/03/2008
Ralp
Abraços.
Ralp Alves
Gostei + 0
05/03/2008
Ferreia2
Na Coloca um componente ClientDataSet da Paleta DataAccess
Dê dois Cliques nele vai abrir o fields editor, ai clica com o botão direito e cria os campos que vc quer
Pronto isso já é uma tabela em memória, para adicionar os dados ou imprimir vc trabalha como se fosse uma tabela.
Acabou de imprimir vc executa este comando ClientDataSet1.EmptyDataSet
Gostei + 0
05/03/2008
Ralp
Gostei + 0
05/03/2008
Hall 9000
Faça como o FerreiA2 disse, coloque clientdataset (cdsAta) , crie os campos COD_ALUNO, NOME_ALUNO, NOTA_MATEMATICA, NOTA_PORTUGUES, NOTA_INGLES... enfim, todas as matéria possíveis.
Partindo do presuposto que vc já tenha uma query que retorna os dados assim:
MARIA DA SILVA PORTUGUES 8
MARIA DA SILVA INGLES 5
MARIA DA SILVA MATEMÁTICA 8
Crie uma procedure assim:
procedure TForm1.GerarAta;
var x: integer; pCodALuno: integer;
NomeUltimoAluno: string;
begin
while not suaQuery.eof do
begin
if cdsAta.State = dsBrowse then
cdsAta.Insert;
if (suaQuery.RecNo = 1) or (pCodAluno = suaQuery.FieldByName(´COD_ALUNO´).AsInteger) then
begin
pcodAluno:= suaQuery.FieldByName(´COD_ALUNO´).AsInteger;
NomeUltimoAluno:= suaQuery.FieldByName(´NOME´).AsString;
if suaQuery.FieldByName(´CAMPO_MATERIA´).AsString = ´MATEMATICA´ then
cdsAta.FieldByName(´NOTA_MATEMATICA´).AsString:= suaQuery.FieldByName(´CAMPO_NOTA´).AsString;
if suaQuery.FieldByName(´CAMPO_MATERIA´).AsString = ´PORTUGUÊS´ then
cdsAta.FieldByName(´NOTA_PORTUGUES´).AsString:= suaQuery.FieldByName(´CAMPO_NOTA´).AsString;
if suaQuery.FieldByName(´CAMPO_MATERIA´).AsString = ´INGLÊS´ then
cdsAta.FieldByName(´NOTA_INGLES´).AsString:= suaQuery.FieldByName(´CAMPO_NOTA´).AsString;
/// Faça este procedimento para todas as matérias...
end;
suaQuery.Next;
if (pCodAluno <> suaQuery.FieldByName(´COD_ALUNO´).AsInteger) then
begin
cdsAta.FieldByName(´NOME_ALUNO´).AsString:= NomeUltimoAluno;
cdsAta.FieldByName(´COD_ALUNO´).AsInteger:= pCodALuno;
cdsAta.Post;
pCodAluno:= suaQuery.FieldByName(´COD_ALUNO´).AsInteger;
end;
end;
end;
Chame o GerarAta antes de abrir o relatório. Ligue os QRDBText do gerador de relatório, seja no fortes ou QR, aos campos do clientdataset.
com esse procedimento vai aparecer assim:
codigo | Nome | Nota_Port | Nota_Mat | ..
10 | MARIA| 8 | 5 | ...
Espero que tenha ajudado...
inté...
Gostei + 0
06/03/2008
Ralp
Abraços.
Gostei + 0
07/03/2008
Ralp
A rotina que informou funcionou perfeitamente.
Mais uma vez muito obrigado e se precisar estamos ai.
Abraços.
Ralp Alves
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)