Acceso a controles de formularios en un separador


([N2] julio alonso) #1

Hola a todos,
Tengo un formulario que contiene un separador llamado “SEP_CON”, con dos formularios “CON_EXP” Y “CON_MAP”.
Tengo un manejador de evento asociado a un botón guardar del formulario principal. En este evento quiero recorrer los controles, del formulario principal y de los dos subformularios para verificar el contenido de los mismos. Lo estoy haciendo en js, pero no consigo acceder a las subformularios. Como el manejador de eventos es del formulario principal, no encuentro la forma de identificar los subformularios y sus controles.
Lo he intentando de varias formas:
var formPadreRoot=theRoot.dataView();
var formHijo1=formPadreRoot.control(“SEP_FOR”).form(“CFG_EXP”).root();
var formHijo2=theRoot.dataView().mainForm().control(“SEP_FOR”).form(“CFG_MAP”).root();
Os agradecería mucho si alguien me pudiese dar una pista.
Gracias,


([N1] wikan) #2

La pista…no usar js.

Tienes acceso al contenido de los campos desde código nativo. Además tampoco tendrás que comprobar todos los campos.

De todas formas, si fuera con js, tendrías que tratar los subformularios como si fuera VObject y recorres sus subobjectos.


([N1] lsmsusvilla) #3

Muy buenas Julio exactamente como te dice wikan puedes acceder desde el formulario principal con codigo velneo a todos los campos, variables etc etc de todos los subformularios y trabajar con ellos y hacer las comprobaciones que necesites.


([N2] julio alonso) #4

Muchas gracias por vuestra respuesta, pero creo que no me expliqué del todo.
La idea es recorrer los controles para leer el identificador del control. No he visto como hacer esto con código nativo y por eso lo he intentado en js.
La idea es hacer una función que recorra los controles y en función del identificador saber si el campo de base de datos asociado a ese control es obligatorio o no. Para identificar un campo obligatorio, lo hago añadiendo un sufijo al nombre del identificador del control correspondiente, por ejemplo, “OBG”. Dado que en Velneo no se pueden poner cambios obligatorios a nivel de definición de base de datos, me pareció más cómodo desarrollar una función que recorra los controles de cualquier formulario desde el que se llame a la función, en lugar de hacer el chequeo de manera individual en el botón aceptar de cada formulario.
Esta función, funciona correctamente con los controles del formulario principal, pero no consigo acceder a los controles de los formularios incluidos en el separador de formularios.
En cuanto a “tratar los subformularios como si fuera VObject y recorres sus subobjetos”, como sugiere Wikan, imagino que es lo que necesito, pero llevo muy poco tiempo con Velneo y no tengo ni idea de a que te refieres, por lo que si puedes ampliar la información, te lo agradecería.
Saludos,