Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: ssccaann43 © en 22 Junio 2009, 21:25 pm



Título: Impresión con Printer.Print
Publicado por: ssccaann43 © en 22 Junio 2009, 21:25 pm
Buenas tardes.

Bien, estoy usando el Printer.Print para hacer unas facturas. Mi problema radica en que el codigo de los productos pueden contener entre 1 y 20 caracteres, al igual el nombre del articulo que son perfumes y sus nombres pueden ser 5 caracteres o 20 caracteres. Y la idea es que la factura salga así, sin importar el tamaño de los caracteres.
Ejemplo:

Cod               Descripcion                   Precio
001                212 Carolina Herrera    $ 55,00
0000000000  Tommy H.                     $ 125,00

Deseo completar con espacio para que la factura salga así ordenada. Fijense en el codigo el primer codigo del producto es de solo 3 caracteres, el segundo de 10 caracteres, sin embargo el nombre y el precio quedan alineados. Espero haberme explicado bien y que alguien pueda ayudarme con esto.

Saludos.


Título: Re: Impresión con Printer.Print
Publicado por: fede_cp en 22 Junio 2009, 22:56 pm
no entiendo la idea, lo que queres es que haya campos (textbox) y que con lo puesto en el text se imprima???
osea:

uno que diga:

cod:                descripcion         Precio
text1.text      text2.text          text3.text

algo asi?

no entiendo muy bien la idea


saludooos


Título: Re: Impresión con Printer.Print
Publicado por: BlackZeroX en 22 Junio 2009, 23:03 pm
Posiblemente esta Funcion:

Código
  1. format()

Pero me parece que es mejor esto:

P.D.: Tutorial Data Report (http://foro.elhacker.net/programacion_vb/tutorialcrear_facturaspedidosetiquetas_co_data_report_desde_visual_basic_60-t151013.0.html)

Dulces Lunas.


Título: Re: Impresión con Printer.Print
Publicado por: ssccaann43 © en 23 Junio 2009, 00:23 am
Bien, gracias por responder.

Lo que deseo es usar un string de un tamaño predeterminado, por ejemplo 20 caracteres.

Si el codigo es 001, quiere decir que hace falta 17 caracteres, entonces deseo rellenar esos 17 caracteres con espacios... para luego colocar el otro valor que sería el nombre del articulo... sino hago esto quedaría la factura así..

Cod                Descripcion
001 Jabón
000000000000 Lavaplatos

Y la idea es que quede Ordenada... Lo que está dentro del parentesis serían los espacios de relleno para que la factura me pueda salir alineada... ahora el campo codigo debe tener un tamaño predeterminado... por ejemplo de 20 caracteres...

Cod               Descripcion                   Precio
001(            ) 212 Carolina Herrera    $ 55,00
0000000000  Tommy H.                     $ 125,00



Título: Re: Impresión con Printer.Print
Publicado por: aaronduran2 en 23 Junio 2009, 00:30 am
Prueba con la función:

Código
  1. Space()

Por ejemplo:
Código
  1. Dim iEspacios As Integer
  2. Dim sCodigo As String
  3.  
  4. iEspacios = 20
  5. sCodigo = "001"
  6. sCodigo = sCodigo & Space(iEspacios - Len(sCodigo))

Saludos  ;)


Título: Re: Impresión con Printer.Print
Publicado por: fede_cp en 23 Junio 2009, 02:47 am
bueno al final de todo decidi abrir el vb e ir probando (me ayuda para aprender tambien), dejo el codigo de como lo hice para lograr lo que dijiste

Código
  1. Private Sub Command1_Click()
  2. Dim espacios As Integer
  3. Dim Codigo As String
  4. Dim Descripcion As String
  5. Dim precio As String
  6. espacios = 20
  7. Codigo = Text1.Text
  8. Descripcion = Text2.Text
  9. precio = Text3.Text
  10. Printer.Print "Codigo" & Space(14) & "Descripcion" & Space(9) & "Precio" & vbCrLf & Codigo & Space(espacios - Len(Codigo)) & Descripcion & Space(espacios - Len(Descripcion)) & precio
  11. End Sub

es algo asi como lo dijo aaronduran2 , pero con la condicion de que hay que tambien poner los espacion entre los nombres de arriba y hacer el salto

un saludo y espero haber sido de ayuda! ;D


Título: Re: Impresión con Printer.Print
Publicado por: ssccaann43 © en 23 Junio 2009, 20:41 pm
Muchas gracias!