Fórum Imprimindo a partir de várias tabelas com Q Report. #166886
28/06/2003
0
Por favor me ajudem tenho urgencia em desenvolver este relatório.
Nisso Lima
Nisso
Curtir tópico
+ 0Posts
29/06/2003
Rm
Alguns meses atras tive quase o mesmo problema: Uma empresa (Tabela Pai) seus recursos humanos (tabela filho) e maquinas (tabela filho).
O única maneira que encontrei for criar uma tabela auxilar em que todos os campos que necessitava ( provindos das duas tabelas filho) eram preenchidos . Assim o detail do Qrep se relaciona a uma tabela somente.
Toda vez que clico para imprimir os dados (setados pela tabela pai e provindos das duas tabelas filho) são copiados para esta tabela auxiliar( no exemplo table10). Desenvolvendo isto tu perceberas que é necessário saber qual das tabelas tem mais registros (para insert na table temp 10 as que tem menos os registros são inseridos com edit). Após este prcocedimento e impressão , criei um evento que apaga todos os registros temporários.procedure TForm3.BitBtn4Click(Sender: TObject);
procedure TForm3.BitBtn4Click(Sender: TObject);
var
recs1,recs2:integer; // para contar os registros das 2 table filho
begin
with datamodule5 do begin
recs1:=Table8.RecordCount;// conta os registros
recs2:=table9.RecordCount;// contas os registros
if recs1>=recs2 then begin// verifica se tabela 8 tem mais que a 9
table8.First;// se sim prossegue
table10.first;//tabela para registros temporários
while not table10.eof do begin
table10.delete;//primeiro apaga qualquer registro temporário anterior/
end;
while not table8.eof do begin
table10.insert;// insere os registros da tabela 8 na tabela temp
table10RH.VALUE:=table8rh.value;
table10Qtd.value:=table8qtd.value;
table8.next;
end;
TABLE10.FIRST;
table9.first;
while not table9.eof do begin
table10.Edit;// insere os registros da tabela 9 na table 10 temp
table10MQ.VALUE:=table9mq.value;
table10QtdMQ.value:=table9qtdmq.value;
TABLE10.next;
table9.next;
end;
end; //até aqui se recs1>=recs2
if recs1<recs2 then begin// o mesmo mas com table 9 com mais registros
table9.First;
table10.first;
while not table10.eof do begin
table10.delete;
end;
while not table9.eof do begin
table10.insert;
table10mq.VALUE:=table9mq.value;
table10Qtdmq.value:=table9qtdmq.value;
table9.next;
end;
TABLE10.FIRST;
table8.first;
while not table8.eof do begin
table10.Edit;
table10rh.VALUE:=table8rh.value;
table10Qtd.value:=table8qtd.value;
TABLE10.next;
table8.next;
end;
end;
form8.quickrep1.preview;// finalmente o preview com detail setado para tabela 10 ou temporária
end;
end;
Espero ter ajudado
Abraços RM
Gostei + 0
30/06/2003
Luciano França
o quickReport só que tem muito mais recursos, inclusive tu pode colocar
3 bandas subDetail e dentro dela colocar bandas Header, Footer etc..
assim tudo conseguirar criar esse relatorio sem dificuldades.
um forte abraco.
Luciano França.
Gostei + 0
30/06/2003
Luciano França
3 bandas subDetail e nelas outras bandas como Footer e Header dentre outras e criar o relatorio que tu quer se problemas..
um forte abraco.
Luciano Franca
Gostei + 0
30/06/2003
Luciano França
3 bandas subDetail e nelas outras bandas como Footer e Header dentre outras e criar o relatorio que tu quer se problemas..
um forte abraco.
Luciano Franca
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)