No puedo direccionar Impresora

484 views
Skip to first unread message

Octavio

unread,
Oct 31, 2013, 8:58:46 PM10/31/13
to publice...@googlegroups.com
Hola...aquí con un problemita.
 
 
Estoy usando  GETPRINTER() para seleccionar una impresora especifica a donde mandar un reporte.
 
a pesar de seleccionarla y verificar que la impresora esta en la variable definida, siempre la manda a la impresora de DEFAULT del equipo.
 
alguien me puede orientar como hacer que funcione..???
 
Gracias y saludos

Ricardo Pina

unread,
Oct 31, 2013, 9:53:14 PM10/31/13
to Grupo VFP
Hola Octavio
 
Prueba de esta manera
 
lcprinter=getprinter()
set printer to name (lcprinter)
 
Saludos
--
            

                   Ricardo Pina

Desarrollo y Servicios Informáticos

                  Profesionales
               www.dsip.com.ar

 

 

César Pistiner

unread,
Oct 31, 2013, 10:40:47 PM10/31/13
to publice...@googlegroups.com

Hola!

Podrías compartir la porción del código con nosotros? Así es más fácil orientarte y ayudarte!

Fernando D. Bozzo

unread,
Nov 1, 2013, 7:16:15 AM11/1/13
to publice...@googlegroups.com
Hola Octavio:

La solución que te propone Ricardo Pina es la mejor. Además la podés poner en un menú genérico de impresión y el usuario la puede configurar una sola vez y olvidarse.
También podés guardar esa configuración del usuario para reutilizarla en subsiguientes veces, pero siempre de la forma que te pone Ricardo.

Saludos.-

Ariel D'Alfeo

unread,
Nov 1, 2013, 8:05:41 AM11/1/13
to publice...@googlegroups.com
yo hago esto:
SET PRINTER TO NAME (nombre_impresora_que_quiero_mandar_reporte)  &&seteo la impresora
         REPORT FORM reporte.frx NOCONSOLE   TO PRINTER  &&puede ser "prev" tambien
         SET PRINTER TO default  &&vuelvo a setear la impresora por defecto

-- 
Ariel D'Alfeo
Córdoba, Argentina

Guillermo MDQ

unread,
Nov 1, 2013, 11:32:08 AM11/1/13
to publice...@googlegroups.com
Con algunas impresoras y sobre todo en ambientes de red suele suceder que a veces direccionamos la impresion con el comando SET PRINTER TO NAME pero igualmente sigue enviandose la impresion a la impresora predeterminada de windows.
Lo que conviene hacer en estos casos es primero establecer como predeterminada la impresora en la que queremos imprimir y despues realizar la impresion-
Y despues volver o no segun la necesidad de cada uno a dejar predeterminada la impresora que estaba originalmente.

Por ejemplo para prdeterminar la impresora elegida:

lcPrinter=GETPRINTER()

oWsh = CREATEOBJECT('WScript.Network')
oWsh.SetDefaultPrinter(lcPrint)
RELEASE oWsh

Saludos
Guillermo

Fernando D. Bozzo

unread,
Nov 1, 2013, 1:05:11 PM11/1/13
to publice...@googlegroups.com
Esto en particular no lo comparto del todo. En su momento nosotros hacíamos esto de cambiar la impresora predeterminada del sistema, pero el problema es que distintas aplicaciones pueden tener distintas preferencias de impresión en distintas impresoras, y si cada aplicación cambia la impresora predeterminada del sistema, puede afectar a las aplicaciones que justamente impriman en la predeterminada, que originalmente puede ser una distinta de la que el usuario elija, lo que puede traer problemas.

Un ejemplo:
Se puede tener como impresora predeterminada una de matriz de puntos porque el programa de facturación es muy antiguo (DOS) y no permite seleccionar impresora, por lo que siempre imprime en la predeterminada del sistema para la facturación o lo que sea.
Si luego viene otro programa que pudiendo cambiar solo su propio destino de impresión va y cambia la preferencia completa del sistema, entonces va a hacer que el programa de facturación que requiere la impresora de matriz de puntos termine imprimiendo en la LaserJet que no permite poner papel carbónico, y así como este ejemplo varios mas. Además esto es casi tan invasivo como que cada programa cambie la resolución del monitor para que se vea mejor.

En mi experiencia FoxPro maneja perfectamente su preferencia de impresión local para tanto para la impresión con "?" como de los distintos comandos que permiten imprimir (LIST, REPORT, etc), tanto local como en red, que es donde suelo usarlo.

Sobre los problemas que comentás, habría que ver exactamente cada caso, porque nosotros tuvimos problemas que luego pudimos ir solucionando, y normalmente estos problemas se daban por la inexperiencia de algunas personas o por manejos muy raros de la impresión en sí.

Por ejemplo, la impresora predeterminada de Windows se obtiene con SET("PRINTER",2), y la predeterminada de FoxPro (la que se setea con SET PRINTER TO NAME <Ubicación>) se obtiene con SET("PRINTER",3)
Si la impresora predeterminada de la aplicación se suele guardar como parte de la configuración en una tabla o TXT, antes de cada impresión es conveniente hacer este SET PRINTER TO NAME <NombreGuardado> y ese nombre se debió obtener en algún momento con GETPRINTER(), ya que tiene no solo el nombre de la impresora, sino la ruta completa de red hasta ella.


Saludos.-

Guillermo MDQ

unread,
Nov 1, 2013, 1:35:26 PM11/1/13
to publice...@googlegroups.com
Tenes razon en lo que decis Fernando. Yo hice el comentario porque me pasó hace poco al querer imprimir en una impresora de etiquetas térmica.
Desde la pc donde esta instalada no hay problemas, pero desde las demas pc de la red que quieren imprimir las etiquetas el SET PRINTER TO NAME no me respondia y me enviaba el trabajo a la impresora predeterminada de la pc que queria imprimir.
Asi que de esa forma lo pude solucionar. Igual no hay problemas al hacer el cambio de impresora predeterminada porque en esos pc se utiliza solo esa aplicacion.
Leo que impresora esta predeterminada, hago el cambio, imprimo y vuelvo a poner como predeterminada la original.

Saludos
Guillermo

Octavio

unread,
Nov 4, 2013, 1:08:26 PM11/4/13
to publice...@googlegroups.com

Gracias a Todos.... me funciono la respuesta de  GUILLERMO MDQ
 
que fue

lcPrinter=GETPRINTER()

oWsh = CREATEOBJECT('WScript.Network')
oWsh.SetDefaultPrinter(lcPrint)
RELEASE oWsh
Muchas gracias a todos de verdad

HernanCano

unread,
Nov 4, 2013, 7:35:11 PM11/4/13
to publice...@googlegroups.com
Sería importante saber porqué no funcionan instrucciones tan simples como:

SET PRINTER ON PROMPT

o


lcprinter=getprinter()
set printer to name (lcprinter)


¿Nos dices qué te pasó con estas instrucciones?


HernanCano

unread,
Nov 4, 2013, 7:35:56 PM11/4/13
to publice...@googlegroups.com
Sabes que no se recomienda poner mensajes dobles, ¿cierto?
Reply all
Reply to author
Forward
0 new messages