Page 1 of 1

PREVIEW + SELECCION IMPRESORA

Posted: Thu May 25, 2006 6:11 pm
by Manuel Valdenebro
Normalmente realizo las impresiones CON PREVIEW y con la impresora determinada. Me gustaria seguir asi, pero incorporar a la cabecera del preview un combobox, con las impresoras instaladas, al fin de que, si lo desea el usuario, cambie la impresora a imprimir. ¿Alquien tiene hecho algo sobre esto?

Posted: Fri May 26, 2006 12:25 am
by Raymundo Islas M.
Hola Manuel

Asi como lo comentas, no.

Lo que tengo es poquito alrevez :wink: , selecciono una impresora en un combobox de todas las impresoras ya instaladas en la Pc y a cada reporte se le puede asignar X impresora, ya sea local o de red.

Aunque, lo que comentas, suena muy bien. :D


Saludos

Posted: Sat May 27, 2006 10:49 am
by Manuel Valdenebro
Raymundo,

Gracias por tu respuesta.

Lo que busco es que por defecto, al usuario le salga el previo sin tener que seleccionar la impresora.- Solo en el caso de que lo necesite, tener un combobox, en el propio preview, para seleccionar otra impresora que la prederminada (por ejemplo, para imprimir en una impresora PDF y mandarla por email).

Ya lo he conseguido, pero a medias:

1) Con aGetPrinters(), consigo la lista de impresoras y la pongo en un ComboBox en la barra del preview.

2) Si cambio este Combo (ON CHANGE) me funciona con oDevice:hDC:=GetPrintDC(), pero claro, sale el cuadro de Windows para elegir de nuevo la impresora, y me gustaria evitarlo. Todos los intentos que he hecho para que al cambiar el ComboBox tome como activa la nueva impresora, han sido inutiles. ¿Alguien podría echarme una ayudita?
¿Que tengo que poner para que al elegir una impresora en el Combo, el programa tome como activa dicha impresora?.

Posted: Sat May 27, 2006 2:19 pm
by Manuel Valdenebro
Solucionado:


//------------------------------------------------------------------------
// función para cambiar la impresora desde previo (mcn)
//------------------------------------------------------------------------
func f_CamImpre (oDevice, cCbx )
local cPrinter

cPrinter := GetProfString( "windows", "device" , "" )
WriteProfString( "windows", "device", cCbx )
SysRefresh()
PrinterInit()
oDevice:hDC := GetPrintDefault( GetActiveWindow() )
SysRefresh()
WriteProfString( "windows", "device", cPrinter )

RETURN nil

Posted: Sat May 27, 2006 4:34 pm
by wmormar
Manuel Valdenebro wrote:Solucionado:


//------------------------------------------------------------------------
// función para cambiar la impresora desde previo (mcn)
//------------------------------------------------------------------------
func f_CamImpre (oDevice, cCbx )
local cPrinter

cPrinter := GetProfString( "windows", "device" , "" )
WriteProfString( "windows", "device", cCbx )
SysRefresh()
PrinterInit()
oDevice:hDC := GetPrintDefault( GetActiveWindow() )
SysRefresh()
WriteProfString( "windows", "device", cPrinter )

RETURN nil
Manuel,

Haz concemplado el cambio de resolucion por eltipo de impresora seleccionado, tengo entendido que cada impresora tiene su propia resolución y al generar la impresión lo hace de acuerdo a la impresora seleccionada al momento de generar la impresión?

Posted: Sat May 27, 2006 5:47 pm
by Manuel Valdenebro
William,

En las impresoras que utilizo (HP laser) me funciona. Intentaré probar en otras para comprobarlo.