Ejecutar manejador de evento de otro formulario (splitter)


([N1] leonardo daniel velazquez fuentes) #1

Hola a todos tengo una aplicacion de viajes de trailers, con un centro de despacho, donde deben aparecer los viajes disponibles, conductores disponibles, asi como los viajes ya despachados… utilize un splitter para poder poner los 3 formularios… el asunto es que cada formulario tiene sus eventos… en el primero ya puedo cancelar el viaje y lo marca con (status “C”) y lo quita de la lista de disponibles, el asunto es que el 3er formulario tiene un evento buscar (disparado despues del post-init) el cual trae los viajes despachados (status “D”), bueno al seleccionar el viaje en disponibles y darle despachar, necesito obtengo el no. de viaje lo guardo en la variable, pregunto si realmente lo va a despachar y necesito abrir un formulario donde se rellenan mas datos sobre el viaje (es la misma tabla)… al dar guardar, marcar ese registro con (status “D” despachado), guardar los cambios, disparar el manejador “BUSCAR” del formulario de despachados para que me refresque la rejilla…y cerrar el formulario



([N4] sauron911) #2

Deberias, aunque no termino de entender lo que quieres hacer, probar con Interfaz:Recalcular(), para ver que sucede. Desde luego, los eventos solo se pueden llamar desde el formulario donde estan definidos. Son como funciones “locales”.


([N4] Infortic) #3

Si mal no entiendo, quieres ejecutar un manejador de un subformulario desde otro subformulario.

¿Es así?

Si el tema es este, hay una “chapucilla” que puedes hacer que ya es de dominio público.

  1. En el formulario de despachados, creas un botón “invisible” con alto cero y ancho cero, con la acción de ejecutar el manejador de evento BUSCAR y lo llamas BTN_BUSCAR.

  2. En el 3er formulario creas un manejador javascript llamado ACT_DESPACHADOS con el código:

theMainWindow.currentView().centralWidget().control(“ID_DEL_SEPARADOR_DE_FORMULARIOS”).form(0).control(“BTN_BUSCAR”).click();

  • en el form(0) cambias el 0 por el nº de formulario dentro del separador al que quieres acceder.
  • cuidado si copias y pegas que las comillas dobles te las pegará mal.
  1. Para actualizar el otro subformulario simplemente llama al manejador recién creado.

([N4] Infortic) #4

Creo que el foro ha cortado la instrucción:

theMainWindow.currentView().centralWidget().control(“ID_SEP_FORM”).form(0).control(“BTN_BUSCAR”).click();


([N1] leonardo daniel velazquez fuentes) #5

Excelente MAESTRO…!! funciono perfecto… al darle despachar viaje abro el formulario modal para completar los datos al cerrar el formulario disparo el evento de actualizar despachados ( el 3er formulario, con el boton oculto ) y el manejador que me dijiste en la ventana de disponibles, ah y luego tuve que disparar el de buscar disponibles para que me actualizara que ese viaje ya no estaba ahi.

:wink:

[quote quote=42956]Creo que el foro ha cortado la instrucción:

theMainWindow.currentView().centralWidget().control(“ID_SEP_FORM”).form(0).control(“BTN_BUSCAR”).click();

[/quote]