Acceder a elementos de formulario Javascript


([N1] JPACHECO) #1

Hola buenas a todos…

Tengo un formulario principal(FORM_PRINC) , el cual tiene una caja de edicion alfabética donde se ingresa el nombre de algun producto a buscar y una rejilla que muestra los resultados de la busqueda, pero debido a que la busqueda es en diferentes sucursales he puesto un formulario de busqueda aparte que se abre al presionar “F2”, "F2"es la tecla aceleradora del boton que ejecuta el manejador de evento que dispara el formulario y de igual modo he puesto un boton para ejecutar el manejador de evento que ejecuta la busqueda de los prodcutos en las diferentes sucursales, ahora una vez en el formulario de busqueda secundaria(FORM_SECBUS) el usuario podra ver los diferentes productos que tiene el mismo codigo o el mismo nombre y diferente codigo, y lo que quiero es que una vez que el usuario haya seleccionado un elemento de la lista del formulario secundario(FORM_SECBUS), se me ejecute la busqueda de los productos en las sucursales en el formulario principal(FORM_PRINC), lo estoy intentando por medio de Javascript, ya que tengo botones que ejecutan los manejadores de eventos, pero no se si está carrecta la forma en que accedo al boton del formulario principal(FORM_PRINC), es la siguiente:

theRoot.dataView().mainForm().form(‘FORM_PRINC’).control(‘F5’).click();

De antemano muchas gracias… espero sus correcciones y sus aportes…


([N4] Infortic) #2

Hola.

No tengo medios para probarlo ahora pero:

mainForm() ya debería de devolverte la vista de datos del formulario principal (segun la documentación)

theRoot.dataView().mainForm().control(“F5”).click();

Debería de funcionar (siempre y cuando el botónde búsqueda se llame “F5”.

Otra forma es usar parentDataview.

theRoot.dataView().parentDataView().control(“F5”).click();

Como te digo no lo he probado, si te da error es ver en la barra de estado en qué punto no encuentra el método adecuado.


([N1] JPACHECO) #3

Hola Infortic…

Probe un código que halle en este hilo https://velneo.es/foros/topic/refresco-de-pestana-principal-desde-opcion-de-menu-o-boton-de-barra/ iniciado por José A. Martínez y contestado por Paco Santué:

var nNumVistas = theMainWindow.viewsCount();
var oVista = null, oForm = null, oInfo = null, oBoton = null;
var lExiste = false
for (nVista = 0; nVista < nNumVistas; nVista++) {
oVista = theMainWindow.getViewAt(nVista);
if (oVista) {
oInfo = oVista.centralWidget().objectInfo();
if (oInfo.idRef() == theRoot.varToString(“FRM_IDREF”)) {
// Se ha encontrado el formulario
lExiste = true;
break;
};
};
};
if(lExiste) {
oForm = oVista.centralWidget();
oBoton = oForm.control(“F5”).click();;
alert("—> A1 “);
};
alert(”—> A2 “+lExiste+” "+nNumVistas);

Entra al if que verifica si el formulario existe, pero no ejecuta el evento, no se si es por el modo de ejecución que esta en SDI o no se que puede ser, en Javascript no soy bueno, espero ayuda…

Saludos…