RE:Imprimir Nº decimales alineados
Imagínate que quieres escribir un "1,00" y un "1.000.000,00"; si utilizas el valor de CurrentX para escribir ambos valores, evidentemente la alineación numérica se te va a paseo. Para poder alinearlos correctamente deberías incrementar el valor de X adecuadamente. Una forma de poder hacer esto es mediante la diferencia entre el ancho total de la columna y el ancho del texto a escribir. El objeto Printer tiene una función, TextWidth, que te ayudará. Supón que el número mayor que tienes en la columna (o el número mayor que quieres albergar) es 1234567890; una vez formateado, aparecerá como 123.456.789,00; mediante una llamada a Printer.TextWidth("123.456.789,00") obtenemos un valor que vamos a llamar M. Pues bien, al escribir un dato obtenemos el valor de x adecuado mediante la expresión:
s = Format(dato,"##,##0.00")
x = CurrentX + (M - Printer.TextWidth(s))
Una última consideración: el valor de M también puede ser, simplemente, el que tu quieras: tú misma puedes decidir que anchura total quieres que tenga la columna de datos. O pudes obtenerlo de otra forma, mediante otros parámetros. Lo que te tiene que quedar claro es la idea básica: tienes que incrementar x en un valor que sea la diferencia entre la anchura total de la columna y la anchura del texto a imprimir.