Relatório Quickreport - Problemas no qrLabel.caption no evento BeforePrint
Olá pessoal, tudo bem?
Estreiando aqui no fórum e já pedindo ajuda...rs
Estou em um projeto em que estou desenvolvendo um relatório em quickreport.
Tenho dados em QRDBTEXT que está listando os dados do sistema perfeitamente.
Porém, preciso inserir listar em uma qrLabel o resultado de dias em que venceu um boleto.
Está assim...
QRDBTEXT QRLABEL
data Vencimento dias vencidos Juros Total a pagar
06/02/2014 XXXX Dias
10/01/2014 XXXX Dias
Estou usando o QRLabel.Caption e atribuindo o valor de uma função para retornar os dias vencidos. porém está pegando somente o do último registro no evento BeforePrint. :S
Alguém poderia me dar uma luz?
Grato.
Estreiando aqui no fórum e já pedindo ajuda...rs
Estou em um projeto em que estou desenvolvendo um relatório em quickreport.
Tenho dados em QRDBTEXT que está listando os dados do sistema perfeitamente.
Porém, preciso inserir listar em uma qrLabel o resultado de dias em que venceu um boleto.
Está assim...
QRDBTEXT QRLABEL
data Vencimento dias vencidos Juros Total a pagar
06/02/2014 XXXX Dias
10/01/2014 XXXX Dias
Estou usando o QRLabel.Caption e atribuindo o valor de uma função para retornar os dias vencidos. porém está pegando somente o do último registro no evento BeforePrint. :S
Alguém poderia me dar uma luz?
Grato.
Celso Kushi
Curtidas 0
Respostas
Luiz
06/03/2014
Boa tarde.
Mas esse label fica numa banda detalhe? Se sim você tem que colocar a função e o caption no beforeprint da banda detalhe e não do relatório, verifique se esta fazendo isso ...
Mas esse label fica numa banda detalhe? Se sim você tem que colocar a função e o caption no beforeprint da banda detalhe e não do relatório, verifique se esta fazendo isso ...
GOSTEI 0
Carlos Cabral
06/03/2014
Espero que voce faça uma boa estréia. Graças ao forum eu consegui resolver muitos problemas, então sempre que posso também ajudo. O que você esta questionando e o modo que você fez esta correto. Teoricamente voce deve fazer estes calculos em linhas detalhes, sendo assim a instrução a ser utilizada tem de ser no beforePrint mesmo, na realidade no beforePrint, você pode fazer praticamente tudo. Também fiquei curioso para saber se voce criou um campo para a data e outro para o resultado em dias, ou fez tudo numa string só. O correto neste caso é ter 3 strings, uma para a data, outra para o resultado e outra para o tempo (dias,meses,anos). Espero ter ajudado. Boa sorte.
GOSTEI 0
Celso Kushi
06/03/2014
Boa tarde.
Mas esse label fica numa banda detalhe? Se sim você tem que colocar a função e o caption no beforeprint da banda detalhe e não do relatório, verifique se esta fazendo isso ...
Mas esse label fica numa banda detalhe? Se sim você tem que colocar a função e o caption no beforeprint da banda detalhe e não do relatório, verifique se esta fazendo isso ...
Olá Luiz, essa Label está na banda Subdetail .
Olá Carlos, estou usando da seguinte forma...
Data Vencimento------Dias Vencidos -->-----Juros------------Total a Pagar-------
--QRDBTEXT --------------QRLabel-----------QRLabel--------------QRLabel-------
Resultado da Impressão
Data Vencimento------Dias Vencidos --
--10/02/2014---------------23-------( aqui o correto seria 21 dias)
--12/02/2014---------------23-------
O que está pegando é que qdo atribuio ao QRLabel.Caption o valor da minha variável (no BeforePrint), ele só imprime o resultado do último registro.
Já tentei fazer pegar com um loop e tbem não deu certo....
Existe algum meio de poder fazer isso?
Grato.
GOSTEI 0
Luiz
06/03/2014
Cara,
Da pra fazer sim, é tranquilo, mas é difícil falar onde esta o problema sem ver o código.
O label.caption teria que estar na banda subdetail e no beforeprint dessa mesma banda você disparar a função (o parâmetro na função teria que ser o campo que varia que veio no seu subdetail) ...
Outra saída que seria fácil você fazer, é ao invés de calcular esses dias utilizando, você calcula no próprio sql (na sua select), acredito que a função DATEDIFF()... e ai você ligaria esse campo novo que vc calculou no sql no seu QRDBTEXT ...
Da pra fazer sim, é tranquilo, mas é difícil falar onde esta o problema sem ver o código.
O label.caption teria que estar na banda subdetail e no beforeprint dessa mesma banda você disparar a função (o parâmetro na função teria que ser o campo que varia que veio no seu subdetail) ...
Outra saída que seria fácil você fazer, é ao invés de calcular esses dias utilizando, você calcula no próprio sql (na sua select), acredito que a função DATEDIFF()... e ai você ligaria esse campo novo que vc calculou no sql no seu QRDBTEXT ...
GOSTEI 0
Carlos Cabral
06/03/2014
Realmente sem ver o fonte as vezes fica difícil. Mas lá vai outra dica em cima do que voce narrou. O quick, tem algumas facilidades e instruções que podem ser utilizadas. Tente fazer o seguinte, no before printer crie uma variavel para resultado do calculo da data. Faça o calculo da data resultando a quantidade de dias. (utilize o between) o resultado da variavel, voce passa para uma label (atraves do labelcampo.caption.
GOSTEI 0
Ricardo
06/03/2014
É assim mesmo, conforme o colega Carlos citou. Eu tenho alguns aplicativos usando o QuickReport e no caso eu faço a contagem de dias em que um veículo está com a vistoria vencida.
No meu form eu tenho a função que faz os cálculos, o resultado é atribuído a uma variável. Na função de chamada do relatório (antes da chamada) eu envio o valor da variável. Ex:
QuickReport1.QRLabel1.Caption := variavel;
Dessa forma o valor será impresso no relatório, faça assim que não tem erro.
No meu form eu tenho a função que faz os cálculos, o resultado é atribuído a uma variável. Na função de chamada do relatório (antes da chamada) eu envio o valor da variável. Ex:
QuickReport1.QRLabel1.Caption := variavel;
Dessa forma o valor será impresso no relatório, faça assim que não tem erro.
GOSTEI 0
Celso Kushi
06/03/2014
Vlw Pessoal, deu certo!
Obrigado pela ajuda de vcs! Muito Obrigado!
Problema Resolvido!
Obrigado pela ajuda de vcs! Muito Obrigado!
Problema Resolvido!
GOSTEI 0