Chamar formulário passando parametro? Olá pessoa, estou tentando chamar um formulário através de uma ação de um botão no DataGrid, mas sempre fica retornando esse erro: Método Adianti\Control\TAction::__construct deve receber um parâmetro do tipo Callback Verifique se a ação (ArquivosList::onSelectArchive) existe erro aponta para essa linha: $action_sel = new TDataGridAction(array('ArquivosList', 'onSelectArchive'))...
IV
Chamar formulário passando parametro?  
Olá pessoa, estou tentando chamar um formulário através de uma ação de um botão no DataGrid, mas sempre fica retornando esse erro:

Método Adianti\Control\TAction::__construct deve receber um parâmetro do tipo Callback
Verifique se a ação (ArquivosList::onSelectArchive) existe

erro aponta para essa linha: $action_sel = new TDataGridAction(array('ArquivosList', 'onSelectArchive'));

 
  1. <?php
  2. $action_sel = new TDataGridAction(array('ArquivosList', 'onSelectArchive'));
  3. $action_sel->setUseButton(TRUE);
  4. $action_sel->setButtonClass('btn btn-default');
  5. $action_sel->setLabel('Arquivos');
  6. $action_sel->setImage('fa:archive blue fa-lg');
  7. $action_sel->setField('id');
  8. $action_sel->setFk('empresa_id');
  9. $this->datagrid->addAction($action_sel);
  10. ?>


É chamada esse trecho

 
  1. <?php
  2. function onSelectArchive() {
  3. // inicia transacao com o banco
  4. TTransaction::open('bd');
  5. $repository = new TRepository('Arquivos');
  6. $criteria = new TCriteria;
  7. $criteria->setProperty('order', 'nome');
  8. $criteria->setProperty('limited', '10');
  9. $cadastros = $repository->load($criteria);
  10. $this->datagrid->clear();
  11. if ($cadastros) {
  12. foreach ($cadastros as $cadastro) {
  13. $this->datagrid->addItem($cadastro);
  14. }
  15. }
  16. TTransaction::close();
  17. $this->loaded = true;
  18. }
  19. ?>


Se alguém tiver uma dica?

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


ES

O seu trecho onSelectArchive() deve estar na classe ArquivosList.

Está assim?
IV

Não Eliezer, o techo tá no EmpresaForm. Como o trecho chama a classe ArquivoList imaginei que teria que ficar dentro da classe EmpresaForm.
IV

Acrescentei o techo, mas fiquei parado novamente com esse erro!


A classe ArquivosList deve ser subclasse de TRecord

File: /app/control/ArquivosList.class.php : 224
AdiantiDatabaseTRepository->__construct(ArquivosList)
File: :
ArquivosList->onSelect(ArquivosList,onSelect,1,1)
File: /lib/adianti/control/TPage.php : 51
call_user_func(ArquivosList,onSelect,ArquivosList,onSelect,1,1)
File: /lib/adianti/control/TPage.php : 213
AdiantiControlTPage->run()
File: /app/control/ArquivosList.class.php : 392
AdiantiControlTPage->show()
File: /lib/adianti/core/AdiantiCoreApplication.php : 53
ArquivosList->show(ArquivosList,onSelect,1,1)
File: /engine.php : 20
AdiantiCoreAdiantiCoreApplication::run(1)
File: /engine.php : 39
TApplication::run(1)