ScriptCase 9. Retornar desde una Aplicación Grid MODAL

472 views
Skip to first unread message

Fausto

unread,
May 17, 2020, 10:26:35 AM5/17/20
to comunidad-scrip...@googlegroups.com

El problema aquí presentado debo suponer que es debido a un bugs de SC 9.4.027 posiblemente en versiones posteriores Netmake solucione los misterios de los formularios modal, que para mí se tornan un poco impredecibles. 


Problema:
Una aplicación grid  (app_grid_origen) que lanza otra aplicación grid modal  (app_grid_modal) a través de un "botón de enlace" para seleccionar registros por medio de  un botón run :

El método onFinish del botón run debería, al terminar de procesar, retornar a app_grid_origen, esto no ocurre aun utilizando la macro sc_exit(), por otro lado existen soluciones que involucran javaScript, pero estas  no pueden ser aplicadas por dos razones:

  1.  La aplicación grid no implementa la macro sc_ajax_javascript.
  2.  La aplicación grid no trae opciones para crear método javaScript aunque es posible crearlo por código y etiquetas en cualquiera de los eventos que expone en el nodo Eventos.

Solución (probado en SC 9.4.027):

Paso 1. En app_grid_origen en el evento onScriptinit haremos uso de la macro: sc_url_exit, esto es para evitar que se genere un ciclo infinito entre la app_grid_origen y app_grid_modal :


//onScriptinit de
app_grid_origen
   sc_url_exit('app_principal');


sc_url_exit(url) : Esta macro modifica la URL de salida de la aplicación.

Paso 2. En el atributo target del BOTON RUN de la app_grid_modal pondremos en valor 'La misma ventana'.

Paso 3. En el evento onFinish del botón run de app_grid_modal utilizaremos la macro sc_redir esto debe de ser colocado después del procesamiento de los registros. 



//onFinish de app_grid_modal
  sc_redir('app_grid_origen','',"_parent");

 

sc_redir (Aplicación, Parámetro01; Parámetro02; Destino, Error, height_modal, width_modal) :

 Esta macro se utiliza para redirigir el procesamiento a otra aplicación o URL.

Si el redir utiliza parámetros, estos deben pasarse en el siguiente formato:
1) Después del nombre de la aplicación, use el delimitador de coma (,) luego
2) = (signo igual).
3) Más de un parámetro, debe estar separado por punto y coma (;)
4) El objetivo determina qué aplicación se abre (por defecto = _self): _self, _parent, _blank o modal.
5) Parámetro opcional para establecer la redirección de mensajes de error en la aplicación: "F" redirige si hay un error en la aplicación (valor predeterminado) y "E" no redirige.

Observación: Si su conexión utiliza el control de transacciones, el uso de esta macro en los eventos onAfterInsert, onafterupdate, onAfterDelete, onBeforeInsert, Onbeforeupdate o onBeforeDelete debería venir después del uso de la macro sc_commit_trans, de esta manera guardará los cambios en el formulario.

Esta macro no admite el uso del parámetro Modal cuando se utiliza en un botón Ejecutar.


Saludos,
Espero sirva de ayuda esta nota. 
Reply all
Reply to author
Forward
0 new messages