Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Erro no TSeekButton Fui usar o TSeekButton para fazer uma busca de cep, usando o icone do search para abrir a ação de busca. Porem quando eu seto uma action, o framework sempre procura a ação onSelect e não a que estou passando como parametro. Outra problema que tive foi que quando faço a busca de cep (nesse caso utilizei onSelect como método), eu só pego os dados do formulário e jogo pro formulário os re...
WF
Erro no TSeekButton  
Fui usar o TSeekButton para fazer uma busca de cep, usando o icone do search para abrir a ação de busca. Porem quando eu seto uma action, o framework sempre procura a ação onSelect e não a que estou passando como parametro.
Outra problema que tive foi que quando faço a busca de cep (nesse caso utilizei onSelect como método), eu só pego os dados do formulário e jogo pro formulário os resultado do buscaCep, porem ele está duplicando meu form.

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (5)


NR

Poste o código onde seta a action do seek e também da classe da função onSelect
WF

Por isso eu digo e repito que faz falta um repositório do adianti no github, bem mais fácil eu corrigir e solicitar PR. Mas ok

Estou usando o TStarndardForm
no construtor eu seto

  1. <?php
  2. $this->form->addAction('Buscar CEP', new TAction([$this'onSearchCep']), 'fa:search');
  3. ?>


Depois o método
  1. <?php
  2. public function onSearchCep()
  3.     {
  4.         $dados $this->form->getData();
  5.         $zipcode = new ZipCode;
  6.         $address $zipcode->find($dados->cep)->toArray();
  7.         if (empty($address['zipCode'])) {
  8.             new TMessage('error''Nenhum dado encontrado com esse CEP. Tente novamente!');
  9.             return;
  10.         }
  11.         $dados->cidade $address['city'];
  12.         $dados->uf $address['state'];
  13.         $dados->bairro $address['neighborhood'];
  14.         $dados->rua $address['street'];
  15.         $this->form->setData($dados);
  16.     }
  17. ?>
WF

Na verdade mandei errado. Mandei a maneira que eu fiz pra não dar. Mas vou mandar a com erro.

  1. <?php
  2. $cep = new TSeekButton('cep');
  3. $cep->setAction(new TAction([$this'onSearchCep']));
  4. ?>


Fazendo isso me retorna o erro:
Método AdiantiControlTAction::__construct deve receber um parâmetro do tipo Callback
Verifique se a ação (EmpresaForm::onSelect) existe
NR

O componente TSeekButton busca as informações de 2 maneiras:
- no onblur do campo caso o usuário digite o código
- abrindo uma nova janela com a lista de itens do banco de dados, permitindo ao usuário selecionar o registro desejado, caso o usuário clique no botão de busca. Por causa da exibição dessa listagem, a ação do componente deve chamar uma classe filha de TWindow, com alguns métodos padrão.

O link abaixo tem uma breve explicação sobre isso:
https://www.adianti.com.br/forum/pt/view_870?reaproveitando-a-mesma-seek-em-form
WF

Então não poderei usar da forma que queria. Obrigado.