PDA

Ver la Versión Completa : Selcción de Impresora con QuickReport


Laura Roura
25-08-2006, 17:44:39
Hola a todos.....

Necesito mandar a imprmir por una impresora que no es la que está por defecto, pero quiero hacerlo directamente sin usar el PrinterSrtUpDialog.

Conseguí aqui en el Club Delphi la siguiente opción:

QuickReport.PrinterSettingd.PrinterIndex := {Num. Impresora}

EL programa compila, pero cuando lo corro da un Access Violation. Estoy haciendo algo mal?????:(

poliburro
27-08-2006, 05:53:17
El código es el correcto, lo probable es que estas obteniendo un indice de impresora no válido.

Yo lo uso de esta manera en el evento OnBeforePrint



procedure TFrmPrinter.QTicketsBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
Var
LiIndexPrinter: Integer; //Almacena el índice de la impresora configurada
begin
LiIndexPrinter := GetPrinterIndex( ReadStringIni(FILE_CONFIG,'Printers','Ticket') ) ;

with QTickets.PrinterSettings Do
If PrinterIndex <> LiIndexPrinter Then
PrinterIndex := LiIndexPrinter;
end;

Laura Roura
29-08-2006, 03:33:08
Gracias por ayudarme ....

Ya esta corregido el error.....

El problema era que tengo declarado en la forma principal un objeto TQuickReport a un property, y a ese le asigno el reporte que el usuario desea imprimir. La cuestión estaba que cuando le asignas el PrinterIndex al TQuickReport declarado en la forma principal da error, pero si se lo asignas directamente al TQuickReport donde se construye el reporte funciona bien.

Muchísimas gracias a todos,

Laura