PDA

Ver la Versión Completa : Problema QuickReport "there is no default printers"


Javiuhs
22-09-2011, 10:47:06
Hola,

Estoy trabajando con delhpi en un servidor Windows 2008 server de 64 bits, y cuando añado al ajecutable de Delphi un informe generado por QuickReport, el ejecutable me deja de funcionar(ni siquiera me abre la aplicacion) y me aparece un mensaje con siguiente error "there is no default printers".

El servidor tiene una unica impresora agregada(una impresora de red), y esta esta puesta como predeterminada. Mediante delphi he comprobado que ve correctamente la impresora( GetProfileString('Windows', 'device', '', ResStr, 255); )...Pero no hay manera de que funcione, ¿alguien me puede ayudar? es bastante urgente.

Como dato, el ejecutable funciona correctamente en mi equipo de manera local(un WinXp sp3 de 32 bits) y al servidor accedo mediante tesminal server.

Gracias,
Javi.

defcon1_es
22-09-2011, 18:17:32
Hola.
¿Con qué versión de QuickReport trabajas?
¿Has puesto esta incidencia en sus foros?

Me suena que con la version de QR que iba con Delphi6 tenía ese problema, si no hay impresoras instaladas, no puede previsualizar ni imprimir nada, habia que tener al menos una "Generica / solo texto".

Javiuhs
23-09-2011, 10:43:59
Hola defcon1_es,

Pues la version de Delphi es la 7.3.3.4 y la del componente quick report es la 3.0.

Todavia no he puesto ninguna entrada en sus foros, ya que expresarme en ingles se me da de pena, pero si por aqui no consigo nada me da que me tocara sacar el diccionario e intentarlo.

Un Saludo.

ALMERA
18-10-2011, 18:21:36
Hola Javiuhs, tengo exactamente el mismo problema que tu, tengo un servicio en un Windows Server 2008 64 bits que usa un informe de quickreport que luego lo paso a PDF y lo envio por email, el problema es que cuando crea el formulario donde está contenido el QuickReport da el jodido error "There is no default printer currently selected" el servidor tiene una imporesora por defecto que es la que viene por defecto con la instalación de Windows (Microsoft XPS Document Writer) si lo pruebo en mi ordenador por ejemplo con un windows XP funciona correctamente, creo que tiene que ser un tema de permisos del servicio que no ve ninguna impresora predeterminada, el servicio inicia la sesion como Sistema Local.

¿solucionastes este problema finalmente?


Un saludo.

olbeup
19-10-2011, 09:10:20
El problema que comentas es del propio Terminal Server, porque cuando te conectas se añaden las impresora que tu tienes al servidor, cuando otro compañero se conecta, añade las impresoras de tu compañero, si tu tienes una impresora que no tiene el servidor, el servidor desactiva la impresora por defecto, lo que tienes que hacer es cuando te conectes con Conexión a Escritorio remoto, (Recursos locales) desactiva (Impresoras).

Espero que te sirva

Un saludo.

Javiuhs
19-10-2011, 09:26:17
Pues la verdad, no he conseguido solucionar el problema. He hecho mil pruebas y nada(incluida la que nos comnetas Olbeup). Y desde el foro de quickreport no me han dado ninguna solucion.

Al final he optado por generarme mi listado en un fichero html, pero si dais con la solucion..Estaria bien que la pusieseis por aqui, por que es un error un tanto raro.

Jab
19-10-2011, 19:40:58
Hola. Para solucionarlo deberías tener aplicado en el propio report la impresora por defecto, al menos, forzarlo.

Algo así:
Report.PrinterSettings.PrinterIndex:= (valor entero)

Siendo (Valor entero) el índice de la impresora por defecto que quieres aplicar a la hora de imprimir el report.

Es importante tener una impresora por defecto, la Microsoft XPS Document Writer no es válida. Puedes instalar por ejemplo, el creatorPDF y tener una virtual en PDF.

Espero que te sirva, a mi normalmente me sirve en todos los Windows, desde XP hasta 7. No entiendo por qué no te da error en el Windows XP si tienes todo igual.

Saludos.

ALMERA
20-10-2011, 18:53:03
Hola el problema es que Windows Server 2008 especifica distintos permisos a las cuentas por defecto (Administradores, LocalSystem, ...) que los windows anteriores.

http://technet.microsoft.com/es-es/library/cc731677%28WS.10%29.aspx

Este es el problema se puede ver en este enlace en la parte más abajo donde dice "Cambios en los permisos predeterminados".

Javiuhs el problema que el servicio al estar en localsystem inicia en la sesion(0) de windows donde no hay impresora predeterminada por defecto, si ejecutas la aplicación sin servicio funciona correctamente porque está usando en modo aplicación y está usando la sesion(1) y usando los privilegios del usuario que ha iniciado sesión.

http://www.consultec.es/comunicacion/articulos/aplicaciones_windows7.asp
mirar este enlace en la parte donde dice aislamiento de la sesion(0) que explica mucho mejor.

Yo lo he solucionado arrancando el servicio como administrador, te vas a servicios y en la pestaña de iniciar sesión en vez de usar cuenta del sistema local que es la que usa por defecto, elige la otra opción y pon el usuario y la contraseña, yo he usado la de administrador, pero sino puedes pues usa la de otro usuario que tenga alguna impresora por defecto, con esto me funciona perfectamente y no he tenido que poner "Report.PrinterSettings.PrinterIndex:= (valor entero)" ya que todas estas soluciones las habia probado y nada de nada, de todas formas muchas gracias por la sugerencia.

Seguramente esta forma de solucionarlo no sea la mejor, pero dado que no soy administrador de sistemas y el que tengo en mi empresa parece que sabe menos que yo tadavia, pues por lo menos funciona y me saca las castañas del fuego.

Un saludo.