FoxPro/Visual FoxPro - Impresora, Otra Vez

   
Vista:

Impresora, Otra Vez

Publicado por Carlos ACS cr_alayo@hotmail.com (141 intervenciones) el 24/09/2012 15:49:06
Hola amigos expertos;
Hace unos días, hice una consulta, pero no me explique bien, ahora... Tengo un sistema que al realizar una cobranza solo graba la operación, ahora mi cliente me pide que también se imprima un recibo, hasta ahí todo sin problema; el detalle es que me dice que en algunas terminales se utilizaran impresoras matriciales, en otras láser y por ultimo hasta de inyección de tinta... ok, la impresión debe ser automática tan solo con grabar, es decir, si la impresora es matricial se imprime un solo recibo, pues el papel es con copia, ahora si se trata de impresora laser o de inyección se imprimen dos recibos, uno a continuación de otro... como hago para programar un detector de tipos de impresora?... si alguien tiene una idea o sabe donde puedo encontrar alguna ayuda... me podría ayudar por favor?
Gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Impresora, Otra Vez

Publicado por Fidel (321 intervenciones) el 24/09/2012 16:01:32
Antes de imprimir puedes detectar el nombre de la impresora. Si sabes cuáles son las matriciales apuntas al código de matricial (o si es el mismo, irá con una sola copia).
En mi caso, utilizo una tabla local para eso y en un campo lógico van como .T. las que operan como matriz de punto. En cada impresión, el sistema busca en esa tabla la impresora que se selecciona y decide a dónde apunta la impresión según si es láser ó DeskJet (operan iguales) ó matriz de puntos (yo uso secuencias de escape para matriz de punto en lugar del modo gráfico).
Luego es fácil
lnCopias=IIF( misImpre.lText , 1 , 2 )
&& donde misimpre es la tabla de impresoras y LText es un campo lógico.
También me resultó util tener una tabla con todos los documentos que emite el sistema (factura, recibos, orden de pago, etc. ) en la cual indico, entre otras cosas, el programa impresor y la cantidad de copias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Impresora, Otra Vez

Publicado por Fidel (321 intervenciones) el 24/09/2012 16:10:28
Perdón Carlos.
La tabla de impresoras la lleno con la función APRINTERS()
RELEASE gaprinter
APRINTERS(gaPrinter,2)
select MisImpre
For i=1 to alen(gaprinter,1)
locate for alltrim(printname)==gaprinter[i,1]
if !Found()
INSERT INTO Misimpre (PrintName) VALUES (gaPrinter[i,1] )
endif
* Coletilla para el caso de Epson FX y Epson LX (matriz de puntos)
glText=.F.
if At("EPSON",Upper(gaPrinter[i,1])#0
if At("FX",uPPER(GAPRINTER[I,1])#0 .or.
At("LX",Upper(gaPrinter[i,1])#0
glText=.T.
ENDIF
ENDIF
REPLACE LTEXT WITH glText


next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar