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.
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.
- <?php
- class gerapedido extends TPage{
- private $form;
- function __construct(){
- parent::__construct();
- $this->form = new TForm('pedido_form');
- try {
- $ui = new TUIBuilder(1100,600);
- $ui->setController($this);
- $ui->setForm($this->form);
- $ui->parseFile('app/forms/ColunasVigas.form.xml');
- $this->form->add($ui);
- $exit_codigo = new TAction(array($this,'onExitCodprod1'));
- $this->form->vcodprod1->setExitAction($exit_codigo);
- $this->form->setFields($ui->getFields());
- //definindo uma ação na saida do codigo
- } catch (Exception $e) {
- new TMessage('error',$e->getMessage());
- }
- parent::add($this->form);
- }
- public function onExitCodprod1($param){
- $obj = new stdClass();
- $obj->vproduto1 = 'Testando ação';
- TForm::sendData('pedido_form', $obj);
- }
- }
- ?>
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
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