Como atribuir um evento onexit após carregar um form via XML Estou testando o Adianti Studio e estou com algumas dificuldades. Não consigo, criar um evento para o campo vcodprod1 que é um TEntry no formulário que criei junto ao A.Studio. Segue o código para que possa me orientar, desde já agradeço. ...
AC
Como atribuir um evento onexit após carregar um form via XML  
Fechado
Estou testando o Adianti Studio e estou com algumas dificuldades.
Não consigo, criar um evento para o campo vcodprod1 que é um TEntry no formulário que criei junto ao A.Studio. Segue o código para que possa me orientar, desde já agradeço.

 
  1. <?php
  2. class gerapedido extends TPage{
  3. private $form;
  4. function __construct(){
  5. parent::__construct();
  6. $this->form = new TForm('pedido_form');
  7. try {
  8. $ui = new TUIBuilder(1100,600);
  9. $ui->setController($this);
  10. $ui->setForm($this->form);
  11. $ui->parseFile('app/forms/ColunasVigas.form.xml');
  12. $this->form->add($ui);
  13. $exit_codigo = new TAction(array($this,'onExitCodprod1'));
  14. $this->form->vcodprod1->setExitAction($exit_codigo);
  15. $this->form->setFields($ui->getFields());
  16. //definindo uma ação na saida do codigo
  17. } catch (Exception $e) {
  18. new TMessage('error',$e->getMessage());
  19. }
  20. parent::add($this->form);
  21. }
  22. public function onExitCodprod1($param){
  23. $obj = new stdClass();
  24. $obj->vproduto1 = 'Testando ação';
  25. TForm::sendData('pedido_form', $obj);
  26. }
  27. }
  28. ?>

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (2)


PD

Oi Alessandra,

Os objetos criados dentro do designer possuem um nome (atributo nome da barra de propriedades do objeto), correto?

Supondo que o nome esteja cadastrado corretamente (vcodprod1 no seu caso)...

Para acessar esses objetos, você NÃO deve fazer como está no seu código:
$this->form->vcodprod1->setExitAction($exit_codigo);

Mas sim, usar o método getWidget() para obter o objeto correspondente:
$vcodprod1 = $this->form->getWidget('vcodprod1');
$vcodprod1->setExitAction($exit_codigo);

um abraço,
Pablo
AC

Não conseguir fazer da forma indicada. Ma seguindo o exemplo fiz o seguinte:

$vcodprod1 = $ui->getWidget('vcodprod1');
$exit_codigo = new TAction(array($this,'onExitCodprod1'));
$vcodprod1->setExitAction($exit_codigo);

Ai funcionou perfeitamente.
Obrigado