Identificador de Control en JS


([N3] blanyi) #1

Buenos días comunidad.
He visto código como este:


var form = theRoot.dataView() // formualrio activo
form.control(“CBO_EMPRESA”).currentIndex = -1


O este otro:


var numControles = formulario.controlCount();
for ( var numControl = 0; numControl < numControles ; numControl++ )
{
var control = formulario.control( numControl );
control.enabled = false;
}


En el caso del segundo código, ¿Cómo obtengo el identificador del Control? porque aquí se van recorriendo de acuerdo al número del control, pero si yo quisiera saber si en esa lista está el control BTN_ALTA por colocar un ejemplo, cual es la instrucción para obtenerlo.

Gracias.

YIMY MORA ACONCHA


([N3] pacosatu) #2

Hola YIMY.

Tienes que usar la clase VObjectInfo aplicada al formulario -> oInfo = theRoot.objectInfo()
Obtener la Info de cada Control con oInfo.subObjectInfo(VObjectInfo.TypeControl, numControl)


var oForm = theRoot.dataView()
var oInfo = theRoot.objectInfo()
var controlesList = '', oObjetoInfo = null

// Las dos funciones siguientes devuelven lo mismo
var nNumObj = oInfo.subObjectCount(VObjectInfo.TypeControl)
var numControles = oForm.controlCount()
alert(numControles==nNumObj)

for ( var numControl = 0; numControl < numControles ; numControl++ ) {
   // Obtenemos el objeto VObjectInfo de cada control del formulario
   oObjetoInfo = oInfo.subObjectInfo(VObjectInfo.TypeControl, numControl)
   // var control = oForm.control( numControl )
   // Obtenemos el Id de todos los controles del formulario
   controlesList = controlesList + oObjetoInfo.id() + "\n"
}
alert (controlesList)

Pruébalo
Saludos
Paco Satué


([N3] blanyi) #3

¡Excelente Paco!

Gracias por tan amplia explicación, hasta me escribiste el código que da solución a lo que necesitaba.

Dios te siga bendiciendo y la comunidad pueda seguir contando con tu valiosa ayuda.

YIMY MORA ACONCHA


([N2] julio alonso) #4

Hola a todos!.
En un formulario que contiene un separador con dos subformularios, necesito recorrer todos los controles, incluidos los de los subformularios para verificar el contenido de algunos controles antes de realizar el alta de la ficha.
He seguido el magnífico ejemplo de Paco y consigo recorrer todos los controles, incluso los de los subformularios, pero no consigo acceder al tipo de control y al contenido de los que están en los subformularios. Las propiedades oObjetoInfo.text y oObjetoInfo.type, sólo me funcionan para los controles del formulario principal, pero para los subformularios da error.
He revisado la documentación de las Api’s y las píldoras de Arboleya pero no he encontrado ninguna pista de como hacer esto.
Agradecería cualquier sugerencia al respecto.
Gracias,


([N3] pacosatu) #5

Hola julio alonso.

Echa un vistazo al hilo reciente sobre este tema. Hay más código.
https://velneo.es/foros/topic/recorrer-subojectos-de-un-formulario

Saludos
Paco Satué


([N2] julio alonso) #6

Gracias Paco, a veces no hay nada mejor que contar los problemas en “voz alta” para encontrar una solución.
Es un lujo contar con alguien con tu conocimiento y disposición para ayudar a los demás, en especial para los que estamos empezando en este mundo de Velneo.