Problemas com o setField Boa noite, pessoal. Ainda tentando resolver o esquema de botões dinâmicos no form. Utilizando o seguinte código já consigo montar a tela: ...
CS
Problemas com o setField  
Boa noite, pessoal. Ainda tentando resolver o esquema de botões dinâmicos no form.
Utilizando o seguinte código já consigo montar a tela:
 
  1. <?php
  2. $table_mesa = new TTable;
  3. $table_mesa-> style = 'text-align:center;width:50%;';
  4. $frame_mesa = new TFrame;
  5. $frame_mesa->setLegend('Mesas');
  6. $frame_mesa->style= 'background:whiteSmoke;width:95%;';
  7. $frame_mesa->add($table_mesa);
  8. $numCols = 5; // Número de Colunas
  9. $i=0;
  10. foreach($mesas_obj as $mesa)
  11. {
  12. ($i%$numCols==0) ?$row = $table_mesa->addRow() : null;
  13. if ($mesa->situacao == 'A')
  14. {
  15. $button = new TButton("{$mesa->id}");
  16. $button->style = 'box-shadow: 0 0 0 1px #8A8A8A;border-radius: 2px;width:57px;height:35px;color: #ff0000;';
  17. $button->setLabel("{$mesa->id}");
  18. $button->setImage('uso1.png');
  19. $row->addCell($button);
  20. } else {
  21. $button = new TButton("{$mesa->id}");
  22. $button->style = 'box-shadow: 0 0 0 1px #8A8A8A;border-radius: 2px;width:57px;height:35px;color: #008000;';
  23. $button->setLabel("{$mesa->id}");
  24. $button->setImage('livre1.png');
  25. $row->addCell($button);
  26. }
  27. ($i%$numCols==$numCols-1) ? $table_mesa->addRow() : null;
  28. $i++;
  29. }
  30. parent::add($frame_mesa);
  31. ?>

Só que cada button vai ter uma action (edit ou new). Se tento setar a action:
$button->setAction(new TAction(array('OprComanda', 'onEdit')));
retorna: Você deve passar o AdiantiWidgetFormTButton (^2) como parâmetro para TForm::setFields();
Como faço para atribuir o button ao form conforme vou gerando os mesmos?
Segue imagem da tela.


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 (1)


NR

Carlos, adicione cada botão criado através da função addField:
 
  1. <?php
  2. $this->form = new TForm('nome_form');
  3. $this->form->add($frame_mesa);
  4. ...
  5. foreach....
  6. $this->form->addField($button);
  7. ...
  8. parent::add($this->form);
  9. ?>