Encadenar formularios en altas


([N4] eic) #1

Hola.

En v6.x era muy típico (al menos, yo lo hacía con frecuencia) realizar un alta de la siguiente forma:

1) Llamar a un formulario de alta sencillo (pocos campos)

2) En el proceso posterior al botón Aceptar, volver a cargar el registro recién creado y abrirlo (mediante retorno) con otro formulario, más completo.

Ahora, con V7, se me ocurren dos maneras para hacerlo:

1) Utilizar un evento "al perder foco" del botón Aceptar. En ese evento, creamos un manejador del segundo formulario, le añadimos el registro y lo disparamos

2) Algo similar, pero haciendo que el botón Aceptar ejecute un evento, que utilice el comando "Interfaz: aceptar" y, posteriormente, en el mismo evento, las instrucciones que hacen que se abra el formulario.

¿Cuál sería más adecuada, o bien, habría alguna otra manera más propiamente "estilo V7" para hacerlo?

Gracias,

Fran Varona

 


([N1] Nacho) #2

Hola Fran, yo con la versión beta en enero lo hice así (utilizando los botones de aceptar normales):

 

[attachment=4466,470]

 


([N4] fgutierrez.velneo) #3

De las que planteas, parece mejor la segunda opción.

Cuando quieras usar eventos que dependan de que el usuario acepte, es mejor que sea el propio botón el que lance el evento.

De todas formas, te diría que con las posibilidades que dan los layouts, podrías hacerlo todo en el mismo formulario. Una condición de visiblidad asociada a completar ciertos datos o a la pulsación de un botón que ponga una variable local booleana a 1, pueden hacer que aparezcan el resto de los datos que quiere introducir el usuario (podría ser un botón que desapareciera al usarse, mostrando entonces el verdadero botón aceptar).

Los layouts se encargarán de adaptar todo el formulario al nuevo contenido.

De esta forma trabajas con un único formulario, tan complejo como tú lo definas, y evitas crear el registro y tener que eliminarlo si cancela y otras tareas de mantenimiento que debes tener en cuenta.

Cuando pienses en usabilidad e interfaz, recuerda que tienes nuevos elementos de los que te puedes aprovechar.

La forma que comenta Nacho también es interesante. Te aprovechas de que el alta de ficha ahora se divide en dos partes, Crear nueva ficha en memoria y Alta de ficha, lo que hace que pueda estar abierto el formulario el tiempo que haga falta, ya que no se realiza la transacción hasta el uso del comando Alta de ficha.

Te permite, además, abrir un formulario para editar la ficha las veces que haga falta con ayuda del comando Procesar ficha en memoria.

Además también evitas crear el registro realmente, hasta que el usuario acepta.

Y seguro que encontrarás más formas.

Un saludo.

 

 


([N4] eic) #4

Hola.

Muchas gracias a ambos! Muy ingeniosa tu forma, Nacho. Y gracias, fgutierrez, por tu amplia explicación.

Y... me surgen más dudas: ¿qué pasaría, en la modalidad de Nacho, si alguno de los dos formularios tiene líneas (es decir, una rejilla de histórico)? La ficha principal se crea en memoria... ¿las líneas también? Al procesar la ficha, ¿se procesarían las históricas? Me da la impresión de que no se puede usar con históricos, pero me gustaría confirmarlo.

Muchas gracias de nuevo. Aquí se aprende a cada paso!

Saludos,

Fran Varona

 


([N4] fgutierrez.velneo) #5

Para dar de alta un histórico siempre necesitarás tener el código del maestro, por lo que ha de estar dado de alta.

Un saludo.


([N4] rcueto.velneo) #6

Hola:

Otra posibilidad es que crees una estructura de formularios a modo de asistente. Podrás hacerlo mediante el uso del control de formularios pila de formularios.

Un saludo.