extrato bancario quickreport / clientdataset
26/06/2008
0
EXTRATO BANCARIO PERIODO 01/06/2008 A 30/06/2008
BANCO: 1 - CEF
SALDO TRANSPORTADO 1.500,00
LACTO DATA TIPO CREDITO DEBITO SALDO
33 05/06/2008 D 50,00 1.450,00
34 06/06/2008 D 100,00 1.350,00
35 12/06/2008 D 150,00 1.200,00
36 20/06/2008 C 1.000,00 2.200,00
e assim por diante. Se o extrato der mais de 1 pagina, imagina que o ultimo lacto (36) foi o ultimo da primeira pagina, ao pular para a segunda repete o cabelho e atualiza o SALDO TRANSPORTADO para 2.200,00 e continua a imprimir os lancamento e para cada nova pagina vai atualizando o saldo transportado. Quando chegar no final do relatorio, na ultima pagina fazer o resumo geral +/- assim:
SALDO A TRANSPORTAR ------------------> 2.200,00
SALDO ATE 01/06/2008 ------------------> 1.500,00
TOTAL DOS CREDITOS -----------------> 1.200,00
TOTAL DOS DEBITOS --------------------> 300,00
SALDO ATUALIZADO ATE 30/06/2008 --> 2.200,00
A dificuldade esta justamente para pegar o saldo transportado da primeira pagina e tb no salto da pagina atualizar este saldo transportado, alguem poderia me ajudar com algum exemplo e mesmo alguma ideia de como fazer isso?
Aguardo com urgencia.
Ieustaquio
Posts
26/06/2008
Micheus
[b:1e050573c2]IEustaquio[/b:1e050573c2], como vc está fazendo a totalização? Está utilizando uma variável e atualizando ela no código, a cada evento BeforePrint da banda detalhe, por ex.?
Que estrutura vc já tem no seu relatório (bandas e dados)?
26/06/2008
Micheus
[b:a10ba918b1]IEustaquio[/b:a10ba918b1], como vc está fazendo a totalização? Está utilizando uma variável e atualizando ela no código, a cada evento BeforePrint da banda detalhe, por ex.?
Que estrutura vc já tem no seu relatório (bandas e dados)?
26/06/2008
Micheus
[b:48ab84c9b8]IEustaquio[/b:48ab84c9b8], como vc está fazendo a totalização? Está utilizando uma variável e atualizando ela no código, a cada evento BeforePrint da banda detalhe, por ex.?
Que estrutura vc já tem no seu relatório (bandas e dados)?
26/06/2008
Micheus
Moderador, favor remover esta bagunça. Estavar recebendo um erro ao enviar e acabei gerando esta baboseira. :oops:
26/06/2008
Ieustaquio
[b:a2b2f72f6f]IEustaquio[/b:a2b2f72f6f], como vc está fazendo a totalização? Está utilizando uma variável e atualizando ela no código, a cada evento BeforePrint da banda detalhe, por ex.?
Que estrutura vc já tem no seu relatório (bandas e dados)?[/quote:a2b2f72f6f]
nao estou utilizando o evento beforeprint da banda detalhe. Estou apanhando tanto desse relatorio que ate o momento tenho as bandas titleband = rgpageheader, rbdetail, rbsummary e rbsubdetail; onde, na banda titleband esta o cabecalho do relatorio e algumas informacoes como periodo, banco e titulos dos registro da banda detail e tb esta uma variavel do saldo a transportar que talvez nem esteja no lugar certo, na banda detail estao os campos da tabela, na banda summary esta o resumo do extrato.
ja estou perdendo noites de sonho com este relatorio e vai ter outro que me parece que vai dar mais trabalho ainda, mas esta vai ser outra etapa, primeiro tenho que fechar esse relatorio de extrato com uma certa urgencia....
Por favor me ajuda
26/06/2008
Micheus
Veja sugestão e se ela serve para seu caso. Em azul, destaquei os QRLabels que vc precisará usar, as demais informações, presumo que vc possa buscar do seu dataset e ligá-las a QRDBTexts:
[b:c56799fea9]rbTitle ou rbPageHeader[/b:c56799fea9]
+-----------------------------------------------------------------------+
| EXTRATO BANCARIO PERIODO 01/06/2008 A 30/06/2008
|
| BANCO: 1 - CEF
+-----------------------------------------------------------------------+
apenas por uma questão de ordem e facilidades em configurações, eu sugiro que use uma banda child para mostrar o saldo transportado. Então, na banda anterior, set a propriedade [i:c56799fea9]HasChild[/i:c56799fea9] = True (será automaticamente adicionada uma banda [i:c56799fea9]QRChildBand[/i:c56799fea9] vinculada a banda anterior.
[b:c56799fea9]QRChildBand[/b:c56799fea9]
+-----------------------------------------------------------------------+
| SALDO TRANSPORTADO [color=blue:c56799fea9][b:c56799fea9]lbSaldoTransportado[/b:c56799fea9][/color:c56799fea9]
|
| LACTO DATA TIPO CREDITO DEBITO SALDO
+-----------------------------------------------------------------------+
[b:c56799fea9]rbDetail[/b:c56799fea9]
+-----------------------------------------------------------------------+
| 32 05/06/2008 D 50,00 [color=blue:c56799fea9][b:c56799fea9]lbSaldo[/b:c56799fea9][/color:c56799fea9]
+-----------------------------------------------------------------------+
| 33 05/06/2008 D 50,00 1.450,00
+-----------------------------------------------------------------------+
| 34 06/06/2008 D 100,00 1.350,00
+-----------------------------------------------------------------------+
| 35 12/06/2008 D 150,00 1.200,00
+-----------------------------------------------------------------------+
| 36 20/06/2008 C 1.000,00 2.200,00
+-----------------------------------------------------------------------+
[b:c56799fea9]rbSummary[/b:c56799fea9]
+-----------------------------------------------------------------------+
| SALDO A TRANSPORTAR ------------------> [color=blue:c56799fea9][b:c56799fea9]lbSaldoTransportar[/b:c56799fea9][/color:c56799fea9]
|
| SALDO ATE 01/06/2008 ------------------> [color=blue:c56799fea9][b:c56799fea9]lbSaldoInicial[/b:c56799fea9][/color:c56799fea9]
| TOTAL DOS CREDITOS --------------------> [color=blue:c56799fea9][b:c56799fea9]lbTotalCreditos[/b:c56799fea9][/color:c56799fea9]
| TOTAL DOS DEBITOS ----------------------> [color=blue:c56799fea9][b:c56799fea9]lbTotalDebitos[/b:c56799fea9][/color:c56799fea9]
|
| SALDO ATUALIZADO ATE 30/06/2008 --> [color=blue:c56799fea9][b:c56799fea9]lbSaldoAtualizado[/b:c56799fea9][/color:c56799fea9]
+-----------------------------------------------------------------------+
1) antes da visualização/impressão do QuickRep (no evento [i:c56799fea9]BeforePrint[/i:c56799fea9] dele):
a- vc deverá inicializar as informações no rbTitle ou rbPageHeader;
b- inicializar as variáveis: Saldo (do tipo double), com o saldo inicial, Debitos e Creditos com 0;
c - inicializar o QRLabel [i:c56799fea9]lbSaldoInicial[/i:c56799fea9] com o valor do saldo inicial;
... Saldo := <saldo_inicial_obtido...>; lbSaldoInicial.Caption := FormatFloat(´#,0.00´, Saldo); Debitos := 0; Creditos := 0;
2) no evento BeforePrint da banda [i:c56799fea9]QRChildBand[/i:c56799fea9], vc inicializa o QRLabel lbSaldoTransportado com o valor da variável Saldo:
lbSaldoTransportado.Caption := FormatFloat(´,0.00´, Saldo);
3) no evento BeforePrint da banda [i:c56799fea9]rbDetail[/i:c56799fea9], vc deve calcular o novo saldo e inicializar o QRLabel [i:c56799fea9]lbSaldo[/i:c56799fea9] com este valor:
if <campo_tipo_operação> = ´D´ then begin Debitos := Debitos +<campo_valor_lancamento>; Saldo := Saldo - <campo_valor_lancamento>; end else begin Creditos := Creditos +<campo_valor_lancamento>; Saldo := Saldo + <campo_valor_lancamento>; end; lbSaldo.Caption := FormatFloat(´#,0.00´, Saldo);
4) no evento BeforePrint da banda [i:c56799fea9]rbSummary[/i:c56799fea9], vc deve inicializar os QRLabels: lbSaldoTransportar, lbTotalCreditos, lbTotalDebitos e lbSaldoAtualizado
lbSaldoTransportar.Caption := FormatFloat(´,0.00´, Saldo); lbTotalCreditos.Caption := FormatFloat(´,0.00´, Creditos); lbTotalDebitos.Caption := FormatFloat(´,0.00´, Debitos);
Bom, se não me esqueci de nada, isto deve lhe dar uma noção de como construir seu relatório. Outras maneiras são possíveis (sempre há outro modo...), mas dentro das informações que tenho, é o que posso sugerir.
Abraços
27/06/2008
Ieustaquio
... Saldo := <saldo_inicial_obtido...>; lbSaldoInicial.Caption := FormatFloat(´#,0.00´, Saldo); Debitos := 0; Creditos := 0;
lbSaldoTransportado.Caption := FormatFloat(´,0.00´, Saldo);
if <campo_tipo_operação> = ´D´ then begin Debitos := Debitos +<campo_valor_lancamento>; Saldo := Saldo - <campo_valor_lancamento>; end else begin Creditos := Creditos +<campo_valor_lancamento>; Saldo := Saldo + <campo_valor_lancamento>; end; lbSaldo.Caption := FormatFloat(´#,0.00´, Saldo);
lbSaldoTransportar.Caption := FormatFloat(´,0.00´, Saldo); lbTotalCreditos.Caption := FormatFloat(´,0.00´, Creditos); lbTotalDebitos.Caption := FormatFloat(´,0.00´, Debitos);
Quase deu certo, primeiro o qrlabel lbsaldotransportado esta pegando o saldo inicial - e primeiro registro no exemplo que citei estaria fazendo 1.500,00-50,00 e colocando no saldo transportado 1.450,00 ao invez de 1.500,00 e quando pula de pagina faz a mesma coisa.
segunda coisa que nao deu certo é que na banda rbdetail nao aparece o qrlabel lbsaldo.
ficou bem perto de dar certo.
27/06/2008
Ieustaquio
Exemplo de como esta ocorrendo:
[b:38086d8b30]QRChildBand[/b:38086d8b30]
+-----------------------------------------------------------------------+
| SALDO TRANSPORTADO [b:38086d8b30][color=red:38086d8b30]1.450,00[/color:38086d8b30][/b:38086d8b30]
|
| LACTO DATA TIPO CREDITO DEBITO SALDO
+-----------------------------------------------------------------------+
[b:38086d8b30]rbDetail[/b:38086d8b30]
+-----------------------------------------------------------------------+
| 33 05/06/2008 D 50,00 [color=red:38086d8b30][b:38086d8b30]1.450,00[/b:38086d8b30][/color:38086d8b30]
+-----------------------------------------------------------------------+
| 34 06/06/2008 D 100,00 1.350,00
+-----------------------------------------------------------------------+
| 35 12/06/2008 D 150,00 1.200,00
+-----------------------------------------------------------------------+
| 36 20/06/2008 C 1.000,00 2.200,00
+-----------------------------------------------------------------------+
mas o correto seria da seguinte forma:
+-----------------------------------------------------------------------+
| SALDO TRANSPORTADO [b:38086d8b30][color=darkblue:38086d8b30]1.500,00[/color:38086d8b30][/b:38086d8b30]
|
| LACTO DATA TIPO CREDITO DEBITO SALDO
+-----------------------------------------------------------------------+
[b:38086d8b30]rbDetail[/b:38086d8b30]
+-----------------------------------------------------------------------+
| 33 05/06/2008 D 50,00 [color=darkblue:38086d8b30][b:38086d8b30]1.450,00[/b:38086d8b30][/color:38086d8b30]
+-----------------------------------------------------------------------+
| 34 06/06/2008 D 100,00 1.350,00
+-----------------------------------------------------------------------+
| 35 12/06/2008 D 150,00 1.200,00
+-----------------------------------------------------------------------+
| 36 20/06/2008 C 1.000,00 2.200,00
+-----------------------------------------------------------------------+
onde pode esta o erro, fiz tudo como vc havia me passado
02/07/2008
Micheus
Pelo que vc relatou, parece que o evento [i:ad56c4ae6b]BeforePrint[/i:ad56c4ae6b] do [i:ad56c4ae6b]QrChilBand[/i:ad56c4ae6b] está ocorrendo após o primeiro BeforePrint da banda [i:ad56c4ae6b]rbDetail[/i:ad56c4ae6b] - o que é estranho.
A título de teste, faça o seguinte, aumente a altura da sua banda [i:ad56c4ae6b]rbTitle[/i:ad56c4ae6b] ou [i:ad56c4ae6b]rbPageHeader[/i:ad56c4ae6b], e coloque o [i:ad56c4ae6b]lbSaldoTransportado[/i:ad56c4ae6b], bem como, mova a inicialização dele para o evento BeforePrint desta banda (comente ou remova ela da banda QRChildBand) e veja como fica.
A idéia é que antes que uma banda detalhe seja impressa, o valor da variável saldo naquele momento seja movido para este QRLabel.
Abraços
Clique aqui para fazer login e interagir na Comunidade :)