No quick Report Visualiza um coisa e Imprime outra!
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
Visualiza uma coisa e imprime outra, alguem sabe porque poderia estar acontecendo isto?
Daniel Miranda Cruz
Daniel_mc
Curtidas 0
Respostas
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).
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
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
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.
é só zerar a variavel antes de imprimir.
GOSTEI 0
Daniel_mc
23/06/2005
Valeu meu camarada! Funcionou belezinha!
GOSTEI 0