Visual Basic - alinear columnas con orden PRINTER.PRINT

Life is soft - evento anual de software empresarial
 
Vista:

alinear columnas con orden PRINTER.PRINT

Publicado por txetxo (88 intervenciones) el 09/10/2003 10:05:14
Hola

Tengo una pequeña duda, con la orden printer.print imprimo todo el contenido de un MsFlexGrid, pero no se como hacer para que las columnas de datos impresas me salgan alineadas a la derecha, es decir, me sale como sigue:

15
118
2.000
105.200

y quisiera que saliera asi:

15
118
2.000
105.200

En el MsFlexGrid si se ven los datos de esta ultima manera, pero luego al imprimir no.

¿Como lo puedo hacer?

Muchas gracias.
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 columnas con orden PRINTER.PRINT

Publicado por kikecg (352 intervenciones) el 09/10/2003 16:33:22
Hola.
Yo lo hago de la siguiente manera:
Debes colocar el cabezal de la impresora con CurrentX.

Printer.CurrentX = 5000 - Printer.TextWidth(CadenaAImprimir)
Printer.Print CadenaAImprimir

En vez de 5000, le indicas el punto donde quieres alinear los valores (es decir, donde quieres que quede el extremo derecho del valor).

Pruebalo y me comentas.
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 columnas con orden PRINTER.PRINT

Publicado por txetxo (88 intervenciones) el 09/10/2003 17:23:16
Hola

Gracias por tu aclaración, funciona muy bien cuando es 1 columna a imprimir, pero el tema es que no solo tengo que imprimir 1 columna, sino que son 5 las columnas a imprimir, de las cuales las 3 ultimas deberian estar alineadas a la derecha, es decir:

101010 Hilo poliamida 15 18 3
101011 Hilo licra 17 300 283
141821 Etiqueta Lorpen 2.000 246.813 244.813

¿Este tipo de documento se puede lograr imprimir con printer,como?

Gracias
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 columnas con orden PRINTER.PRINT

Publicado por Juan (284 intervenciones) el 09/10/2003 20:15:26
Intenta hacer esto:

Printer.CurrentX = Printer.CurrentX + anchoColumna - Printer.TextWidth(textoAImprimir)
'Desplazamos CurrentX desde el principio de la columna hasta el punto donde debe empezar a escribir
Printer.Print textoAImprimir;

Eso para las columnas que estén alineadas a la derecha. para las que estén alineadas a la izquierda:

Printer.Print textoAImprimir;
Printer.CurrentX = Printer.CurrentX + anchoColumna - Printer.TextWidth(textoAImprimir)
'Desplazamos CurrentX hasta el final de la columna

Para columnas centradas:

desplazamientoInicial = (anchoColumna - Printer.TextWidth(textoAImprimir))/2
Printer.CurrentX = Printer.CurrentX + desplazamientoInicial
'Desplazamos CurrentX desde el principio de la columna hasta el punto donde debe empezar a escribir
Printer.Print textoAImprimir;
Printer.CurrentX = Printer.CurrentX + anchoColumna - desplazamientoInicial
'Desplazamos CurrentX hasta el final de la columna


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 columnas con orden PRINTER.PRINT

Publicado por kikecg (352 intervenciones) el 09/10/2003 23:14:55
Hola.
Cuando se trata de imprimir varias veces en la misma linea tienes que usar tambien Printer.CurrentY, que te marca el eje Y del papel. Simplemente almacena el valor del CurrentY al imprimir la primera columna, y emplealo en las siguientes.
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