PDA

Ver la Versión Completa : No imprime en la Impresora Seleccionada...?


BlueSteel
19-01-2005, 21:11:12
Hola a todos...

tengo un problema más o menos...

Hice un programa que me permite emitir tickets.

El formulario de impresion lo habia realizado a traves de código, utilizando el canvas... pero como utilizan 2 impresoras diferentes... una Laser HP4100 y una Injet HP692C... no me funciono... por lo cual cree un formulario a través del QReport (se me olvidaba.. utilizo D7 e IB6..) y me funciona bien en ambas impresoras.... :D

ahora mi problema es... antes de imprimir obligo a seleccionar la impresora a través de un cuadro de dialodo... selecciona la HP692C (conexión directa al PC..) pero me imprime en la HP4100 (conexión en red..pero esta predeterminada...)

Por que selecciona otra impresora...?... como hago para que utilice la que elegi.. y no otra...?
:p gracias por cualquier ayuda que me puedan enviar... :D

marcoszorrilla
19-01-2005, 22:03:59
Así hay que hacer la asignación:

procedure TlstCli.listaclientesBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
prnDialog.Execute;
listaClientes.PrinterSettings.Printerindex:=Printer.PrinterIndex;


Un Saludo.

BlueSteel
19-01-2005, 23:43:59
Gracias... pero donde dejo eso ?

If PSD_Impresora.Execute Then
Begin
Informe.Cuponera.Print;
Actualizar; /// --> procedure que actualiza informaicón en la base..
End
Else
ShowMessage('No se pudo imprimir el informe....intente nuevamente');

Tambien tengo esta otra consulta.... el reporte tiene 10 tickets.... pero hice la opción de que podia comprar 10 o 20 tickets, para lo cual utilizo lo siguiente :

If PSD_Impresora.Execute Then
Begin
If CB_Tick.Text = '20' Then //-> si esta seleccionado 20 imprime y sigue el proceso.. por lo tanto vuelve a imprimir... si no esta seleccionado imprimira 1 vez...
Informe.Cuponera.Print;

Informe.Cuponera.Print
End
else
ShowMessage('No se pudo imprimir el informe....intente nuevamente');

por lo pronto me funciona... pero existe alguna otra forma de hacerlo...? :confused:

marcoszorrilla
20-01-2005, 07:12:59
listaClientes.PrinterSettings.Printerindex:=Printer.PrinterIndex;
//ListaClientes en realidad es un objeto TQuickRep
QuickRep1.PrinterSettings.Printerindex:=Printer.PrinterIndex;


Lo puedes colocar en el evento beforePrint de QuickRep.

Un Saludo.