Boa tarde fernando, a macro sc_exit() deve resolver seu problema, ela é utilizada sobretudo para os botões com codigos php.
Quando esta macro é utilizada em fórmulas PHP, que rodem quando chamadas através de botão na barra de ferramentas, tem por objetivo definir o retorno da aplicação após a execução do conteúdo da fórmula. Por default, após a execução da fórmula, aparecerá uma tela com as mensagens ou dados retornados pela fórmula e um botão de OK que, quando acionado, retorna o controle para a aplicação.
A utilização desta macro, nesta modalidade, provê as seguintes alternativas:
Opção:
sc_exit() - Não exibe a tela com o botão OK e retorna para a aplicação anterior.
sc_exit(ok) - Exibe a tela com o botão OK e retorna para a aplicação anterior.
sc_exit(sel) - Não exibe a tela com o botão OK e retorna para a aplicação corrente, refazendo o select da aplicação .
sc_exit(ref) - Não exibe a tela com o botão OK e retorna para a aplicação corrente, fazendo apenas a recarga (refresh) dos dados (esta opção permite que a fórmula PHP altere os dados de um formulário).
sc_exit(ok,ref) - Mesmo que a função sc_exit(ref); porém, exibe a tela com o botão OK
sc_exit(ok,sel) - Mesmo que a função sc_exit(sel); porém, exibe a tela com o botão OK
Quando esta macro é utilizada em fórmulas PHP, que rodem nos demais contextos, tem por objetivo retornar para a aplicação anterior. Neste caso , o usuário tem a opção de efetivar, ou não, transações pendentes na base de dados.
Esta opção só é válida para aplicações de Formulário e aplicações de Controle.
Opção:
sc_exit() - Não afeta transações na base de dados.
sc_exit© - Realiza commit das transações pendentes.
sc_exit® - Realiza Rollback das transações pendentes.
Abraços
Adelcio Rodrigues