Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: luison en 26 Abril 2011, 19:07 pm



Título: Cómo organizar / formatear los contenidos de un ticket de venta?
Publicado por: luison en 26 Abril 2011, 19:07 pm
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
  1. Dim rc As New Recordset
  2.            Set rc = Conexion.Execute("consulta sql")
  3.  
  4.                If rc.EOF = False Then
  5.                Printer.Print Space(7) & "NOMBRE DE LA TIENDA"
  6.                Printer.Print "Direccion Tienda"
  7.                Printer.Print "Telefono Tienda"
  8.                Printer.Print "----------------------------------------------"
  9.                Printer.Print "Detalles de la compra"
  10.                Printer.Print ""
  11.  
  12.                Printer.Print "TOTALES...."
  13.                    Printer.Print Space(30) & "     Total:" & Space(2) & Me.txtTotal.Text '  rc!total
  14.                    Printer.Print Space(30) & " Efectivo:" & Space(2) & Format(Me.txtEfectivo.Text, "$##0.00")
  15.                    Printer.Print Space(30) & "   Cambio:" & Space(2) & Me.txtCambio.Text
  16.                    Printer.Print Space(30) & "Artículos:" & Space(2) & Me.txtArticulos.Text
  17.  
  18.            Printer.Print "PIE DEL TICKET"
  19.  
  20.            printer.EndDoc
  21.            End If
  22.            Set rc = Nothing
  23.  
  24.  
  25.  



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..




Título: Re: Cómo organizar / formatear los contenidos de un ticket de venta?
Publicado por: ignorantev1.1 en 27 Abril 2011, 05:18 am
Pues nunca he trabajado con un objeto "printer", pero en un form o picturebox:

Código
  1. picture1.currentx=10
  2. picture1.currenty=10
  3. picture1.print "Este texto aparecera en la posicion (10,10)"
  4.  

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
  1. dim miCadena as string
  2. micadena="Este texto debe estar centrado"
  3. picture1.currentx=picture1.width/2 - picture1.textWidth(micadena)/2
  4. picture1.currenty=10 'TextHeight
  5. picture1.print miCadena
  6.  

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!