Mestre / Detalhe (Dúvida)

Pessoal,

Estou com o seguinte problema:

Tenho uma aplicação DETALHE que ao terminar de digitar o último campo, ao pressionar a tecla TAB, automaticamente o registro fosse inserido, facilitando a vida do digitador que precisa sempre ficar clicando com o mouse no botão apropriado… já tentei utilizar o ENTER como TAB mas não deu certo.

Alguém sabe como fazer isso?

Abraço a todos.

no evento ajax onchange ou onblur do último campo tente o código: (acreditando que a pk da tabela seja a coluna com nome id).

if (empty({id})) {$_acao="incluir";} else {$_acao="alterar";} sc_ajax_javascript("nm_atualiza('$_acao')");

no evento onscriptinit:

if ($this->NM_ajax_flag==1) Return;

Haroldo,

Testei mas não funcionou não… é o seguinte. A aplicação é muito simples, eu digito o código de um produto, no evento ajax onchange desse código o SC verifica a descrição do produto, o preço de venda e o estoque atual e disponibiliza na grid… a seguir o digitador digita a quantidade a ser vendida… até aí tudo bem. Quando eu coloquei o seu código (if ($this->NM_ajax_flag==1) Return;) no evento onScriptIni ele deixou de disponibilizar a Descrição, o Preço e o Estoque Atual…

Vai ver é algum BUG da V6.

Vc tem ideia do que pode ser?

De qualquer forma muito obrigado pela ajuda.

Forte abraço.

Puxa, eu uso esse código aqui, na V5 funciona, vou tentar fazer uma simulação e te retorno.

Pois é companheiro,

Rapadura é doce mas não é mole não.

Não adianta nem eu mandar a aplicação pra vc ver porque ela já está na V6… vou fazer um vídeo pra lhe mostrar.

Abraço.

Segue o vídeo.

http://www.trapizonda.com.br/problema15/problema15.html

Abraço.

e somente este código no evento onchange do ultimo campo, desconsiderando o da onscriptinit:

if (empty({id})) {$_acao="incluir";} else {$_acao="alterar";} sc_ajax_javascript("nm_atualiza('$_acao')");

Isso quer que na V6 continua o mesmo problema, a oncriptinit é executada a cada evento ajax, não sendo aconselhável a colocar códigos imaginando que será executado apenas na carga da aplicação, uma única vez. E devem ter trocado o nome da regra, ou a forma de controlar quando um evento ajax é executado.

Haroldo,

Se você deseja que seja executado apenas uma vez é melhor utilizar o AplicationInit…
Vou testar o segundo script e lhe retorno.

Abraço.

Algumas macros, e metodos php não rodam no onApplicationIinit.

Haroldo,

Testei e não funcionou… ele sai da aplicação e retorna para uma que não havia sido chamada… vou documentar pra você ver.

Isso quer que na V6 continua o mesmo problema, a oncriptinit é executada a cada evento ajax, não sendo aconselhável a colocar códigos imaginando que será executado apenas na carga da aplicação, uma única vez. E devem ter trocado o nome da regra, ou a forma de controlar quando um evento ajax é executado.

Eu utilizo o velho macaco: ja passei aqui.

Inicializo uma variavel no evento onApplicationIinit e ao passar pela primeira vez no evento onScriptInit mudo o valor.

$this->NM_ajax_flag é para isso e funciona bem na V5.
Você cria uma variável em sessão então?

Haroldo,

Eu não conhecia “$this->NM_ajax_flag”, vou testar.

Obrigado