Si en un formulario que tenga el valor «verdadero» en la propiedad «Siempre en cuadro de diálogo» deseamos poner un botón que sirva para dar el alta del registro y mostrar el formulario vacío para continuar dando altas, podemos hacerlo de forma sencilla en sólo 3 pasos. En esta vitamina aprenderás a poner el botón aceptar y seguir en cuadros de diálogo con Velneo
1. Creamos el botón aceptar y seguir.
2. Al botón le asignamos el comando «Ejecutar manejador de evento» y creamos y asignamos el manejador de evento JavaScript ACE_SEG.
3. Escribimos el siguiente código en el manejador de evento ACE_SEG.
// Aceptar y seguir dando altas
var formulario = theRoot.dataView();
formulario.acceptNoClose();
¿Y si quiero hacer verificaciones antes de aceptar y seguir?
En este caso, también de forma sencilla, haremos lo siguiente:
1. El botón Aceptar y seguir ejecutará un manejador de evento que podemos llamar VRF, por ejemplo. En ese evento se realizarán las comprobaciones oportunas mostrando mensajes de error y posicionando el cursor en el campo erróneo si así se desea.
2. Si tras finalizar las verificaciones todo está correcto, simplemente ejecutamos el manejador de evento ACE_SEG con el comando de instrucción «Ejecutar manejador de evento».
Otra solución universal
Si quieres conocer una solución universal que permite incluir el botón aceptar y seguir en un formulario tanto si se muestra en cuadro de diálogo (ventana) como en vista (pantalla completa), consulta la Vitamina 12 – Aceptar y seguir en formularios en vista y cuadro de diálogo con Velneo.
Veldevelop dice
Hola Jesús he intentado implementar esta píldora y no se muy bien porqué no me funciona. Me he asegurado de que el formulario esté a verdadero siempre en cuadro de dialogo, he creado el script copiando y pegando de esta misma pagina, hasta los he llamado igual a los manejadores de evento pero haga lo que haga el formulario se cierra. ¿Alguna idea que me pudiera dar luz de algo que pudiera estar haciendo mal????
Saludos y gracias de antemano
Veldevelop dice
Hola de nuevo, después de trastear mucho y casi volverme loco me he dado cuenta que si llamamos al form desde una acción situada en un dock simplemente no funciona.¿Por qué? imagino que cosas de la informática.
Arturo dice
lo he implementado y lo que pasa es de que el formulario se cierra, ¿por que?
saludos
jarboleya dice
Hola Veldevelop.
He vuelto a comprobar el funcionamiento:
– Como formulario de alta desde rejilla: OK.
– Como acción disparada desde toolbar principal: OK.
– Como acción disparada desde la barra de menú: OK.
El problema surge cuando se dispara desde un dock, tanto desde un botón como desde un menú arbolado, en ese caso el formulario se acepta pero no se vuelve a abrir. La solución es sencilla.
1. Supongamos que nuestra acción que muestra el formulario de alta se llama «ACCION_FORMULARIO_ALTA» y ejecuta el comando «Formulario de alta».
2. Creamos un proceso, por ejemplo PROCESO_FORMULARIO_ALTA que ejecutará el comando «Interfaz: Ejecutar acción (ACCION_FORMULARIO_ALTA)».
3. Creamos la acción, por ejemplo ACCION_PROCESO_FORMULARIO_ALTA que ejecutará el comando «Disparar objeto» PROCESO_FORMULARIO_ALTA.
4. En la opción del menú arbolado o en el botón ubicados en el dock, ejecutamos la acción ACCION_PROCESO_FORMULARIO_ALTA.
Es decir, en lugar de lanzar directamente el formulario de alta, lo que hacemos es disparar un proceso que ejecuta la acción que tenemos que muestra el formulario de alta.
Saludos.
jarboleya dice
Hola Arturo.
Con la información que aportas es complicado responderte de forma concreta.
Saludos.