Vfp deja de Imprimir en Impresora predeterminada

291 views
Skip to first unread message

Gregorio Nava

unread,
Oct 13, 2021, 3:53:25 PM10/13/21
to publice...@googlegroups.com
Buenas tardes, tengo un problema con una impresion (archivos .PRG), en un boton tengo esto

If Thisform.check1.Value = .T.
       If Empty(LcNomImpCr) && LcNomImpCr Nombre de impresora guardado en la variable
            Do factu001
      Else
           Do factu002
           Set Printer To Default
      Endif

dentro de factu001 tengo esto 
Set Device To Printer
SET PRINTER TO NAME (LcNomImpCr)
Set Printer On

dentro de factu002 esto
Set Console Off
Set Device To Printer
Set Printer To Default

el problema se presenta cuando imprimo con la opccion factu001 queda imprimiendo en la otra impresora, el usuario tiene que salir del sistema para poder volver a imprimir en la predeterminada, cualquier ayuda se le agradece, gracias

Zarlu

unread,
Oct 13, 2021, 5:05:30 PM10/13/21
to Comunidad de Visual Foxpro en Español
Buenas tardes gregorionava2009 !

Ya probaste a incluir en  "Set Printer To Default" en las opciones de "factu001" después de imprimir?
o guardar todas la configuraciones al inicio y restaurarlas al final de cada rutina de impresion.

Suerte
zarlu
Chetumal, Quintana Roo

Gregorio Nava

unread,
Oct 13, 2021, 5:09:13 PM10/13/21
to publice...@googlegroups.com
perdon, me equivoque el problema lo da al imprimir con la opcion factu002 a la cual le coloco la opcion set printer to default en la siguiente linea

--
Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/8cf5784b-dae4-435f-ab3f-6bd9d8d95f5dn%40googlegroups.com.

Zarlu

unread,
Oct 13, 2021, 6:06:17 PM10/13/21
to Comunidad de Visual Foxpro en Español
Qué tal gregorionava2009!

Entonces podrías probar a guardar todas la configuraciones de los "SET" al inicio y restaurarlas al final de cada rutina de impresión.
O también predeterminar a nivel de windows. Checa esto:

*ejemplo de cambio y restauración de impresora predeterminada
Clear
*impresora instaladas
APRINTERS(ArrayName ,1)
IF ALEN(ArrayName,1)=1
    ? "Sólo hay una impresora"
    RETURN
Endif   
*impresora predeterminada
lcDefaultPrinter = UPPER(SET("Printer",2))
? "Impresora determinada: "+ lcDefaultPrinter
*otra impresora
FOR a=1 TO ALEN(ArrayName,1)
 IF UPPER(arrayname(a,1))<>lcDefaultPrinter
    lcOtraPrint=UPPER(arrayname(a,1))
    EndIf
ENDFOR
? "Impresora a predeterminar: "+lcOtraPrint
*cambia impresora
ws = Createobject("WScript.Network")
ws.SetDefaultPrinter(lcOtraPrint)
? "Nueva predeterminada: "+ SET("Printer",2)
*reestablece impresora
ws.SetDefaultPrinter(Alltrim(lcDefaultPrinter))
? "Impresora restaurada: "+ SET("Printer",2)
RELEASE ws

Suerte
zarlu
Chetumal, Quintana Roo, México

HernanCano

unread,
Oct 14, 2021, 4:29:41 AM10/14/21
to Comunidad de Visual Foxpro en Español
----------------------------
Hola, Gregorio.

1. Sólo necesitas SET DEVICE TO si estás usando @SAY.

2. Fíjate que estás usando SET PRINTER TO NAME en FACTU001 cuando la vble LcNomImpCr está vacía.
   Deberías usar SET PRINTER TO NAME en FACTU002 cuando la vble vale algo.

3. Deberías usar SET PRINTER TO en ambos casos. 

4. Analizando tu escenario, parece que debes "invertir" los SET PRINTER TO que estás usando.
   Tu escenario pudiera quedar más o menos así:
   
If Thisform.check1.Value = .T.
   Set Printer To Default
   Set Printer Off
   Set Console Off
   Set Device To Printer
   If Empty(LcNomImpCr) && LcNomImpCr Nombre de impresora guardado en la variable
        Do factu001
   Else
        SET PRINTER TO NAME (LcNomImpCr)
        Do factu002
   Endif
   Set Printer To Default
   
   ** ............
   ** ............ otros comandos según la necesidad después de imprimir
   ** ............
Endif

** dentro de factu001 tengo esto 
Set Printer On
** 
** otros comandos según la necesidad en Factu001
** 

** dentro de factu002 esto
** 
** otros comandos según la necesidad en Factu002
** 

5. Si deseas usar WScript.Network en tu escenario, puedes hacerlo. A mí me falta info para decir sí o para decir no.
   Veo que Fox/VFP tiene comandos propios para los mismos efectos.
----------------------------

Milton

unread,
Oct 15, 2021, 10:33:36 AM10/15/21
to Comunidad de Visual Foxpro en Español

Buenos días Gregorio:
    Quizá si estas tratando de imprimir en una impresora compartida desde otra computadora en Win 10,  te comento que se me presento un problema, no podía imprimir desde el otro terminal a la impresora compartida. Bueno, lo pude resolver desinstalando un parche de seguridad de Win 10 es el KB5005565, para esto refiérete al historial de actualizaciones y desinstálalo y configura la próxima actualización a la fecha más extensa que te permita el sistema hasta que Microsoft resuelva el inconveniente.

Atentamente

MILTON CACHIPUENDO

jose daniel camilo ruiz

unread,
Oct 15, 2021, 10:39:07 AM10/15/21
to Comunidad de Visual Foxpro en Español
especial mente en w10, con la impresora epson lx350 , esto es un problema del driver de la impresora . como tu reporte es a codigo utiliza una impresora generica solo texto,
Reply all
Reply to author
Forward
0 new messages