Page 1 of 1

SetPrintDefault no cambia el valor de PrnGetName (solucionad

PostPosted: Wed Oct 10, 2012 2:30 am
by interwin
Buenas noches

si tengo el siguiente programa

.
.
cImpresoraAnterior:=PrnGetName()
SetPrintDefault(cNuevaImpresora)
msginfo(PrnGetName())
.
.

Windows si establece a cNuevaImpresora como la impresora por defautl, pero mi aplicacion FWH no ( PrnGetName() sigue referenciando a cImpresoraAnterior), hasta que cierro y abro de nuevo mi aplicacion.

Parece ser que alguna variable de FWH no se actualiza con SetPrintDefault(cNuevaImpresora) y sigue tomando el valor de la impresora predeterminada al entrar al programa(cImpresoraAnterior).

¿como hago para corregir esto?

Saludos.

Re: SetPrintDefault no cambia el valor de PrnGetName

PostPosted: Wed Oct 10, 2012 5:34 pm
by karinha

Re: SetPrintDefault no cambia el valor de PrnGetName

PostPosted: Wed Oct 10, 2012 11:47 pm
by interwin
Karinha

Funciono

Muchas Gracias.

Re: SetPrintDefault no cambia el valor de PrnGetName

PostPosted: Thu Oct 11, 2012 12:08 am
by interwin
Karinha

Funciono:

cImpresoraAnterior:=( "windows", "device" , "" )
WriteProfString( "windows", "device",cNuevaImpresora)
SysRefresh()
PrinterInit()
msginfo(PrnGetName())
WriteProfString( "windows", "device",cImpresoraAnterior)


Tambien funciona con:

cImpresoraAnterior:=PrnGetName()
SetPrintDefault(cNuevaImpresora)
SysRefresh()
PrinterInit()
msginfo(PrnGetName())
SetPrintDefault(cImpresoraAnterior)

Muchas Gracias.

Re: SetPrintDefault no cambia el valor de PrnGetName (solucionad

PostPosted: Thu Oct 11, 2012 12:29 am
by sysctrl2
ya que andamos en este tema:

Code: Select all  Expand view
PRINTER oPrn PREVIEW
oPrn:Setup()
* ......
* .....
ENDPRINT
 


Amigos el method oPrn:Setup() de la class tprinter presenta 2 botones: [ Acepta ], [ Cancelar ]

abra forma de configurar las class para que cuando demos CANCELAR

se regrese y no prosiga con el reporte?

por ejemplo:

Code: Select all  Expand view
if ! oPrn:setup()
     retur nil
endif


Saludos..

Re: SetPrintDefault no cambia el valor de PrnGetName (solucionad

PostPosted: Thu Oct 11, 2012 9:36 am
by Antonio Linares
César,

Modificando asi el método Setup() de la Clase TPrinter:

METHOD Setup() BLOCK { | Self, hDC | hDC := PrinterSetup(), ::Rebuild(), hDC != 0 }

devuelve un valor lógico, lo que te permite hacer:

Code: Select all  Expand view

if ! oPrinter:Setup()
   return nil
endif
 

Re: SetPrintDefault no cambia el valor de PrnGetName (solucionad

PostPosted: Thu Oct 11, 2012 4:56 pm
by sysctrl2
Excelente Antonio,

Haremos la prueba

Gracias..