Somar Vários Details no QuickReport
Tenho um problema que pedi solução aqui e não tive êxito:
Numa aplicação/Tabela eu cadastro o Pai, Filho1 e Filho2.
Preciso montar um relatório onde mostre:
Pai
Filho1
Filho2
E pela sequência, o próximo cadastro:
Pai
Filho1
Filho2
Esses campos tenho colocado numa Band Detail (Pai, Filho1, Filho2) e vai me dando o relatório exatamente do jeito que necessito... O problema é na soma! Uso o DetailCout do componente SysData para somar e ele me retorna apenas o 1º valor da Band. Ou seja, onde tem 3 ele mostra apenas 1.
Exemplo:
Geraldo
Junior
Mariana
José
Alisson
Everton
... E assim por diante está perfeito; Só que no resultado:
Ao invé de 6, tenho 2.
Com fazer essa soma? :shock:
DELPHI 5
PARADOX
Numa aplicação/Tabela eu cadastro o Pai, Filho1 e Filho2.
Preciso montar um relatório onde mostre:
Pai
Filho1
Filho2
E pela sequência, o próximo cadastro:
Pai
Filho1
Filho2
Esses campos tenho colocado numa Band Detail (Pai, Filho1, Filho2) e vai me dando o relatório exatamente do jeito que necessito... O problema é na soma! Uso o DetailCout do componente SysData para somar e ele me retorna apenas o 1º valor da Band. Ou seja, onde tem 3 ele mostra apenas 1.
Exemplo:
Geraldo
Junior
Mariana
José
Alisson
Everton
... E assim por diante está perfeito; Só que no resultado:
Ao invé de 6, tenho 2.
Com fazer essa soma? :shock:
DELPHI 5
PARADOX
Osmar Cardoso
Curtidas 0
Respostas
Abueno_silva
18/08/2003
Pelo que entendi, pai, filho1 e filho2 são campos do mesmo registro, certo? Então, o DetailCount não vai funcionar, pois ele conta apenas os registros. Uma forma de contornar isso é utilizando uma variável e fazer a soma ´na mão´. Declare a variável no início do código do Report, e no BeforePrint da DetailBand verifique se os campos estão preenchidos, somando-os na variável. No final, coloque uma QRLabel e substitua o Caption pelo total da sua variável.
Espero ter sido útil.
[]´s
Espero ter sido útil.
[]´s
GOSTEI 0
Osmar Cardoso
18/08/2003
Abueno, acho que é bem isso que vc falou mas tentei muito e não consegui desenvolver essa função.
Realmente preciso contar quantos registros tenho preenchidos na Tabela!
Vê se consegue me dar mais detalhes sobre o preenchimento dessa variável?!? Por favor... :?
Realmente preciso contar quantos registros tenho preenchidos na Tabela!
Vê se consegue me dar mais detalhes sobre o preenchimento dessa variável?!? Por favor... :?
GOSTEI 0
Abueno_silva
18/08/2003
Vamos lá.
Na Unit do QReport, procure a seção var(logo antes da implementation) e declare a variável:
v_tot_reg : integer;
No evento BeforePrint do Report:
v_tot_reg := 0;
No evento BeforePrint da DetailBand (onde são impressos os registros):
if QRDBText1.Caption <> ´´ then
inc(v_tot_reg);
if QRDBText2.Caption <> ´´ then
inc(v_tot_reg);
if QRDBText3.Caption <> ´´ then
inc(v_tot_reg);
Acrescente uma SummaryBand no Report, coloque uma label e e coloque no evento BeforePrint da Band:
QRLabel1.Caption := inttostr(v_tot_reg);
Isto deve funcionar, agora é só você formatar o relatório como quiser.
Se ainda tiver alguma dúvida ou problema, é só perguntar.
[]´s
Na Unit do QReport, procure a seção var(logo antes da implementation) e declare a variável:
v_tot_reg : integer;
No evento BeforePrint do Report:
v_tot_reg := 0;
No evento BeforePrint da DetailBand (onde são impressos os registros):
if QRDBText1.Caption <> ´´ then
inc(v_tot_reg);
if QRDBText2.Caption <> ´´ then
inc(v_tot_reg);
if QRDBText3.Caption <> ´´ then
inc(v_tot_reg);
Acrescente uma SummaryBand no Report, coloque uma label e e coloque no evento BeforePrint da Band:
QRLabel1.Caption := inttostr(v_tot_reg);
Isto deve funcionar, agora é só você formatar o relatório como quiser.
Se ainda tiver alguma dúvida ou problema, é só perguntar.
[]´s
GOSTEI 0
Osmar Cardoso
18/08/2003
Alexandre, oi eu traveis...
Do jeito que vc me passou ele continuou somando os registros em branco...
Aí fiz direto na tabela:
Table1.Pai.Value...
Deu certo só na primeira vez que se abre o QuickReport! Se abro novamente sem fechar o programa, ele remonta a soma...
Agora a dúvida é como fechar o valor na variável após fechar o QuickReport!
Agradeço muito sua atenção!
Do jeito que vc me passou ele continuou somando os registros em branco...
Aí fiz direto na tabela:
Table1.Pai.Value...
Deu certo só na primeira vez que se abre o QuickReport! Se abro novamente sem fechar o programa, ele remonta a soma...
Agora a dúvida é como fechar o valor na variável após fechar o QuickReport!
Agradeço muito sua atenção!
GOSTEI 0
Abueno_silva
18/08/2003
É estranho, já que quando você abre o QR ele deveria zerar...
Você pode tentar zerar a variável no final da impressão (evento AfterPrint do QR), ou então declará-la na seção public do report, daí antes de dar o preview ou o print, você inicia a variável no form.
[]´s
Você pode tentar zerar a variável no final da impressão (evento AfterPrint do QR), ou então declará-la na seção public do report, daí antes de dar o preview ou o print, você inicia a variável no form.
[]´s
GOSTEI 0
Osmar Cardoso
18/08/2003
Alexandre, por favor, me desculpe amigo...
Eu não havia declarado no evento BeforePrint do Report como vc me orientou (v_tot_reg := 0)!
Com o código completo que me orientou com aquelas modificações que te passei e funcionou perfeitamente.
Vc é muito prestativo. Meus agradecimentos sinceros.
Abraços e até a próxima dúvida.
Eu não havia declarado no evento BeforePrint do Report como vc me orientou (v_tot_reg := 0)!
Com o código completo que me orientou com aquelas modificações que te passei e funcionou perfeitamente.
Vc é muito prestativo. Meus agradecimentos sinceros.
Abraços e até a próxima dúvida.
GOSTEI 0