Re:SC_REDIR [Resolvido]

Comecei a utilizar a funcao sc_redir.

Porem me deparei com a seguinte situacao:
Tenho uma aplicacao Blank que tem um campo que me da opcao do relatorio (TpRelatorio) e dependendo da opcao eu utilizo um campo adicional que é idcliente no evento on validate eu faço assim:
$tipo = {TpReport};
$id = {idcliente};
switch ($tipo) {
case 1:
$rel = ‘pedido’;
sc_redir($rel,PARAM1=$id,_blank);
break;
case 2:
$rel = “pedido2”;
sc_redir($rel,"",_blank);
break;
case 3:
$rel = “pedido3”;
$param = “ID=”.$id;
sc_redir($rel,"",_blank);
break;
}
FUNCIONA, PASSA OS PARAMETROS.

Porem se eu fizer, como abaixo até carrega o relatorio porem o parametro nao é passado,
alguem sabe o porque, e como contarnar isto ?

$tipo = {TpReport};
$id = {idcliente};
switch ($tipo) {
case 1:
$rel = ‘pedido’;
$param = ‘PARAM1=’.$id;
break;
case 2:
$rel = “pedido2”;
$param = “ID=”.$id;
break;
case 3:
$rel = “pedido3”;
$param = “ID=”.$id;
break;
}
sc_redir($rel,$param,_blank);

Faz ASSIM

$tipo_x = {TpReport};
$id_x = {idcliente};
switch ($tipo_x) {
case 1:
$rel_x = ‘pedido’;
$param_x = $id_x;
break;
case 2:
$rel_x = “pedido2”;
$param_x = $id_x;
break;
case 3:
$rel_x = “pedido3”;
$param_x = $id_x;
break;
}
sc_redir($rel_x, parm1=$param_x, “_blank”);

Oi Jailton,

Primeiramente, Obrigado por responder .
Porem a sua sugestao é exatamente o que estou fazendo.

O que gostaria é passar os parametros (TODOS) em forma de texto para a rotina poder se tornar mais dinamica, vc sabe porque a URL aceita e os parametros nao ?

Att. Marcio

Você pode passar vários parâmetros de uma vez:
parm1={clienteid}; parm2=“xxx”, colocando ‘;’ entre eles.

Agora de mudar a variável do parâmetro dinamicamente: se em um era parm1, no outro vc quer que ela seja parm2, não, só o conteúdo,
que vai dentro dela.

Isso é porque quando o SC compila a passagem é como se fosse no PHP um: GET and POST
http://php.net/manual/pt_BR/language.variables.external.php

E ai você vai perguntar por que coloquei _x no final das variáveis isso é outra coisa que tem que se observar na hora que tiver
fazendo seus códigos no SC:

Um exemplo um formulário que você criou o campo ‘Nome’:
Dentro do Código:
{Nome} = Variável local do SC.
Nunca use uma variável local como:
$nome ou pública como [nome] porque ele vai achar o que é a mesma coisa e var dar erro no código.

Use $Nome_x para local ou $_Nome e na global [glo_Nome];

Mais uma vez obrigado Jailton.

Agora compreendi melhor a funcao.