Campo en formulario con decimales


([N1] OscarBarea) #1

Hola,
Tengo un formulario con varios campos numéricos. En las propiedades de los campos, en número de decimales tengo los decimales en función de opciones de condición. El problema viene dado, que en tiempo de ejecución no me cambia nunca los decimales. Tengo que aceptar el formulario, y cuando vuelvo a entrar veo los decimales correctamente .
Hay alguna opción de poder refrescar estos los campos para que me coja bien los decimales?
Gracias
Oscar B.


([N4] Infortic) #2

Hola Oscar.

Esta es la semana de los refrescos de campos.

¿Cual es la condición de los decimales?

Puedes forzar desde js el update de los controles, lo explica Paco aquí:

http://velneo.es/foros/topic/refrescar-un-campo/

En un formulario sería crear un mañejador js con el código:

theRoot.dataView().updateControls();

Y llamas al manejador cuando veas oportuno (al perder el foco el textbox, o cuando sea).

No sé si será suficiente para actualizar dicha condición de decimales, no sé si el updatecontrols reevalúa esa propiedad.


([N1] wikan) #3

http://velneo.es/info_v7_716_es/velneo_vdevelop_v7/scripts/clases/core/widget/vnumberspinbox/#decimals


([N1] OscarBarea) #4

Gracias,
@Info, lo he probado, pero no refresca la propiedad de los decimales del campo.

@Wikan, estoy bastante perdido en js, me podrían indicar que es lo que debería poder en el manejador de js. Mil gracias

Oscar B:


([N4] Infortic) #5

theRoot.dataView().control(“NOMBRE_DEL_CONTROL”).decimals = 2;

O los decimales que sean


([N1] OscarBarea) #6

Gracias @info,

He puesto la instrucción que dices y funciona, pero quiero que los decimales los coja de una de las tablas maestras, que es tiene el que tiene los decimales a poner.

theRoot.dataView().control(“PER_CAMP_FOR_RES”).decimals = “#TUN.RDO_CAMP_PER_RES_FOR”;

así no me funciona, como se llama a un campo de una tabla maestra?

Gracias


([N4] Infortic) #7

El registro en edición en el formulario está representado por el objeto theRegisterIn.

Así que debería ser algo parecido a:

theRoot.dataView().control(“PER_CAMP_FOR_RES”).decimals = theRegisterIn.fieldToInt(“TUN.RDO_CAMP_PER_RES_FOR”);

Ojo al copiar código js que las comillas te las puede cambiar!


([N1] OscarBarea) #8

Perfecto, funciona!
Muchas gracias #info