Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   QReport: .Print y .Preview salen distintos (a veces) (https://www.clubdelphi.com/foros/showthread.php?t=95537)

javierin_ 25-01-2022 12:20:42

QReport: .Print y .Preview salen distintos (a veces)
 
Buenas tardes.

Trabajo con Delphi 7 y QReport. He observado que a veces (no siempre) lo que sale en previsualización no coincide con lo que sale por la impresora. Pienso que puede ser algún residuo que se queda en memoria, pero no sé por dónde tirar. Por favor, me podéis echar una mano? Gracias.

Las líneas se hacen con QRDBText. El Query se crea en el Form y se puede ver el resultado en un DBGrid:

Código Delphi [-]
   datamodule4.query11.sql.clear; // Limpiamos...
   datamodule4.query11.sql.add('select * from histocom.dbf');  // Pillamos todos los registros de la tabla y empezamos a seleccionar
   datamodule4.query11.sql.add('where (codigo=:vcodigo) and (trimestre=:vtrimestre) and (anzo=:vanzo)');  // Comprobamos si hemos elegido algún mes en concreto o queremos que salga el trimestre entero
   if vmes>=1 then datamodule4.query11.sql.add(' and (mes=:vmes)');   // ...y lo ordenamos según lo que esté pinchado
   if radiobutton1.checked=true then datamodule4.query11.sql.add('order by fecha')
   else if radiobutton2.checked=true then datamodule4.query11.sql.add('order by factura')
   else datamodule4.query11.sql.add('order by nomcli'); // Ahora declaramos los parámetros que vamos a usar en el Query
   datamodule4.query11.params[0].value:=vcodigo;
   datamodule4.query11.params[1].value:=vtrimestre;
   datamodule4.query11.params[2].value:=vanzo;
   if vmes>=1 then datamodule4.query11.params[3].value:=vmes; // Si hemos hecho uso del parámetro vmes debemos declararlo
   datamodule4.query11.open;
   dbgrid1.setfocus;

Lo siguiente es lo que pasa cuando pinchamos en el botón de Vista Previa:

Código Delphi [-]
   
   quickreport63:=Tquickreport63.create(application);
   try
      with datamodule4.table16 do
      begin
         if fieldvalues['nompro']<>null then
            quickreport63.qrlabel11.caption:=fieldvalues['nompro'];
         . . .
      end;
      quickreport63.previewmodal; // Primero vemos una vista previa...y desde allí mismo pinchamos en Imprimir
   finally
      quickreport63.free;
   end;

El resultado final es: Lo que sale en el DBGrid y en el papel coinciden al 100% y es correcto. Lo que sale en la Vista Previa es lo que falla a veces. Es raro, verdad? Muchas gracias!!

kuan-yiu 26-01-2022 10:58:55

Es un error que viene de viejo. Hay componentes (TQRShape) que no se ven igual en diseño, en la vista previa, en la impresora o en el PDF.
Sucede con varios elementos, debes buscar concretamente lo que está fallando tal vez tengas suerte. Tenemos informes en Delphi5 en los que hemos optado por eliminar aquello que presenta discrepancias y también se modificó hace tiempo la previsualización para arreglar otras.

javierin_ 31-01-2022 11:41:41

Hola kuan-yiu. Muchas gracias por tu respuesta. La verdad es que no tenía ni idea que pasaran estas cosas. Es la primera vez que me pasa...al menos que me haya dado cuenta. Todos los días te enteras de algo nuevo. En fin, de nuevo muchas gracias.


La franja horaria es GMT +2. Ahora son las 23:10:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi