PDA

Ver la Versión Completa : Mascara 00000000001 en fastreport


hecospina
19-11-2008, 22:06:12
Buenas tardes amigos del foro

Utilizo FastReport 4

Requiero hacer esto, tengo el campo NoFactura que es de tipo entero
Hasta el momento se viene imprimiento sin ningun tipo de problemas, si la factura es la 2500 se imprime dicho numero

Ahora mi cliente necesita que el numero sea de 12 caracteres y si no los contiene sea completado con ceros

Por ejemplo el numero 2500 deberia quedar 000000002500

Como puedo hacerlo ? :(

Gracias por dedicar tiempo a leer este mensaje

droguerman
19-11-2008, 23:44:12
Usa el evento OnBeforePrint del control y cambia la propiedad memo.text del control usando la función format, algo así (no tengo fastreport a la mano asi que me puedo equivocar en la sintaxis)


control.memo.text := format('%.12d', [ < dataset."numero" > ]);


si no funciona eso crear una función que concatene ceros hasta que el valor tenga una longitud de 12 (era la forma que usaba yo)

saludos

TOPX
20-11-2008, 15:30:05
Buenas,

Yo tampoco tengo FR a la mano en el momento, pero recuerdo que el componente Text tiene la propiedad DisplayFormat, puede probar poniendo el %.12d que le indicó droguerman allí.

Si de pronto no es compatible, podría hacer que la consulta Sql le devuelva el dato formateado; por ejemplo, si es MsSql podría usar la función Replicate().

hecospina
20-11-2008, 17:04:20
Gracias Droguerman y Topx
Ya lo solucione con la idea que me dio Droguerman
Hay dos formas

1. Al hacer clic derecho en el memo aparece la opcion formato de visualizacion, alli se marca Número y en formato se coloca #000000000000

2. Dentro del memo donde bajo el campo quedaria asi [<ibxquery1."numero"> #n #00000000000]

La cantidad de ceros es el numero de caracteres que se desea visualizar

Me imagino que desde el inspector de objetos se puede hacer tambien

Muchas gracias por su colaboracion :D