Lançado Adianti Framework 7.6!
Clique aqui para saber mais
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 ...
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?

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (3)


A

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.
EN

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);
}
NR

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:
  1. <?php
  2. public static function sendData($form_name$object$aggregate FALSE$fireEvents TRUE)
  3. ?>