Seleccionar impresoras

912 views
Skip to first unread message

Otto Pérez

unread,
Jun 14, 2012, 7:06:50 PM6/14/12
to Comunidad de Visual Foxpro en Español
Hola comunidad.
Necesito en un sistema de restaurant que tengo enviar ordenes a dos
impresoras una orden a pizzería y otra orden a cocina. la idea es que
haciendo clic con un botón se envía la orden a las impresoras
activas.
Yo considero que se hace con un.
set printer to (nombre de la impresora)
Set printer to IP1000 o
set printer to "IP1000"

?Es la forma de hacerlo o existe otra forma mas segura?

Necesito su ayuda.... Gracias

Walter R. Ojeda Valiente

unread,
Jun 14, 2012, 7:48:18 PM6/14/12
to publice...@googlegroups.com
Es la forma de hacerlo, utilizando el comando SET PRINTER.

Para asegurarte que las impresoras existan puedes usar la función APRINTERS()

Saludos.

Walter.



> Date: Thu, 14 Jun 2012 16:06:50 -0700
> Subject: [vfp] Seleccionar impresoras
> From: pep...@gmail.com
> To: publice...@googlegroups.com

Otto Pérez

unread,
Jun 14, 2012, 8:19:17 PM6/14/12
to Comunidad de Visual Foxpro en Español
Gracias Walter
Un saludo cordial desde Guatemala...

Allan Raúl Acuña

unread,
Jun 14, 2012, 8:47:35 PM6/14/12
to publice...@googlegroups.com
Mis saludos antes que nada.

------------------------------------------------------------------
Considero que deberías establecer una tablita en donde almacenes las IMPRESORAS ACTIVAS O INSTALADAS

TODO ESTO LO TRABAJO PARA CARGARLAS EN UN COMBO

* A tomar las impresoras instaladas
For lnI = 1 To Aprinters(aPrintArray)
aPrintArray[lnI,1] = Space(1) + aPrintArray[lnI,1]
Endfor
*--------------------------------------------------------------------------

* Determino cual de las impresoras es la PREDETERMINADA
For i = 1 To Alen(aPrintArray)
lnPos = i
If Upper(Set('PRINTER',2))$Upper(aPrintArray[i])
Exit
Endif
Endfor

Thisform.TXTImpresora.Value = aPrintArray[lnPos] && Asigno al combo la predeterminada por el usuario desde el SO

con esto puedes agregar las impresoras en la tabla

LUEGO PARA TRABAJARLAS DESDE LA TABLA


* Para establecer via SO la predeterminada, esto lo puedes hacer para cada impresora
* Obviamente luego dejas establecida la predeterminada original

ws = Createobject("WScript.Network")
ws.SetDefaultPrinter(Alltrim(NombreImpresora))

ANTES DE IMPRIMIR VERIFICA SI ESTAN DISPONIBLE, YA QUE AUNQUE ESTEN INSTALADAS NO PUEDEN ESTAR DISPONIBLE

*!* Es necesario Verificar el Estado de las Impresoras antes de lanzar el Reporte *!*
If Aprinters(gaPrinters) > 0  && Mayor a Cero si hay al menos una impresora Instalada
If !Printstatus() && False, cuando
MessaGeBox("La Impresora se encuentra Desconectada ó Apagada, Verifique!",16+48,cTituloSoftware)
Thisform.Release()
Return .F.
Else
If Sys(13) = 'OFFLINE'
MessaGeBox("La Impresora Está fuera de línea!, Verifique",16+48,cTituloSoftware)
Thisform.Release()
Return .F.
Endif
* Todo está bién
Endif
Else  && No hay impresoras Instaladas
MessaGeBox("Debe Instalar una Impresora en esta Computadora para esta operación!",16+48,cTituloSoftware)
Thisform.Release()
Return .F.
Endif

------------------------------------------------------------------

Bueno aca los TIPS trata de IMPLEMENTAR

Saludos cordiales;

Lic. Allan R. Acuña
Desarrollador Independiente
msn= allan...@hotmail.com
skype= niceasysoft
            +(505) 8 831 8191      
www.NicEasySoft.com
Managua, Nicaragua
Centroamérica


> Date: Thu, 14 Jun 2012 17:19:17 -0700
> Subject: [vfp] Re: Seleccionar impresoras
> From: pep...@gmail.com
> To: publice...@googlegroups.com
>

Allan Raúl Acuña

unread,
Jun 19, 2012, 6:04:01 PM6/19/12
to publice...@googlegroups.com
Muy bien, si es que a veces los clientes me consumen tiempo.


Saludos cordiales;

Lic. Allan R. Acuña
Desarrollador Independiente
msn= allan...@hotmail.com
skype= niceasysoft
            +(505) 8 831 8191      
www.NicEasySoft.com
Managua, Nicaragua
Centroamérica


> Date: Tue, 19 Jun 2012 14:59:26 -0700

> Subject: [vfp] Re: Seleccionar impresoras
> From: pep...@gmail.com
> To: publice...@googlegroups.com
>
>
>
> Muy amable amigo Allan
> Aunque muy tarde para responder
> Estaré implementando tus ejemplos porque no lograba hacerlas
> predeterminadas
> Un saludo cordial

Otto Pérez

unread,
Jun 19, 2012, 5:59:26 PM6/19/12
to Comunidad de Visual Foxpro en Español

HernanCano

unread,
Jun 19, 2012, 11:46:49 PM6/19/12
to publice...@googlegroups.com
"nicafox":
Ni Printstatus() ni Sys(13) funcionan --en VFP-- como quisieramos. Sólo funcionaban en FoxDOS y --quizá-- en FoxWindows.
Estas funciones en VFP devuelven que la impresora está en línea --con sólo instalarla, incluso cuando esté apagada--.


Allan Raúl Acuña

unread,
Jun 20, 2012, 12:17:14 PM6/20/12
to publice...@googlegroups.com
Entendido,

Si puedes mejorarlas muy  agradecido!


Saludos cordiales;

Lic. Allan R. Acuña
Desarrollador Independiente
msn= allan...@hotmail.com
skype= niceasysoft
            +(505) 8 831 8191      
www.NicEasySoft.com
Managua, Nicaragua
Centroamérica



Date: Tue, 19 Jun 2012 20:46:49 -0700
From: jherna...@gmail.com
To: publice...@googlegroups.com
Subject: Re: [vfp] Re: Seleccionar impresoras

Mario Oviedo

unread,
Jul 18, 2012, 5:21:24 PM7/18/12
to publice...@googlegroups.com
amigo estas seguro que esto envia a un combo

Thisform.TXTImpresora.Value 

Thisform.TXTImpresora.Value = aPrintArray[lnPos] && Asigno al combo la predeterminada por el usuario desde el SO 


integral

unread,
Jul 18, 2012, 6:13:27 PM7/18/12
to publice...@googlegroups.com
Amigo Otto Pérez :
 
A mi manera de ver la forma mas practica seria teniendo un Formulario que simule al comando PROMPT y desde ahi se pueda direccionar a cualquier impresora...
 
Comparto el siguiente link en donde existe un Formulario que realiza dicha tarea, en mi caso le añadi algunos cambios como se pueden apreciar en las imagenes adjuntas.
 
 
Espero haber contribuido en algo a solucionar tu problema...
 
atte,
 
Gabriel
Panta_Print_01.bmp
Panta_Print_02.JPG

José Medina

unread,
Jul 19, 2012, 12:51:00 AM7/19/12
to publice...@googlegroups.com
Hola Otto;

Bueno, tuve una experiencia similar a la de tu sistema; donde el mismo informe (la orden entiendo que es un informe) a dos impresoras diferentes. Lo que hice fue lo sgte:

1. Cree dos informes exáctamente iguales, uno llamado NOTASAL01 y el otro NOTASAL02  (En mi caso eran notas de salida).
2. La única diferencia entre un informe y otro es la impresora por defecto que está grabada en el "environment" del informe. Visual Fox siempre muestra la impresora que está instalada por defecto en las propiedades del informe; así que para NOTASAL01 puse por defecto (en windows) la impresora donde debía imprimirse dicha nota de salida, entré a propiedades del informe y apareció dicha impresora, marqué el check "Save printer environment". Luego grabé la nota y luego configuré por defecto la otra impresora donde deseo imprimir NOTASAL02, hice el mismo procedimiento, entre al informe NOTASAL02 y grabé la impresora por defecto para dicha nota y listo. 

3. En el código para imprimir las notas:

  repo form NOTA01 to print
  repo form NOTA02 to pirnt

Con esto, no importa que otras impresoras existan en la red o localmente, siempre se van a imprimir tus informes en la impresora que elegiste al editar dichos informes, en este ejemplo cada informe se imprimirá en una impresora diferente.

Espero me haya hecho comprender.

Saludos.






El jueves, 14 de junio de 2012 18:06:50 UTC-5, Otto Pérez escribió:

Daniel Sánchez

unread,
Jul 19, 2012, 8:31:16 AM7/19/12
to publice...@googlegroups.com
Practica y efectiva tu solución.

Saludos


--
Enviado desde dispositivo móvil

Mario Oviedo

unread,
Aug 15, 2012, 3:02:45 PM8/15/12
to publice...@googlegroups.com
quitaron el enlace

--
 
 
 

Reply all
Reply to author
Forward
0 new messages