Somar dados agrupados no QReport
Amigos, como faço para somar os dados agrupados no Q Report
tenho 3 tabelas
caminhao
fretes
descontos do frete
usei 2 Qrgroup e um Qrdetail
1º QRGoup
mostra a placa e nome do motorista
2º QRGroup
mostra todos o frete com o valor
QRDetail
mostra os descontos do frete
o relatório fica + ou - assim
QRGroup1 -> PLACA : KDZ-5429 MOTORISTA :MARCUS
QRGroup2 -> FRETE PAGO Valor do frete: 220,00
QRDetail -> requisição nº 5555 20,00
QRDetail -> vale 50,00
QRGroup2 -> FRETE PENDENTE Valor do frete: 400,00
QRdetail -> requisição nº 1231 30,00
QRDetail -> requisição nº 4561 65,00
QRGroup2 -> FRETE PAGO Valor do frete: 280,00
QRDetail -> requisição nº 5555 30,00
QRDetail -> vale 90,00
Gostaria de mostrar no final do relatório a soma de todos os fretes
com situação = FRETE PENDENTE
obs: tentei usar o QREXp mas se existe tem 2 item na banda detail de cada frete o valor do frete é somado 2 vezes
espero que tenha sido claro
desde ja agradeço............
Delphi 7.0 e firebird..
tenho 3 tabelas
caminhao
fretes
descontos do frete
usei 2 Qrgroup e um Qrdetail
1º QRGoup
mostra a placa e nome do motorista
2º QRGroup
mostra todos o frete com o valor
QRDetail
mostra os descontos do frete
o relatório fica + ou - assim
QRGroup1 -> PLACA : KDZ-5429 MOTORISTA :MARCUS
QRGroup2 -> FRETE PAGO Valor do frete: 220,00
QRDetail -> requisição nº 5555 20,00
QRDetail -> vale 50,00
QRGroup2 -> FRETE PENDENTE Valor do frete: 400,00
QRdetail -> requisição nº 1231 30,00
QRDetail -> requisição nº 4561 65,00
QRGroup2 -> FRETE PAGO Valor do frete: 280,00
QRDetail -> requisição nº 5555 30,00
QRDetail -> vale 90,00
Gostaria de mostrar no final do relatório a soma de todos os fretes
com situação = FRETE PENDENTE
obs: tentei usar o QREXp mas se existe tem 2 item na banda detail de cada frete o valor do frete é somado 2 vezes
espero que tenha sido claro
desde ja agradeço............
Delphi 7.0 e firebird..
Marcusbraga
Curtidas 0
Respostas
Aroldo Zanela
09/02/2005
Colega,
Vejo várias formas de resolver o problema, a mais simples, ao meu ver é :
- Declare uma variável global de tipo currency;
- No manipulador de evento AfterPrint do objeto utilizado para imprimir a mensagem com status do frete, coloque algo como:
Pode utilizar uma banda de sumário com um QRLabel para formatar a exibição do total ou outra forma que julgar mais simples.
Vejo várias formas de resolver o problema, a mais simples, ao meu ver é :
- Declare uma variável global de tipo currency;
- No manipulador de evento AfterPrint do objeto utilizado para imprimir a mensagem com status do frete, coloque algo como:
if Value = ´FRETE PENDENTE" then VarGlobal := VarGlobal + qSuaQueryCOLUNA_FRETE.Value;
Pode utilizar uma banda de sumário com um QRLabel para formatar a exibição do total ou outra forma que julgar mais simples.
GOSTEI 0
Marcusbraga
09/02/2005
obrigado aroldo zanela
só mais uma pergunta
o meu select ta assim
Select * from FRETE, DESCONTOFRETE WHERE FRETE.ID = DESCONTOFRETE.IDFRETE order by id, idfrete
só que se existe algum frete que não tem nenhum desconto o frete não aparece não aparece no meu relatório
como posso resolver isso
para aparecer todos os fretes mesmo que não exista nenhum desconto nele
mais uma vez obrigado
só mais uma pergunta
o meu select ta assim
Select * from FRETE, DESCONTOFRETE WHERE FRETE.ID = DESCONTOFRETE.IDFRETE order by id, idfrete
só que se existe algum frete que não tem nenhum desconto o frete não aparece não aparece no meu relatório
como posso resolver isso
para aparecer todos os fretes mesmo que não exista nenhum desconto nele
mais uma vez obrigado
GOSTEI 0
Gandalf.nho
09/02/2005
Faça assim:
Assim vai mostrar mesmo os que não tem desconto
Select * from FRETE left join DESCONTOFRETE on FRETE.ID = DESCONTOFRETE.IDFRETE order by id, idfrete
Assim vai mostrar mesmo os que não tem desconto
GOSTEI 0
Aroldo Zanela
09/02/2005
Colega,
Use Left Outer Join (Left Join) ou equivalente ANSI para associar a tabela da esquerda, mesmo que ela não tenha registros correspondentes à associação. Utilize também a função NVL para evitar problemas com nulos.
Use Left Outer Join (Left Join) ou equivalente ANSI para associar a tabela da esquerda, mesmo que ela não tenha registros correspondentes à associação. Utilize também a função NVL para evitar problemas com nulos.
GOSTEI 0