IMPRIMIR CON Y SIN DECIMALES


([N1] yarumal) #1

Hola todos,
Ahora tengo que solucionar algo en los reportes de las facturas:
Necesito buscar la forma de imprimir la cantidad de forma que si es un entero no muestre los ceros de los decimales y que cuando tenga decimales pues los imprima.

Con el fin de algunos clientes no saquen peros y reclamos de donde no los hay.


([N1] aztecmexico) #2

Prueba con Choose.

Conviertes a cadena el número redondeado a 2 decimales y verificas si hay decimales, si es asi ya elijes un formato de salida para la factura.


([N1] yarumal) #3

hola aztecmexico, agradezco tu interes, ese es el problema como verifico que hay decimales… es decir como detecto el valor decimal en velneo o en vReport.

Se me ocurre crear un nuevo campo en la tabla al cual se asigno el valor redondeado como dices y luego en funcion de compararlos será la salida en la factura.

pero no me parece una solución adecuada ya que habría que crear un nuevo campo en la tabla solo para eso. Imagino que debería haber una función para saber si un número tiene decimales o no.


([N1] aztecmexico) #4

Mas o menos sería así, bueno, en alguna ocasión así lo hice tambien.

Maneras hay varias, te pongo una en la que verificas la existencia de decimales.

set (decimales,stringToNumber(right(numberToString(VL_PRECIO_BASE*(DESCUENTO/100), “f”, 2), 2))

Qué hago con esta línea, bueno, primero ver que son expresiones anidadas, primero convertimos el número que nos interesa, en este caso el resultado de un calculo, siempre con dos decimales.

Luego extraigo los dos últimos caracteres de la cadena con right

Por último convierto esos dos caracteres a número y es lo que asigno a la variable local numérica.

Ya en adelante pues puedes decidir que hacer o qué imprimir, en tu caso creo que quedaría una expresión así:

choose( (stringToNumber(right(numberToString(TU_NUMERO_A_VALIDAR), “f”, 2), 2)))>0 , numberToString(numero, “f”, 2), numberToString(numero, “f”, 0))


([N1] yarumal) #5

Muy bien, que haría yo sin gente como ustedes. Mil gracias.

Pero de otro lado, las soluciones generalmente son tan sencillas que me cuestiono y en ocaciones hasta me averguenzo al no resolverlas yo mismo…