Ajuda no relatório de cheques
Acho que terminei um relatório, mas ele não me mostra a soma total:
Uso o Delphi 7 e Firebird 2.0
Primeiramente montei um relatório no QuickReport 4 bandas,
1> RbTitle = com o titulo de relatórios
2> RbColumnReader = especificando os dados.
3> RbDetail = com os campos que vai me mostrar no relatório, no caso me mostra: o codigo do aluno, numero do cheque, conta, agencia e data de vencimento do cheque.
4> RbSummary = com um QrLabel nome de Total, onde vai me mostrar o meu total da soma:
Os dados ficaram assim:
Primeiramente declarei uma variavel na public:
Acrescentei uam IbQuery para a instrução do relatório, a :
[b:22d27dfbcf]> DtmIza => DataModule
> QryIza => IbQuery que busca os dados do relatório na tabela de lancamentos de acordo com a instrução:
> QrySomasLancados => IbQuery responsavel pela soma de valores para mostrar no QrLabel (Total),
Pois estou fazendo um filtro para buscar os cheques por data de vencimentos.[/b:22d27dfbcf]
O Relatório (QuickRep1) esta linkado ao (DtmIza.QryIza).
E no botão para exibir o relatório coloquei esses dados:
Pois no Evento BeforePrint da banda QrSummary onde mostra os valores eu acrescentei :
Onde o Total é o QrLabel que me mostra o total.
[b:22d27dfbcf]Mas o problema é que não mostra o resultado da soma pois aparece zero igual a imagem abaixo, pois preciso de ajuda nisso.[/b:22d27dfbcf]
[img]http://www.4shared.com/file/36411772/6e85d01/Sem_Ttulo-1.html[/img]
E ai o que será? :blink:
Uso o Delphi 7 e Firebird 2.0
Primeiramente montei um relatório no QuickReport 4 bandas,
1> RbTitle = com o titulo de relatórios
2> RbColumnReader = especificando os dados.
3> RbDetail = com os campos que vai me mostrar no relatório, no caso me mostra: o codigo do aluno, numero do cheque, conta, agencia e data de vencimento do cheque.
4> RbSummary = com um QrLabel nome de Total, onde vai me mostrar o meu total da soma:
Os dados ficaram assim:
Primeiramente declarei uma variavel na public:
valor1, valor2, valor3 : Real;
Acrescentei uam IbQuery para a instrução do relatório, a :
[b:22d27dfbcf]> DtmIza => DataModule
> QryIza => IbQuery que busca os dados do relatório na tabela de lancamentos de acordo com a instrução:
> QrySomasLancados => IbQuery responsavel pela soma de valores para mostrar no QrLabel (Total),
Pois estou fazendo um filtro para buscar os cheques por data de vencimentos.[/b:22d27dfbcf]
O Relatório (QuickRep1) esta linkado ao (DtmIza.QryIza).
E no botão para exibir o relatório coloquei esses dados:
With DtmIza.QryRelEmp do Begin Close; Sql.Clear; Sql.Add (´Select Codigo, Empresa, Cnpj From Empresa´); Open; end; With DtmIza.QryIza Do begin Close; Sql.Clear; Sql.Add(´Select Aluno, Valor, Vencimento, Pagamento, Conta, Agencia, cheque, Tipo From Lancamento´); Sql.Add(´where (Vencimento >= :d1) and (Vencimento <= :d2) and cheque is not null Order By Cheque, Vencimento ´); ParambyName(´d1´).value := FormatDateTime (´dd/mm/yyyy´ , StrToDate (TxtDataInicial.Text)); ParambyName(´d2´).value := FormatDateTime (´dd/mm/yyyy´ , StrToDate (TxtDataFinal.Text)); Open; End ; If DtmIza.QryIza.RecordCount = 0 Then Begin ShowMessage(´Sem dados para relatório!´); exit; End Else With QrySomasLancados do Begin QrySomasLancados.Close ; QrySomasLancados.Sql.Text :=´Select sum(Valor)as "SOMA" From Lancamento where cheque is not null´; QrySomasLancados.Open ; end; valor1 := QrySomasLancados.FieldByName(´Soma´).AsFloat; With TFrmRelChequePre.Create(Application) Do Try QuickRep1.Preview; Finally Free; end; close;
Pois no Evento BeforePrint da banda QrSummary onde mostra os valores eu acrescentei :
procedure TFrmRelChequePre.QRBand4BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin Total.Caption := FloatToStr(valor1); end;
Onde o Total é o QrLabel que me mostra o total.
[b:22d27dfbcf]Mas o problema é que não mostra o resultado da soma pois aparece zero igual a imagem abaixo, pois preciso de ajuda nisso.[/b:22d27dfbcf]
[img]http://www.4shared.com/file/36411772/6e85d01/Sem_Ttulo-1.html[/img]
E ai o que será? :blink:
Robinhocne
Curtidas 0
Respostas
Darkrme
30/01/2008
Amigo.. no lugar deste codigo:
Tenta colocar assim:
[b:fd6d57bb32]Declare uma variavel i do tipo integer no comeco da procdure[/b:fd6d57bb32]
Bom, se tiver algum erro no codigo eh pq eu utilizo ADO e eh um pouco diferente a sintaxe.. eh soh vc arrumar.. mas a ideia eh essa =)
espero ter ajudado.
With QrySomasLancados do Begin QrySomasLancados.Close ; QrySomasLancados.Sql.Text :=´Select sum(Valor)as "SOMA" From Lancamento where cheque is not null´; QrySomasLancados.Open ; end; valor1 := QrySomasLancados.FieldByName(´Soma´).AsFloat;
Tenta colocar assim:
[b:fd6d57bb32]Declare uma variavel i do tipo integer no comeco da procdure[/b:fd6d57bb32]
DtmIza.QryIza.First; valor1 : 0; for i := 1 to DtmIza.QryIza.RecordCount do begin valor1 := valor1 + DtmIza.QryIza.FieldByName(´Valor´).AsFloat; DtmIza.QryIza.Next; end; FrmRelatorioCheques.Total.Caption := FloatToStr(valor1);
Bom, se tiver algum erro no codigo eh pq eu utilizo ADO e eh um pouco diferente a sintaxe.. eh soh vc arrumar.. mas a ideia eh essa =)
espero ter ajudado.
GOSTEI 0
Robinhocne
30/01/2008
não deu certo, não aparece nada!
GOSTEI 0