|
La macro sc_redir se utiliza para crear redirecciones dinámicas entre dos aplicaciones o entre una aplicación y una URL, permitiendo el paso de parámetros y el control sobre cómo se abrirá la aplicación de destino utilizando el parámetro target.
En aplicaciones de formulario, la macro sc_redir se puede usar en eventos que dependen de actualizaciones en la base de datos, como: onAfterInsert, onAfterUpdate, onAfterDelete, onBeforeInsert, onBeforeUpdate, y onBeforeDelete. Sin embargo, en estos eventos, la macro sc_commit_trans() debe usarse antes de sc_redir para confirmar la transacción; de lo contrario, la redirección ocurrirá sin que los cambios en la tabla sean aplicados.
Parámetros
| Parámetro |
Descripción |
Ejemplos |
app_name/url |
Recibe el nombre de la aplicación de destino o URL a la cual el usuario será redirigido. Los valores deben estar entre comillas dobles o simples. |
sc_redir('app_name'); |
parameter_to_send |
Permite pasar valores a la aplicación de destino en el formato: nombre_parámetro='valor'. Puede usar un campo de la aplicación, una variable o informar un valor fijo. Si se pasan más de un parámetro, use un punto y coma (;) como delimitador. Los valores deben recuperarse como variables globales en la aplicación de destino. |
sc_redir('app_name', parm1=50); Dos parámetros pasados: sc_redir('aplx', parm1={clienteid}; parm2="xxx"); En 'aplx', los valores se recuperan como variables globales: [parm1] y [parm2]. |
target |
Define cómo se mostrará la aplicación/URL de destino.
- _self: Abre el destino en la misma pestaña (valor predeterminado si no se especifica ningún valor).
- _blank: Abre el destino en una nueva pestaña.
- _parent: Abre el destino en la ventana principal, si la página actual está en un iframe.
- modal: Abre el destino en una ventana modal (esta opción no está disponible cuando se usa la macro en un botón de ejecución).
|
Especificar el target sin parámetros:
sc_redir('app_name', , '_blank');
Usando modal:
sc_redir('app_name', , 'modal', , '800', '600'); |
error |
Define el comportamiento de la redirección en caso de error en la aplicación.
- 'E': Bloquea la redirección si ocurre un error.
- 'F': Fuerza la redirección incluso si ocurre un error.
|
sc_redir('app_name', , ' ', 'E');
sc_redir('app_name', , ' ', 'F'); |
modal_height |
Define la altura del modal en píxeles. Este parámetro es obligatorio al usar modal en el parámetro target. |
sc_redir('app_name', , 'modal', , '800', '600'); |
modal_width |
Define el ancho del modal en píxeles. Este parámetro es obligatorio al usar modal en el parámetro target. |
sc_redir('app_name', , 'modal', , '800', '600'); |
Ejemplos de Uso
Ejemplo 1 - Redirección simple sin parámetros.
// Dado que solo se especificó la aplicación, se abrirá en la misma pestaña. sc_redir('aplx');
Ejemplo 2 - Redirección con paso de parámetros.
// Se envían cuatro parámetros a la aplicación de destino; estos valores deben recuperarse como variables globales: [parm1], [parm2], [parm3], [parm4]. if (empty($variable)) { $variable = "documentación"; } sc_redir('aplx', parm1={clienteid}; parm2="xxx"; parm3=$variable; parm4=10);
Ejemplo 3 - Uso de target sin parámetros.
// En este caso, dado que no se envían parámetros a la aplicación de destino, se debe dejar el espacio en blanco para especificar el target. sc_redir('aplx', , '_blank');
Ejemplo 4 - Uso de modal para el parámetro target.
// Es obligatorio definir el ancho y la altura al especificar modal en el parámetro target. // Solo se deben proporcionar los valores. sc_redir('aplx', , "modal", '', '800', '600');
Ejemplo 5 - Ejemplo de uso en eventos de transacción de base de datos en formularios.
// La macro sc_commit_trans debe usarse antes de sc_redir para confirmar la transacción. sc_commit_trans(); sc_redir('aplx', parm1={clienteid});
Ejemplo 6 - Redirección a una URL.
if ([glo_usr] == "test") { sc_redir("http://www.mipagina.com"); }
|