PDA

Ver la Versión Completa : Imprimir un qreport


gabyzava
07-08-2007, 19:12:27
hola, otra vez estoy atorada

tengo un Qreport, en el solo tengo un QRrichtext y un qrimage

No puedo imprimir.

Lo que hago es:

form2.QuickRep1.OnPreview:=form2.asigna_previo;
form2.QuickRep1.Preview;
form2.QRPreview1.QRPrinter.Print;

Pero marca error:(

Les agradezco sus respuestas

ContraVeneno
07-08-2007, 23:54:13
Sí mira, ese error se ha vuelto muy común estos días, lo más recomendable que puedes hacer, es revisar muy bien este enlace (http://www.clubdelphi.com/foros/guiaestilo.php).

Después de que lo revises, responde estas preguntas:
¿qué versión de delphi utilizas?
¿qué error es el que marca?

Saludos cordiales y con todo gusto te ayudaremos después de que revises el enlace y después de contestes estas preguntas.

:rolleyes:

gabyzava
08-08-2007, 00:59:28
Hola, lamento no haberme explicado

Utilizo DElphi 5

Marca un error al tener este codigo:
form2.QuickRep1.OnPreview:=form2.asigna_previo;
form2.QRPreview1.QRPrinter.Print;

El error dice:
Access violation, read of address 00000044

Con este codigo lo que hago es usar el OnPreviw y despues mando a imprimir, al usar el OnPreview con el procedimiento asigna_previo solamente tengo esta linea:

form2.qrpreview1.QRPrinter:=TQRprinter(sender);
-------------------------------------------------

Por otro lado si uso este otro codigo:

form2.QuickRep1.OnPreview:=form2.asigna_previo;
form2.QuickRep1.Preview;

es decir mostrar lo que se va imprimir, no sale nada en la pantalla

----------------------------------------------------------------
Espero haberme explicado
Tal vez lo que me ayude seria ver que pasos debo seguir para imprimir
el contenido del Qreport, tal vez omito algo

Muchas, pero muchas;) gracias

ContraVeneno
08-08-2007, 16:21:45
Al utilizar:

form2.QuickRep1.OnPreview:=form2.asigna_previo;
form2.QRPreview1.QRPrinter.Print;


Estas tratando de accesar a algo que todavía no se puede accesar, por eso te marca el error; el punto es que todavía no existe la vista previa, pero ya le estas queriendo enviar a imprimir desde una impresora que no existe. Por eso el error.

Segundo: ¿por qué tratas de asignar la impresora? ¿es una especial? ¿existe? :confused::confused:

Lo más común para enviar a imprimir es solamente utiliza la propiedad preview de tu reporte, en tu caso:
form2.QuickRep1.Preview;
y solo eso, no es necesario nada más. El sistema se encargará de seleccionar la impresora predeterminada o le dará la opción al usuario de que seleccione la impresora requerida y lo imprima en el momento que desee.

si al utilizar el preview solamente, no te aparece ningún dato, entonces hay que revisar como esta enlazado tu reporte a los datos y si estos se generan correctamente.

gabyzava
08-08-2007, 16:55:05
Hola, gracias por la respuesta

Realmente yo voy a imprimir sin mostrar en pantalla lo que se imprime, pero quiero verlo en el preview para ver que hay pues no lo puedo imprimir.

¿Como enlazo mis datos?

solo tengo un qrimage y un qrrich text,

Mil gracias

ContraVeneno
08-08-2007, 17:14:36
en el evento beforeprint puedes asignar la imagen y agregar el texto al richText. Tambien puedes usar el evento OnNeedData

primero prueba que se muestren los datos utilizando:

form2.QuickRep1.Preview;

Cuando compruebes que todo esta bien,
ya lo puedes enviar a imprimir directo:

form2.QuickRep1.Print;

gabyzava
08-08-2007, 18:58:07
hola otra vez

Lo siento mucho pero no logro saber como usar el beforeprint,
es algo como esto:

form2.QuickRep1.BeforePrint:=TQRreportBeforePrintevent(sender);

marca error, esta mal escrito,por otro lado no entiendo donde enlazar la imagen,

lo que tengo es esto:

form2.qrimage1.Picture.LoadFromFile(ruta+'ima.bmp');//leo imagen
form2.qrrichtext1.LINES.LoadFromFile(ruta+'2.RTF');//asigno el texto
form2.QuickRep1.Preview;

esto si muestra el Preview pero vacio, no sale la imagen ni texto


si agrego la linea :
form2.QuickRep1.OnPreview:=form3.asigna_previo;
antes del preview no sale nada

Gracias, disculpen la lata

ContraVeneno
08-08-2007, 19:02:59
BeforePrint es evento, no variable, no lo puedes asignar... :confused:

Siento que deberías de ir a lo realmente básico y buscar un manual o ejemplo de quickreports para que veas como se hace...

en la carpeta de demos de delphi viene un ejemplo.

Presionando F1 en delphi tambien puedes encontrar más información.