GeoSys Diseño de Software
unread,Jun 14, 2011, 4:44:49 PM6/14/11Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to publice...@googlegroups.com
Yo tengo aplicaciones para puntos de ventas y no importa en cual puerto esté la impresora y claro Arnaldo, la impresora serial se puede predeterminar en el panel desde windows vas a impresoras y faxes en XP o impresoras y dispositivos en windows 7, allí se predetermina.
También uso un ícono en la barra de herramientas para que el usuario asigne la impresora predeterminada mientras esté en esta aplicación, cuando sale de la aplicación.
SET PRINTER TO NAME GETPRINTER( ) SET PTINTER TO DEFAULT && set printer to default es para tomar los cambios.
Luego al imprimir no uso el reporteador, por lo general son estas impresoras a 40 columnas este es parte del código que uso e imprime directamente a la impresora de tichek.
store dtoc(fefactu) to fechaimpre && Asigno la fecha convertida a carácter.
???PADC(_screen.fantasialicen, 40, ' ')+chr(10)+chr(13)
???PADC(_screen.nombrelicen, 40, ' ')+chr(10)+chr(13)
???PADC(_screen.cedulicen, 40, ' ')+chr(10)+chr(13)
???PADC(_screen.telefonolicen, 40, ' ')+chr(10)+chr(13)
???PADC(_screen.lugarlicen, 40, ' ')+chr(10)+chr(13)
???PADC(_screen.correolicen, 40, ' ')+chr(10)+chr(13)
???PADC('-------------------------------', 40, ' ')+chr(10)+chr(13)
???'Fecha: '+'&fechaimpre'+' Hora: '+ '&hora1'+chr(10)+chr(13)
???replicate('Factura No.: '+alltrim('&factura1')+' '+alltrim('&tipopago1')+chr(13), 2)+chr(10)+chr(13)
???[Cliente: ]+alltrim([&nombreclie1])+chr(10)+chr(13)
???[Direccion: ]+alltrim([&direccion1])+chr(10)+chr(13)
???'Cajero: '+alltrim('&usuario1')+chr(10)+chr(13)
???replicate('-', 40)+chr(10)+chr(13)
???'Cant. Articulo Total IVI'+chr(10)+chr(13)
???replicate('-', 40)+chr(10)+chr(13)
scan && Empiezo la impresión de los productos/artículos.
if impue='S'
store '*' to imp1
else
store ' ' to imp1
endif
cant1=transform(cantidad, '@R 99.99')
pro1=alltrim(producto)
pro1=transform(producto, 'XXXXXXXXXXXXXXXXXXXXXXXXXX')
mon1=transform(monto, '@R 999,999')
???cant1+' '+pro1+mon1+imp1
???chr(10)+chr(13)
endscan
???REPLICATE('-',40)+CHR(10)+chr(13) && Imprimo una raya con 40 carácteres.
STORE 'Sub-Total: '+TRANSFORM(tota1, '@R 99,999,999') to monto1
???PADL(monto1, 39, ' ')+CHR(10)+chr(13)
*-
STORE 'Descuento: '+TRANSFORM(modescu, '@R 99,999,999') to descuento1
???PADL(descuento1, 39, ' ')+CHR(10)+chr(13)
*-
STORE 'Venta Total:'+TRANSFORM(totalfa, '@R 99,999,999') to totalfa1
???PADL(totalfa1, 39, ' ')+CHR(10)+chr(13)
*-
???chr(10)+chr(13)
*-
STORE 'Pago Recibido:'+TRANSFORM(recibido2, '@R 99,999,999') to reci1
???PADL(reci1, 39, ' ')+CHR(10)+chr(13)
*-
STORE 'Vuelto / Cambio:'+TRANSFORM(vuelto2, '@R 99,999,999') to vuel1
???PADL(vuel1, 39, ' ')+CHR(10)+chr(13)
*-
???'* Articulo Gravado'+chr(10)+chr(10)+chr(13)
if tipopago1='CONTADO'
???PADC('** GRACIAS POR SU COMPRA **', 40, ' ')+chr(10)+chr(13)
else
???'FIRMA'+chr(10)+chr(13)
endif
???replicate('-', 40)+chr(10)+chr(13)
???PADC('Autorizado mediante resolucion', 40, ' ')+chr(10)+chr(13)
???PADC('No. 11-97 del 01/10/1997', 40, ' ')+chr(10)+chr(13)
???PADC('de la D.G.T.D.', 40, ' ')+chr(10)+chr(13)
???replicate(chr(10),8)+chr(13) && Avanzo 8 líneas.
???chr(27)+chr(105) && Cortar papel TM 200.
???chr(10)
???chr(10)
*- Por lo de la firma bajo más líneas, para que no vayan a mal cortar el papel.
???chr(10)
???chr(10)+chr(13)
set printer to && limpio impresión. ESTO ES IMPORTANTE.
Con ese código puede imprimir sin ninún problema y en cualquier impresora de punto de ventas que sea ESC/POS.
Es más yo recomiendo que se instale una impresoa genérica solo texto para que así no importe que marca de impresora esté conectada, ella siempre imprimirá en cualquier POS
Saludos
Anthony Contreras Peralta
Costa Rica.