Cómo organizar / formatear los contenidos de un ticket de venta?

Iniciado por luison, 26 Abril 2011, 19:07 PM

0 Miembros y 1 Visitante están viendo este tema.

luison

Salu2

Verán desarrollé un sistemita de ventas, el cual ya trabaja un 90% estable.
Lo único que me falta es el ticket, el cual aún no logro organizar y centrar los contenidos en el papel.

La forma con al que imprimo es usando un ejemplo como el siguiente:

Código (vb) [Seleccionar]

Dim rc As New Recordset
           Set rc = Conexion.Execute("consulta sql")
               
               If rc.EOF = False Then
               Printer.Print Space(7) & "NOMBRE DE LA TIENDA"
               Printer.Print "Direccion Tienda"
               Printer.Print "Telefono Tienda"
               Printer.Print "----------------------------------------------"
               Printer.Print "Detalles de la compra"
               Printer.Print ""
               
               Printer.Print "TOTALES...."
                   Printer.Print Space(30) & "     Total:" & Space(2) & Me.txtTotal.Text '  rc!total
                   Printer.Print Space(30) & " Efectivo:" & Space(2) & Format(Me.txtEfectivo.Text, "$##0.00")
                   Printer.Print Space(30) & "   Cambio:" & Space(2) & Me.txtCambio.Text
                   Printer.Print Space(30) & "Artículos:" & Space(2) & Me.txtArticulos.Text
                   
           Printer.Print "PIE DEL TICKET"
           
           printer.EndDoc
           End If
           Set rc = Nothing






Como pueden ver utilizo Space para dar algunos espacios, pero no sirve para centrar cuando un codigo o texto es de longitud muy grande.
En lo que he investigado sugieren el uso de CurrentY y CurrentX,  pero no encuentro ejemplos claros.

Alguien ha diseñado un ticket de venta que pueda echarme un cable?
Gracias y estamos por aqui investigando..



ignorantev1.1

Pues nunca he trabajado con un objeto "printer", pero en un form o picturebox:

Código (vb) [Seleccionar]

picture1.currentx=10
picture1.currenty=10
picture1.print "Este texto aparecera en la posicion (10,10)"


Debes configurar el sistema de coordenandas(ScaldeMode) a Pixeles(3), eso es lo que pienso yo.

Tambien puedes usar las propiedades TextWidth y TextHeight para darle formato al texto(centrar por ejemplo):

Código (vb) [Seleccionar]

dim miCadena as string
micadena="Este texto debe estar centrado"
picture1.currentx=picture1.width/2 - picture1.textWidth(micadena)/2
picture1.currenty=10 'TextHeight
picture1.print miCadena


Te recuerdo que no me consta si funciona con un objeto printer(yo creo que si  ;)) y cuidado con el sistema de coordenandas(scalemode)...
Bien, eso es todo espero y te sirva... salud!