sc_redir('app_destino/url', parametro01; parametro02, 'target', 'error', 'altura_modal', 'largura_modal')

A macro sc_redir é utilizada para criar redirecionamentos dinâmicos entre duas aplicações ou entre uma aplicação e uma URL, permitindo a passagem de parâmetros e o controle de onde a aplicação de destino será aberta, utilizando o parâmetro target.

Em aplicações de formulário, ela pode ser utilizada em eventos que dependem de atualizações na base de dados, como: onAfterInsert, onAfterUpdate, onAfterDelete, onBeforeInsert, onBeforeUpdate e onBeforeDelete.
No entanto, nesses eventos, a macro sc_commit_trans(); deve ser utilizada antes da sc_redir para confirmar a transação; caso contrário, o redirecionamento será realizado sem que as alterações na tabela sejam aplicadas.

Parâmetros

Parâmetros Descrição Exemplos
app_name/url Recebe o nome da aplicação ou URL de destino, para qual o usuário será redirecionado.
Os valores devem ser passados entre aspas duplas ou simples.
sc_redir('app_name');
parameter_to_send

Permite passar valorer para a aplicação de destino no formato: nome_do_parametro='valor'
A atribuição do valor pode ser feita com um {campo}, $variavel ou 'Valor Fixo'.

Para enviar mais de um parâmetro utilize o ponto e vírgula(;) como delimitado.

Os valores devem ser recuperados como variáveis ​​globais no aplicativo de destino.

sc_redir('app_name', parm1=50);

Ao eviar dois ou mais parâmetros utilize o ponto e virgula entre eles:
sc_redir('app_name', parm1=50;parm2={campo};parm3=$variavel );

Na aplicação de destino o valor deve ser recuperado como variável global
if ( [parm1] == 50 ) { {id} = [parm1]; }

target

Define como a a aplicação ou URL de destino será exibida.

  • _self - Exibe a aplicação ou URL de destino na mesma aba (valor padrão caso nenhum target seja informando).
  • _blank - Exibe a aplicação ou URL de destino em uma nova aba.
  • _parent - Exibe a aplicação ou URL de destino na janela pai, se a página atual estiver em um iframe.
  • modal - Exibe a aplicação ou URL de destino em uma janela modal (esta opção não está disponível ao utilizar a macro em um botão Run).

sc_redir('app_name', , '_blank');

Ao utilizar a abertura em modal, é obrigatório informar os parametros de altura e largura.
sc_redir('app_name', , 'modal', , '800', '600');

error

Define o comportamento do redirecionamento caso haja algum erro na aplicação.

  • 'E' - Trava o redirecionamento caso haja algum erro.
  • 'F' - Força o redirecionamento mesmo com erro.

sc_redir('app_name', , ' ', 'E');

modal_height Define a altura do modal em pixel. Este parâmetro é obrigatório ao utilizar modal no parâmetro target. sc_redir('app_name', , 'modal', , '800', '600');
modal_width Define a largura do modal em pixel. Este parâmetro é obrigatório ao utilizar modal no parâmetro target sc_redir('app_name', , 'modal', , '800', '600');

 

 

Exemplos de uso


Ex. 1 - Redirecionamento simples, sem parâmetro.
// Como apenas a aplicação foi informada ela será aberta na mesma aba.
sc_redir('aplx');
Ex. 2 - Redirecionamento com passagem de parâmetro
// Estão sendo enviados quatro parâmetros para a aplicação de destino, esses valores devem ser recuperados como variáveis globais: [parm1], [parm2], [parm3], [parm4] 
if ( empty($variable) ) {
$variable = "documetation";
}

sc_redir('aplx', parm1={clienteid}; parm2="xxx"; parm3=$variable; parm4=10);
Ex. 3 - Utilizando target sem parâmetros
// Neste caso, como nenhum parâmetro está sendo enviado para a aplicação destino, deve ser deixado o espaço em branco para informar o target.
sc_redir('aplx', , '_blank');
Ex. 4 - Utilizando modal do parâmetro target
// É obrigatório definir a largura e altura ao informar modal no parâmetro target
// Apenas os valores devem ser informados.

sc_redir('aplx', , "modal", '', '800', '600');
Ex. 5 - Exemplo de uso nos eventos de transação com o banco de dados do formulário.
// A macro sc_commit_trans deve ser utilizada antes da sc_redir para confirmar a transação.
sc_commit_trans();
sc_redir('aplx', parm1={clienteid} );
Ex. 6 - Redirecionamento para URL
if ([glo_usuario] == "teste")
{
sc_redir(http://www.minha_pagina.com.br);
}