Emular proceso previo y posterior de v6


([N1] triphido.gmail) #1

La forma breve de mi pregunta es ¿como podemos emular en v7 aquellos procesos previos y posteriores que tenían los botones de Aceptar de v6 cuando es imprescindible hacerlo? Bastaría con que respondierais a eso.

Pero ahora vosotros diréis ¿en qué caso puede volverse tan ineludible? Y yo digo:

 

Tengo una tabla A con una histórica A' y otra tabla B con una histórica B'. Un formulario de A tiene en su botón aceptar:

Proceso pre:

    1.-Mediante un tubo de ficha convierte el registro de la tabla A en un registro de la tabla B.

    2.-Guarda en A un puntero al nuevo registro B

 

Proceso post:

   1.-Mediante un tubo de lista convierte los históricos de A (los A') en históricos de B (los B'). Para que los nuevos registros B' apunten correctamente al registro B que creamos en el punto 1 del Proceso pre utilizamos el puntero que guardamos en el punto 2.

Ahora bien en v7 cada botón de formulario sólo dispara un proceso. En ese proceso puede haber una instrucción 'Interfaz: Aceptar' para guardar la ficha de A con la que trabajamos pero se nos cierra el formulario y con ello termina el proceso. Por tanto tubo de lista del post no llega a ejecutarse.

Si no utilizo la instrucción 'Interfaz: Aceptar' podré ejecutar el tubo de lista que transforma A' en B' pero los nuevos B' no apuntarán a B ya que el puntero se obtiene de A que, aunque se modifica en el punto 2 del proceso pre, aún no está guardada en disco.

 

Si habéis entendido el trabalenguas gracias!!!!!


([N4] eic) #2

Hola.

Es posible que salga una solución más sencilla para esto en la versión 7.6, según se comentó en la presentación de la versión 7.5, aunque no se sabe exactamente de qué modo (se habló de la implementación de "Aceptar sin cerrar formulario" que, dependiendo de cómo se lleve a la práctica, te ayudaría bastante).

De todos modos, podrías hacer otra cosa. El gran problema es el proceso post, porque el pre es más asequible con lo que comentas. No sé si estás en un alta o en una modificación. Si es un alta, podrías usar los comandos Crear nueva ficha en memoria y Pedir formulario para hacer el alta, y después, ya tendrías el código de la ficha A y podrías realizar los procesos posteriores. Si fuera una modificación, en vez de abrir directamente el formulario, podrías utilizar un Modificar ficha con formulario, y posteriormente, realizar el proceso "post". 

Saludos,

Fran Varona

 


([N1] triphido.gmail) #3

Muchísimas gracias.

Se trata de una modificación (si A tiene ya históricos A', no podría ser de otro modo). La cuestión es que el formulario se lanza como formulario de modificación de una rejilla. Para utilizar la instrucción 'Modificar ficha con formulario' tendría que meterme con eventos en doble-clic de la rejilla... ¡y luego para la versión 7.6 volver a hacerlo todo como es debido!

Estoy completamente de acuerdo: un 'Aceptar sin cerrar formulario' solucionaría el problema.