PDA

Ver la Versión Completa : Imprimir QR almacenados


Igna
02-04-2004, 12:40:49
Hola.

He hecho una aplicación que genera una serie de informes, pero no los imprime, simplemente los almacena en un directorio determinado. En el menú hay otra opción para imprimir esos informes generados anteriormente. El cógido es el siguiente:

with TQRPHandler.Create do
begin
filename:=FileListBox1.FileName;
print;
end;

Los informes están hechos con QuickReport. El FileListBox1 lo utilizo para que el usuario elija el informe que quiere imprimir.

El problema es que no se como hacer para cambiar de impresora. Creí que este hilo me sería de ayuda

http://www.clubdelphi.com/foros/showthread.php?t=6599&highlight=impresora+predeterminada

pero, aunque la solución apuntada por cadetill es buena, no resuelve del todo mi problema (lógicamente él estaba dando soluciones a otro forero con otro problema distinto).

Lo que no se es si con un PrinterSetupDialog puedo capturar directamente la elección de la impresora por parte del usuario, y después con Printer.PrinterIndex cambiar la impresora predeterminada (creo que con esto se solucionaría el problema), o igual la solución pasa por cambiar la forma de imprimir los informes generados anteriormente.

Espero haberme explicado más o menos bien, y gracias de antemano por el intento de ayuda.

__cadetill
02-04-2004, 14:54:15
Como apuntava en el hilo que mencionas, para que un listado en QR te imprima por una impresora determinada (que no sea la predeterminada en el sistema) has de asignarle esta impresora al report

QuickRep1.PrinterSettings.PrinterIndex := LoQueSea

Este "LoQueSea" lo puedes escoger desde PrinterSetupDialog si lo deseas o bien con la forma propuesta en el hilo

Igna
02-04-2004, 16:31:51
Sí, eso ya lo había leído, pero el problema es que yo, en principio, no tengo ningún objeto del tipo TQuickReport, y no puedo asignarle ninguna impresora. La forma de abrir un report anteriormente guardado, la encontré en este mismo foro(creo), pero, según yo entiendo no creo ningún objeto TQuickReport. Lo que se me ha ocurrido (no se si funcionará) es crear un Report, y, con la opción LoadFile (si no me equivoco, me suena que hay una función de ese estilo), asignar el fichero .qrp a ese Report, y entonces utilizar la solución que diste en el otro hilo. Me suena que eso ya lo intenté (últimamente tengo demasiadas lagunas mentales), y que me daba algún problema. De todas formas, hasta el lunes no podré probarlo, ya miraré si funciona o si me da algún tipo de problema.

Gracias por tu ayuda, cadetill.

Igna
05-04-2004, 11:52:34
Hola.

Ya está solucionado el problema. Lo que he hecho es crear un form con un QuickReport, y cargar el documento que había guardado anteriormente. Antes de imprimir el informe, abro el PrinterSetupDialog.

El código queda más o menos así:

Application.CreateForm(TDocImp,DocImp);
DocImp.QuickRep1.QRPrinter:=TQRPrinter.Create;
DocImp.QuickRep1.QRPrinter.Load(FileListBox1.FileName);
PrinterSetupDialog.Execute;
DocImp.QuickRep1.QRPrinter.PrinterIndex:=
printer.PrinterIndex;
DocImp.QuickRep1.QRPrinter.Preview;

Gracias por la ayuda.