[RESOLVIDO] sc_exit(sel) não recarrega dados

Olá Pessoal.

Tenho um formulário onde há um botão que dependendo da situação em que o usuário clicar nesse botão eu faço inserção de dados na tabela base do formulário, gerando novos registros e ao final do processo desse botão eu estou executando a macro “sc_exit(sel)” que segundo o manual deve retornar para a própria aplicação refazendo o select principal, mas isso não está acontecendo, a aplicação é recarregada porém ainda somente com os dados que haviam inicialmente, mas se eu sair da aplicação e entrar novamente, então os novos dados são carregados, já tentei também com a macro “sc_redir(‘meu_form’)”, mas acontece o mesmo efeito, recarrega a aplicação com os mesmos dados só aparecendo corretamente se eu sair da aplicação e entrar novamente. Lembrando que antes do “sc_exit(sel)” eu estou executando a macro “sc_commit_trans()”.

Alguém tem alguma dica de como resolver esse entrave?

Obrigado… Grande abraço.

Olá,

Após a inserção use sc_commit_trans(), antes do sc_exit(sel).

Olá Kleyber.

Como eu até mesmo comentei no texto original, eu já estou usando o SC_COMMIT_TRANS() antes do SC_EXIT(SEL), tanto que os dados estão sendo gravados na tabela, porém ao executar o SC_EXIT(SEL) as novas linhas ainda assim não aparecem, elas só aparecem se eu fechar e abrir novamente a aplicação.

Veja o escopo dessa macro no manual. Ela não funciona nessa condição.

Certo Roberto, pode até ser isso mesmo, a macro SC_EXIT(SEL) não funcionar em um botão, então nesse caso alguém teria uma sugestão de como resolver esse entrave, pois acabei de inserir novos registros na tabela base da aplicação e preciso que esses registros sejam reconhecidos na execução corrente da minha aplicação (sessão corrente).

Alguém tem alguma sugestão?

Complementando o meu último post sobre o assunto:

Eu tenho situações em minha aplicação em outros botões que eu uso a macro SC_EXIT(REF), apenas para recarregar a aplicação e está funcionando corretamente, lembrando que nessa situação eu não necessito que o select principal seja reexecutado, porém no caso do botão que insere novos registros na tabela base da aplicação, aí sim eu preciso que os novos registros sejam considerados, sendo assim não está me parecendo que seja um problema de escopo da macro, pois em um botão ela funciona quando uso o parâmetro “REF”, mas quando uso o parâmetro “SEL” que deveria refazer o select principal, isso não acontece.

Obrigado… Continuo aguardando alguma dica para solução do problema.

Algum Expert pode me ajudar com esse problema?

Formulário único registro ou múltiplos?

Olá Roberto.

É um mestre detalhe onde no detalhe eu tenho múltiplos registros, na verdade é um pedido de vendas onde eu tenho uma operação que gera nova versão do pedido, então eu gero uma nova linha no mestre e varias novas linhas no detalhe, aí eu necessito que o formulário como um todo seja recarregado considerando a nova versão do pedido e isso ainda não está acontecendo de forma automática, eu estou tenho que sair da aplicação e entrar novamente após executar a minha operação de nova versão do pedido, aí então recarrega normal, mas pela macro não vai. Já tentei tanto pela sc_exit(sel) como também pela sc_redir chamando a própria aplicação, em ambos os casos acontece o recarga da aplicação, mas sem considerar os novos registros.

de um sc_redir no formulario mestre passando o id gerado.

Haroldo, vejo que aprendi legal com você. Era exatamente o que eu havia pensado. sc_redir.

Olá Haroldo e Roberto.

Eu creio que o SC_REDIR passando o ID gerado deva realmente resolver, pois estará forçando a leitura do novo registro, porém eu necessito que não apenas o novo registro seja considerado nessa leitura, eu preciso que os registros que já existiam antes também sejam considerados nessa nova carga da aplicação, pois o usuário pode querer ainda navegar entre os pedidos existentes para novas operações. Na verdade eu preciso que aconteça algo como a SC_EXIT(SEL) promete que é fazer a carga da aplicação refazendo o select principal, não é isso que está escrito? É exatamente isso que eu preciso, eu não posso nesse momento desprezar outros registros da tabela.

Ou eu entendi errado a dica de vocês?

Obrigado…

Alguém por favor, me dê alguma luz nessa questão, mesmo que tenha que codificar algo, sei lá… Algo que resolva esse meu entrave, pois a solução proposta até o momento não resolve o meu problema e ao que me parece, reclamar com a NetMake como sendo um BUG da macro sc_exit(sel) ou mesmo da sc_redir não adianta muito, pois raramente respondem, então me resta pedir socorro aqui mesmo.

Obrigado… Continuo do aguardo.

vc tentou o sugerido?

sc_redir(aplicação,id=$_valor_do_id);
onde id é a coluna da tabela principal da aplicação e $_valor_do_id é LAST_INSERT_ID() da tabela.

o sc_exit(sel) faz a carga do select corrente, e não é o caso, pois vc criou um novo registro.

Olá Haroldo.

Desculpe a demora em retornar, mas eu tive que me dedicar a outras atividades e não havia retomado essa questão ainda, mas fiz o que você sugeriu e realmente funcionou, muito obrigado mais uma vez.

Grande abraço.