Page 1 of 1

Error impresora en Vista

Posted: Tue May 12, 2009 4:54 pm
by Manuel Valdenebro
En una aplicación que viene corriendo, desde hace años, perfectamente, un cliente me detecta un error al ejecutar el programa en Windows Vista.

El error se produce tanto al imprimir con Printer como con Report y es el siguiente:

La primera vez que imprime algo lo hace correctamente, pero cuando intenta imprimir una segunda vez, sea la misma opción o en otra pantalla, sale el siguiente aviso de la clase Tprinter: There are not printers installed. Please exit this application .....

y el siguiente error.log:

Error BASE/1605 Invalid self: NEW
Args:
[ 1] = O Object
[ 2] = U

Stack Calls
===========
Called from: report.prg => TREPORT:NEW(282)
Called from: .\source\classes\PDREPORT.PRG => RPTBEGIN(0)


He probado la aplicación en un equipo propio, donde tengo instalado Vista y desgraciadamente se repite el dichoso error.

¿Como puede solucionarse este problema? ¿Alguien puede ayudarme?

Un saludo

Re: Error impresora en Vista

Posted: Tue May 12, 2009 5:32 pm
by Kleyber
Hola Manuel,

Mira esto: http://forums.fivetechsupport.com/viewt ... sta#p57341

Espero te ayude.

Saludos,

Re: Error impresora en Vista

Posted: Tue May 12, 2009 7:52 pm
by Manuel Valdenebro
Kleyber wrote:Hola Manuel,

Mira esto: http://forums.fivetechsupport.com/viewt ... sta#p57341

Espero te ayude.
Muchas gracias Kleiber por tu ayuda.

Mi problema es que yo tengo incluido en la clase rpreviews, una función para cambiar "online" de impresora, que es muy util y que viene funcionando perfectamente en XP.

Esta es la función:

func f_CamImpre (oDevice, cCbx )
local cPrinter

// impresora predeterminada
cPrinter := GetProfString( "windows", "device" , "" )
// instalamos la impresora elegida
WriteProfString( "windows", "device", cCbx )
// refrescamos el sistema
SysRefresh()
//iniciamos impresora
PrinterInit()

DeleteDC( oDevice:hDC ) // Sugestion by Enrico M. Giordano

// temporal printer
oDevice:hDC := GetPrintDefault( GetActiveWindow() )

SysRefresh()
// default printer again
WriteProfString( "windows", "device", cPrinter )

RETURN nil


He leido a Richard, pero la verdad, no sé como cambiar esta función para incluirle los puertos y que me funcione en Vista.

Muchas gracias de nuevo y un saludo.

Manuel

Re: Error impresora en Vista

Posted: Thu Oct 22, 2009 7:57 pm
by dobfivewin
Hola estimado

pudiste solucionar este problema ?

Gracias

David
Argentina

Re: Error impresora en Vista

Posted: Fri Oct 23, 2009 4:21 am
by Manuel Valdenebro
Lo solucioné, pero suprimiendo en Rpreview la opción para cambiar de impresora. Eso funciona en XP pero no en Vista.

Un saludo