No quick Report Visualiza um coisa e Imprime outra!

Delphi

23/06/2005

Galera tá acontecendo um negócio muito estranho, tenho um programa de relatorios. No relatorio tenho um QRLabel que recebe um contador que é incrementado no BeforePrint do Detail. Até ai beleza, na hora de visualizar o relatorio o QRLabel aparece com o seguinte valor ´1´, por exemplo, mas na hora de imprimir ele ta imprimindo ´69´.

Visualiza uma coisa e imprime outra, alguem sabe porque poderia estar acontecendo isto?

Daniel Miranda Cruz


Daniel_mc

Daniel_mc

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

23/06/2005

Colega,

Quando se efetua o ´preview´ é efetuada uma leitura e processamento de algum resultset (ex. Query) e quando vc mandar para impressora novamente os dados são ´rolados´ e o processamento é refeito, podendo desta forma, ter uma impressão diferente da previsão. Pelo que entendi, o referido QRLabel deve estar sendo alterado dinamicamente em algum evento relacionado a deslocamento do cursor do banco (After ou Before do RS).


GOSTEI 0
Daniel_mc

Daniel_mc

23/06/2005

procedure T_etiquetaprof.DetailBand1BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
if length(_pesquisa.CTurma.Text)=7 then
  codigo.caption:=copy(_pesquisa.ano,3,2)+´/´+copy(_pesquisa.CTURMA.Text,1,2)+´.´+copy(_pesquisa.CTURMA.Text,5,2)+´.´+InttoStr(cont)
else
  codigo.caption:=copy(_pesquisa.ano,3,2)+´/´+copy(_pesquisa.CTURMA.Text,1,3)+´.´+copy(_pesquisa.CTURMA.Text,6,2)+´.´+InttoStr(cont);
bimestre.Caption:=_pesquisa.cbimestre.Text;
ano.caption:=_pesquisa.ano+´.´+_pesquisa.semestre;
sigla.Caption:=´(´+dm.qetiprofSigla.value+´)´;
cont:=cont+1;
end;


O QRLabel referido é o codigo. E no fim dele vc pode ver que ele recebe esse contador ´cont´ que é incrementado a cada beforePrint. Quando o Form do Quick Report é iniciado ele (o cont) recebe 1. Ai a cada before ele vai incrementando, entende?

Não consigo entender o porque disto...


GOSTEI 0
Adriano Santos

Adriano Santos

23/06/2005

Então camarada, vai precisar zerar a variável antes de mandar imprimir, pois ela aparece 1 quando no preview, mas quando você manda imprimir o quickreport reprocessa, ou seja, ´refaz´ o relatório mas neste momento enviando para a impressora. Isso significa que se não zerar a variável ela será novamente incrementada a partir do número que parou.

é só zerar a variavel antes de imprimir.


GOSTEI 0
Daniel_mc

Daniel_mc

23/06/2005

Valeu meu camarada! Funcionou belezinha!


GOSTEI 0
POSTAR