Você está na página 1de 2

é o seguinte ......

após 15 dias de muito quebrar a cabeça consegui


terminar meu relatório Master/Detail .,... vou postar aqui a solução que
encontrei ...

Uso Delphi 2007 . Banco de dados FireBird 2.1 e IB Expert para criação das
tabelas ....

No meu quickreport adicionei 4 bands ..


1-Tltle
2-Groupe Header
3-Sub-Detail
4-GroupFooter

Na propriedade DataSet do quickrep1 coloquei a minha tabela que esta


como master do meu relacionamento la no DataModulo (
Modulo.CDS_cadgrupo )

Na band Group Header na propriedade LinkBand eu coloquei a band


correspondente a Group Footer.
---adicionei tambem um componente QRDBText onde na propriedade
Dataset indiquei a minha tabela Master do relacionamento e o Campo
nome.

Na band SubDetail na propriedade Dataset eu indiquei a minha tabela


Detail, do meu relacionamento Master/Detail (Modulo.CDS_relat)
---na mesma band na propriedade FooterBand indiquei a band
correspondente ao meu Group Footer.
---na mesma band na propriedade HeaderBand indiquei a band
correspondente ao meu Group Header.
---na propriedade Master eu indiquei o QuickRep1
---Adicionei 4 componentes QRDBText e um QRDBExpre para exibir o
nome do item, valor de caixa, valor de boleto, valor de banco e total de
cada item. Na propriedade Dataset e Datafield de cada um eu indiquei a
tabela Detail do relacionamento e o campo correspondente para exibição .
---No QRDBText que ira exibir o total de cada item eu indiquei QuickRep1
na propriedade Master, na propriedade Expression eu coloquei a seguinte
expressão: ( CDS_relat.V_CAIXA + CDS_relat.V_BANCO +
CDS_relat.V_BOLETO ) ___cds_relat é o nome da minha tabela e v_caixa o
nome dos campos que quero somar .

Na Band Goup Footer deixei a propriedade LinkBand em branco.


---adicionei um label com o caption ( Total/Grupo ) e um componente
QRExpre.
---Na propriedade Master do componente QRExpre eu indiquei a minha
Band SubDetail. Na propriedade Expression coloquei a seguinte
expressão SUM(CDS_relat.V_CAIXA + CDS_relat.V_BANCO +
CDS_relat.V_BOLETO) , onde cds_relat é minha tabela detail do meu
relacionamento e v_caixa, v_banco e v_boleto são os campos da tabela
detail do relacionamento que armazenam os valores que quero somar.
UFA.....Pronto ..... ta feito ...... esse foi o caso do meu relatório ... espero
ter ajudado alguem ... e que esse meu tópico ajude muitas pessoas que
tenham a mesma duvida que eu tive neste momento ... mas agora depois
de muito esforço e a ajuda de algumas pessoas aqui do forum .... eu
consegui resolver ..... agora pra comemorar abri uma lata de cerveja e
acendi um cigarro ...... haaaaaaaa ......

RESOLVIDO... Muito Obrigado ActivieDelphi e membros ..

Em alguns momentos montamos relatório compostos com grupos,


detalhes e subDetalhes:
Suponhamos que queiramos fazer dois totalizadores o primeiro a
cada Group Footer e o segundo no sumario. Passando para um
exemplo pratico: queremos um relatorio por turma com nome dos
alunos e o valor da mensalidade totalizando por turma e depois
geral.

O Formato Seria:

Escola Fulano de Tal <= Page Header ou Title

Turma: 2 Ano <= Group Header

Luiz 100,00 <= Detalhe


Alberto 200,00 <= Detalhe
Carlos 300,00 <= Detalhe

Total Parcial 600,00 <= Group Footer

Turma: 3 Ano <= Group Header

Joao 150,00 <= Detalhe


Gustavo 250,00 <= Detalhe
Bruno 350,00 <= Detalhe

Total Parcial 750,00 <= Group Footer

Total Geral 1,350,00 <= Summary

---------------------- <= Page Footer


www.cccccc.com.br <= Page Footer

O Problema esta no totalizador parcial que provalvelmente você


usa um QRExpr com a expressão "FORMATNUMERIC('R$
#,##0.00',SUM(qryPrinc.Valor))" acontece que a cada total
parcial ela acumula ou seja o primeiro total parcial seria
de 600,00 ja o segundo 1.350,00 isto se resolve se passarmos a
propriedade ResetAfertPrint do QRExpr para True... bem parece
besteira, mas já vi varias pessoas rancarem os cabelos por
isto, eu fui um!. Espero que ajude :).

Interesses relacionados