Impresión con Printer.Print

Iniciado por ssccaann43 ©, 22 Junio 2009, 21:25 PM

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

ssccaann43 ©

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.
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

fede_cp

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
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!

BlackZeroX

#2
Posiblemente esta Funcion:

Código (vb) [Seleccionar]
format()

Pero me parece que es mejor esto:

P.D.: Tutorial Data Report

Dulces Lunas.
The Dark Shadow is my passion.

ssccaann43 ©

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

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

aaronduran2

#4
Prueba con la función:

Código (vb) [Seleccionar]
Space()

Por ejemplo:
Código (vb) [Seleccionar]

Dim iEspacios As Integer
Dim sCodigo As String

iEspacios = 20
sCodigo = "001"
sCodigo = sCodigo & Space(iEspacios - Len(sCodigo))


Saludos  ;)

fede_cp

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 (vb) [Seleccionar]
Private Sub Command1_Click()
Dim espacios As Integer
Dim Codigo As String
Dim Descripcion As String
Dim precio As String
espacios = 20
Codigo = Text1.Text
Descripcion = Text2.Text
precio = Text3.Text
Printer.Print "Codigo" & Space(14) & "Descripcion" & Space(9) & "Precio" & vbCrLf & Codigo & Space(espacios - Len(Codigo)) & Descripcion & Space(espacios - Len(Descripcion)) & precio
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
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!

ssccaann43 ©

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"