Visual Basic - alinear números con printer.print

Life is soft - evento anual de software empresarial
 
Vista:

alinear números con printer.print

Publicado por Maricel (1 intervención) el 07/01/2003 22:27:25
Hola a todos!! Necesito imprimir números de una factura con el método printer.print, pero los números deben contener los separadores de miles.ejemplo1:1053251 debe quedar 1.053.251, pero al colocarles 'Format(monto, "###,###,##0")', se desalinean los números que no tienen miles...¿qué hago?
ejemplo2:
3.125
0
325
4.581
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:alinear números con printer.print

Publicado por jamwsistematic (20 intervenciones) el 08/01/2003 02:31:08
Si los datos estan en un Formulario yo pandaba a imprimir usando un label alineado a la derecha y de tamaño fijo y me movia como si fuese en un grid y funciona muy bien lo use para imprimir una planilla de obreros ya te imaginarás el cuidado en el orden.
Espero puedas hacerlo. Sólo imagina que el labes es como una celda.
lblNum.Autosize=False
lblNum.Width = ANCHO_PREDETERMINDO
lblNum.Left = POSICION_ESTABLECIDA
lblNum.Top = lblNum.Top + lblNum.Height + 10
lblNum.Caption=NuevoNumero
lblNum.Autosize=True 'para tomar el tamaño
printer.currentX = lblNum.Left 'Despues que se a reducido a la derecha
Printer.CurrentY=lblNum.Top
Printer.CurrentX=Printer.CurrentX 'lo conservamos

Es una maña pero sirve.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:alinear números con printer.print

Publicado por isma (96 intervenciones) el 10/01/2003 09:58:16
hola, bueno yo he hecho algún proyecto en el que tenía que imprimir facturas por impresora, y al igual que tú me encontré el problema de alinear a la derecha los números. Yo hice lo siguiente:

* primero- debes saber es que todos los números van a llevar decimales ( osea que para el 325 deberás poner 325.00), tú decides cuantos decimales llevará el número y será la misma cantidad para todos los importes.

* segundo- además todos los importes tienen que tener la misma longitud, es decir, les puedes poner un máximo de 13 dígitos que equivalen a 99.999.999,99.

* tercero- antes de imprimir haces lo siguiente:
strImporte = Format(monto, "###,###,##0.00")
intPosiciones = 0
If Len(strImporte ) < 13 Then
intPosiciones = 13 - Len(strImporte )
End If
Printer.CurrentY = posicionY
Printer.CurrentX = posicionX
Printer.Print Spc(intPosiciones ); strImporte ' Con la funcion Spc() le indicas cuantos espacios hacia la derecha desplazas el texto a partir de la posición X indicada.

Con esto consiguerás alinear todos a la derecha. También sería bueno que utilizaras algún tipo de letra como la Corier New, pero prueba con diferentes a ver cuál se adapta mejor.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar