sc_redir() no onAfterInsert

coloquei o seguinte comando no evento onAfterInsert

sc_redir(sicasp_tela_confirmacao_dados_pessoais.php);

só que ele redireciona antes de salvar no banco…

1 Curtida

Bem em aplicação formulario, no menu Aplicação/Configuração você tem URL de saída e habilitar URL após o procesamento do formulário.
Mas seu exemplo acima deveria funcionar.

Realmente fiz o teste, e após o envio, é redirecionadomas não é salvo os registros.
É mais um caso para o ´SUPER SUPORTE NETMAKE´.

pelo Suporte, é necessário executar a macro sc_commit_trans(“conexão”) antes da sc_redir, para bancos com controle de transação ativos, mesmo assiim fiz os testes e ainda não funcionou.

Mas você pode criar uma variavel de sessão e atribuir um valor a ela na onafterinsert, e na onload testar essa variavel e se contiver o valor executar a sc_redir, não esquecendo de limpar ou remover a variavel em questão.

1 Curtida

RETIFICANDO:

a macro sc_commit_trans(); antes da sc_redir, funciona perfeitamente.

2 Curtidas

Boa dica!

Funcionou perfeitamente. Segue a ajuda da macro sc_commit_trans:

[i]
sc_commit_trans (conexão)

Esta macro tem por objetivo efetivar um set de transações na base de dados.

Nas aplicações de formulário, as fórmulas PHP que cotenham qualquer macro que dependa de atualização na base de dados (sc_after_insert, sc_after_update, sc_after_delete, sc_before_insert, sc_before_update ou sc_before_delete ) estão automaticamente protejidas por controle de transação, desde que a conexão seja a mesma da aplicação.
Ou seja, o Scriptcase só efetivará a atualização da base de dados após o processamento de todas estas fórmulas.
Caso o usuário, em alguma destas fórmulas, venha a utilizar um redirecionamento de aplicação (macro “sc_redir”) deverá, antes do redir, utilizar esta macro para garantir as transações efetuadas anteriormente. [/i]
O parâmetro “conexção” é opcional, sendo necessário, apenas, se o comando for executado em uma base de dados diferente da especificada para a aplicação.

desculpe trazer este topico de volta, mas para usar o ““sc_redir””, eu tenho que colocar o php ou basta colocar o nome da aplicação ?

é isto mesmo, só que, tenho a mensagem antes

sc_alert(“Para incluir itens de orçamento você deve primeiro incluir um orçamento !!!”);
sc_redir(“InclusaoOrcamentos”);

mas não da tempo de aparecer, o que fazer ?

Realmente não vai aaparecer a mensagem.
Faça po seguinte, crie um formulário de controle, só para esse tipo de mensagem, crie o parâmetro texto_mensagem, apicacao_redir, param_1, param2…
De o sc_redir nessa aplicação passando a menagem, aplicaçao de redireckionamento, e outros parâmetros se quiser, e na onvalidate da aplicação controle vc redireciona para a aplicação que deseja.
A formatação da macro sc_redir é:

sc_redir(apl, parm1; parm2; …, target)
sc_redir (apl, parm1; parm2; …, target)

Esta macro tem por objetivo redirecionar o processamento para outra aplicação ou URL.

Caso a aplicação de redirecionamento utilize parâmetros, estes devem ser passados da seguinte forma:

  1. Após o nome da aplicação, utilizar o delimitador vírgula (,)
  2. Informar o nome do parâmetro, o sinal de igualdade (=) e o valor ou variável a ser atribuida.
  3. Havendo mais de um parâmetro, utilizar o delimitador ponto e vírgula (:wink:
  4. Poderá ser informado o target no qual a aplicação será aberta (default=_self), podendo ser: _self, _parent ou _blank.

Ex1: Aplicação sem parâmetros e sem target

if ([glo_usuario] == “teste”){

sc_redir(aplx.php);

}

Ex2: Aplicação com parâmetros e sem target

if ([glo_usuario] == “teste”){

sc_redir(aplx.php, parm1={clienteid}; parm2="xxx");

}

Ex3: Aplicação sem parâmetros e com target

if ([glo_usuario] == “teste”){

sc_redir(aplx.php, "", "_parent");

}

Ex4: Aplicação com parâmetros e com target

if ([glo_usuario] == “teste”){

sc_redir(aplx.php, parm1={clienteid}; parm2="xxx", "_blank");

}

Ex5: URL

if ([glo_usuario] == “teste”){

sc_redir(http://www.minha_pagina.com.br);

}

Muito bom resolveu meu problema, obrigado.

@InfinitusWeb olá, você poderia me dar uma ajuda,

Estou usando a macro sc_redir() com o proposito de ser redirecionado para imprimir o meu tcpdf, adicionei ele no evento onAfterInsert, depois de clicar no botão Incluir, o registo é gravado devidamente no banco de dados, porém, o pdf abre nenhuma campo preenchido.

Fiz todos os testes fora do formulário e o tcpdf funciona normalmente, incluindo até imprimir na grid um campo Imagem HTML, mas no formulário aparece sem os dados incluídos.

Como posso parametrizar isso no formulário?

Poste como está usando a macro.

Você não envia Parâmetros para a app chamada?

Não enviei, eu nunca trabalhei com relatório TCPDF no formulário, normalmente trabalho na grid, como posso configurar ou programar os Parâmetros para a app chamada no formulário?

@InfinitusWeb olá, estou com uma nova duvida em relação ao sc_redir,

É possivel usar o sc_redir na aplicação form no evento onAfterInsert, para redirecionar uma aplicação numa aba nova dentro do sistema na aplicação menu.

Por exemplo: como funciona a grid, depois de parametrizada para abrir uma outra aplicação, depois de um clique, numa nova aba, dentro do menu.

O sc_redir não possui esse recurso (Embora que isso seja um pedido antigo a NM).

Não me recordo de na grid ter essa opção nativa no SC.

Você só consegue isso via JS.

1 Curtida