EN
setExitAction em um TSeekButton
Boa tarde
Tenho um TSeekButton('produto_codigo') e um TEntry('produto_descrico') preenchido com a função do tSeekButton, funciona 100%.
Aconteceque que agora o usuário quer poder digitar o codigo e do produto e ao sai do campo ele preencher automaticamente a descrição,
que hoje é preenchido pela pesquisa do TseekButton.
Tentei usar o setExitAction, mas ao digitar o produto_codigo, ele preenche o produto_descricao, mas deixa o produto_codigo em branco.
Tentei forçar, pegando do $param['produto_codigo'] e recarregando ele no TForm::sendData, mas a pagina fica em loop.
Alguem ja passou por isso? Alguma Dica ou solucao?
Tenho um TSeekButton('produto_codigo') e um TEntry('produto_descrico') preenchido com a função do tSeekButton, funciona 100%.
Aconteceque que agora o usuário quer poder digitar o codigo e do produto e ao sai do campo ele preencher automaticamente a descrição,
que hoje é preenchido pela pesquisa do TseekButton.
Tentei usar o setExitAction, mas ao digitar o produto_codigo, ele preenche o produto_descricao, mas deixa o produto_codigo em branco.
Tentei forçar, pegando do $param['produto_codigo'] e recarregando ele no TForm::sendData, mas a pagina fica em loop.
Alguem ja passou por isso? Alguma Dica ou solucao?
Boa tarde,
No Tutor tem uns modelos bem legais, segue o link:
https://www.adianti.com.br/framework_files/tutor/index.php?class=FormSeekButtonV
ou poste o seu código completo, para analisar.
Depois nos diga se deu certo.
Boa noite,
Obrigado @Amandavj2202 pela atenção, o exemplo do tutor usa o "TDB"SeekButton, no meu caso nao consigo usa-lo pois utilizo vários campos para mostrar para o colaborador, e o TDBSeek so permite o id e descrição, por isso criei uma classe TSeekButton, abaixo o resumo.
Após a digitação no $Z6_PRODUTO, o setExitAction chama o onZ6PRODUTOTriggAction. O Estranho é que o $Z6_PRODUTO fica vazio, então tento preencher no onZ6PRODUTOTriggAction, mas ai ele fica em loop. Não sei porque ele apaga o conteudo de $Z6_PRODUTO, parece ser algo do TSeekButton, pois quando troco por TEntry ele nao apaga.
$this->form->addContent(['<hr>']);
$Z6_PRODUTO = new TSeekButton('Z6_PRODUTO');
$Z6_PRODUTO_SEEK = new sb1010Seek;
$action_Z6_PRODUTO = new TAction(array($Z6_PRODUTO_SEEK, 'onReload'));
$Z6_PRODUTO->setAction($action_Z6_PRODUTO);
$Z6_DESCRI = new TEntry('Z6_DESCRI');
$Z6_DESCRI->SETEDITABLE(FALSE);
$Z6_PRODUTO_TRIGG = new TAction(array($this, 'onZ6PRODUTOTriggAction'));
$Z6_PRODUTO->setExitAction($Z6_PRODUTO_TRIGG);
public static function onZ6PRODUTOTriggAction($param)
{
new TMessage('info', print_r($param,true));
$obj = new StdClass;
//$obj->Z6_PRODUTO = $param['Z6_PRODUTO'];
$obj->Z6_DESCRI = 'ABCDE';
TForm::sendData('form_sz5010', $obj);
}
A função TForm::sendData por padrão executa as ações de saída/alteração(exit/change) dos campos que as tenham definido, por isso fica em loop, pois Z6_PRODUTO tem uma exitAction.
Para alterar esse comportamento é possível informar o quarto parâmetro($fireEvents) como false: