Edicion de cantidades


([N3] blavan) #1

Un campo lo defino con dos decimales, en los formularios y rejilla se me muestra con ceros a la derecha

345.980000

Como se evitan los ceros a la derecha?

Como se configura para que coja la comaen lugar del punto?

 

Gracias

 


([N1] Velasco) #2

Buenas Benito,

No se si te entiendo

Yo tengo campos con 2 y con 4 decimales y cuando los uso en un formulario con microscrollers me salen con sus decimales correspondientes. Igualmente en las rejillas.

Además separador de decimales tengo la coma sin haber hecho nada. De todas en las rejillas tienes la propiedad de Formato numérico local cuerpo.

Aunque creo que no te he ayudado mucho, un saludo.

 

 


Jorge Velasco Fernández

jvelasco@theseedsc.com

www.theseedsc.com


([N4] eic) #3

Hola, Benito.

En esta versión, si usas un control de edición para mostrar un campo numérico, ocurre lo que dices. Soluciones:

- En formularios: utilizar microscrollers, si vas a editar el campo; o bien usar el control de edición, pero formateando el campo numérico (con numbertostring (#CAMPO, "L", 2) ), pero entonces no te deja modificarlo.

- En rejillas: activando la propiedad "Formato numérico local" de la columna.

Saludos,

Fran Varona

 


([N3] blavan) #4

Gracias, ya sabia que no me fallabais


([N2] gegeo) #5

Pfff, entonces para manejar numeros con decimales en formularios, ¿¿la solucion es con microsrollers??

Wow, pues no tengo curro ni náa ahora.

 

Gracias por el truquillo.


([N4] eic) #6

Hola.

En principio, el campo adecuado para manejar datos numéricos es el microscroller, desde la primera versión de V7. Lo que ocurre es que muchos estábamos acostumbrados a utilizar controles de edición (porque en 6.x no había esta distinción, o por otras razones). Y hasta ahora funcionaban bien, pero en la 7.3 hay una incidencia, y al mostrar un campo numérico (si tiene signo) lo hace del modo que comenta Benito.

Saludos,

Fran Varona

 


([N2] gegeo) #7

Gracias, Fran,

 

Tras unas pruebas, como bien dices, si los campos numericos no tienen signo, sí funcionan bien los controles de edición.

Aunque con el problema de siempre, NO REDONDEA NADA, simplemente se olvida del siguiente decimal al formato que le hayamos dado a ese campo, es decir, donde el valor es por ejemplo 149,578, el valor que deja en el campo, si le hemos dicho que 2 decimales, deja 149,57.

Y otro problema más, en los campos de fórmula numérica, NO RESPETA EL NUMERO DE DECIMALES que le hemos indicado a dicho campo.

Eso que yo sepa por ahora.

 

Saludos

 


([N4] eic) #8

Hola.

Realmente, los campos de edición están pensados para mostrar texto. Sería deseable que mostrara correctamente los números con signo, pero es *casi* lógico que no redondee.

Por otra parte, para los campos de fórmula numérica (en controles de edición) lo mejor es que se formateen (con numbertostring), y entonces debería funcionar bien. 

Saludos,

Fran Varona

 


([N2] gegeo) #9

Hola de nuevo,

¿Donde aplicas el stringToNumber(cadena), en el campo de la tabla, o en el control del formulario?

He probado en tabla y no doy con ello.

Por ejemplo, tengo unos campos #A, #B y #C, y según el dato que necesito obtener la formula numerica es la siguiente:

 

((#A*#B)/#C) Los decimales de este campo estan definidos como 3, y formateando el contenido del campo lo hago:

 

stringToNumber((#A*#B)/#C), y me muestra 8 decimales

 

He probado tambien con round(x, [decimales]), y tampoco.

 

Saludos

 

 


([N4] eic) #10

Hola.

Hay varias posibilidades, pero puedes:

1) Crear un campo fórmula numérica en la tabla (con tres decimales) que sea:

round( ( #A * #B ) / #C, 3 )

Aunque el campo fórmula tenga 3 decimales, con esto consigues que lo que se calcule sea el redondeo como a ti te interesa. Con esto, ya tienes el campo. Y

2) Poner un campo de edición en formulario con la fórmula: stringtonumber ( #D, "L", 3), donde supongo que D es el campo fórmula. Con esto, formateas el campo para que se muestre en formato local (separador de miles, coma decimal) y tres decimales.

Si el dato sólo lo usas en un formulario, puedes poner directamente: 

stringtonumber ( round( ( #A * #B ) / #C, 3 ), "L", 3 )

Tener un campo fórmula en la tabla te facilita las cosas para mostrarlo en más de un sitio.

Saludos,

Fran Varona

 


([N2] gegeo) #11

Probado, y funciona tal cual me has indicado.

Muchas gracias, ya no sabia si darme con la cabeza en la pared.

 

Saludos.


([N1] awesomme) #12

Hola tengo el siguiente problema al aplicar Roun o cut con el objetivo de que me redondee o solo mostror 2 decimales , cuando se trata de 0.00000 o alguna cnatidad con ceros como 200 me muetra 0E+12 o similares. Gracias