Tela de Busca de Registro usando setCriteria() Olá pessoal, boa noite. Criei uma nova janela de busca de registro usando Wizard, funciona perfeitamente, mas queria carregar com uma variável que está na session usando o setCriteria(), mas não está funcionando. Alguém tem alguma orientação ou sugestão de como fazer. Favor postar ajuda. Att., ...
EB
Tela de Busca de Registro usando setCriteria()  
Olá pessoal, boa noite.
Criei uma nova janela de busca de registro usando Wizard, funciona perfeitamente, mas queria carregar com uma variável que está na session usando o setCriteria(), mas não está funcionando.

Alguém tem alguma orientação ou sugestão de como fazer.
Favor postar ajuda.

Att.,

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


NR

Como você está usando o TCriteria?
EB

Fala Nataniel, você como sempre dando apoio a galera cara, muito bom isso, parabéns por sempre querer ajudar.
Segue a classe, veja se tem algo errado por favor:

 
  1. <?php
  2. /**
  3. * VwEstoqueSeek Listing
  4. * @author <your name here>
  5. */
  6. class VwEstoqueSeek extends TWindow
  7. {
  8. protected $form;
  9. protected $datagrid;
  10. protected $pageNavigation;
  11. protected $filterFields;
  12. protected $formFilters;
  13. protected $filterTransformers;
  14. protected $loaded;
  15. protected $limit;
  16. protected $operators;
  17. protected $order;
  18. protected $direction;
  19. protected $criteria;
  20. protected $transformCallback;
  21. use Adianti\base\AdiantiStandardListTrait;
  22. /**
  23. * Page constructor
  24. */
  25. public function __construct()
  26. {
  27. parent::__construct();
  28. parent::setTitle( AdiantiCoreTranslator::translate('Search record') );
  29. parent::setSize(0.7, 640);
  30. $criteria = new TCriteria();
  31. // $criteria->add(new TFilter('gaveteiro','=',TSession::getValue('armazem_id')));
  32. $criteria->add(new TFilter('gaveteiro', '=', TSession::getValue('armazem_id')));
  33. //echo $criteria->dump();
  34. $this->setDatabase('database'); // defines the database
  35. $this->setActiveRecord('VwEstoque'); // defines the active record
  36. $this->setDefaultOrder('id', 'asc'); // defines the default order
  37. //parent::setCriteria($criteria); // define a standard filter
  38. $this->addFilterField('id', 'like', 'id'); // filterField, operator, formField
  39. $this->addFilterField('gaveteiro', 'like', 'gaveteiro'); // filterField, operator, formField
  40. $this->addFilterField('NomeGaveteiro', 'like', 'NomeGaveteiro'); // filterField, operator, formField
  41. $this->addFilterField('material_nome', 'like', 'material_nome'); // filterField, operator, formField
  42. // creates the form
  43. $this->form = new TQuickForm('form_search_VwEstoque');
  44. $this->form->class = 'tform'; // change CSS class
  45. $this->form->style = 'display: table;width:100%'; // change style
  46. $this->form->setFormTitle('VwEstoque');
  47. // create the form fields
  48. $id = new TEntry('id');
  49. $gaveteiro = new TEntry('gaveteiro');
  50. $NomeGaveteiro = new TEntry('NomeGaveteiro');
  51. $material_nome = new TEntry('material_nome');
  52. $gaveteiro->setValue(TSession::getValue('armazem_id'));
  53. // add the fields
  54. $this->form->addQuickField('Id', $id, 200 );
  55. $this->form->addQuickField('Gaveteiro', $gaveteiro, 200 );
  56. $this->form->addQuickField('Nomegaveteiro', $NomeGaveteiro, 200 );
  57. $this->form->addQuickField('Material Nome', $material_nome, 200 );
  58. // keep the form filled during navigation with session data
  59. $this->form->setData( TSession::getValue('VwEstoque_filter_data') );
  60. // $this->form->setData( TSession::getValue('armazem_id') );
  61. // add the search form actions
  62. $this->form->addQuickAction(_t('Find'), new TAction(array($this, 'onSearch')), 'fa:search');
  63. // creates a DataGrid
  64. $this->datagrid = new TDataGrid;
  65. $this->datagrid->style = 'width: 100%';
  66. $this->datagrid->setHeight(320);
  67. // $this->datagrid->datatable = 'true';
  68. // $this->datagrid->enablePopover('Popover', 'Hi <b> {name} </b>');
  69. // creates the datagrid columns
  70. $column_id = new TDataGridColumn('id', 'Id', 'right');
  71. $column_gaveteiro = new TDataGridColumn('gaveteiro', 'Gaveteiro', 'right');
  72. $column_NomeGaveteiro = new TDataGridColumn('NomeGaveteiro', 'Nomegaveteiro', 'left');
  73. $column_material = new TDataGridColumn('material', 'Material', 'right');
  74. $column_material_nome = new TDataGridColumn('material_nome', 'Material Nome', 'left');
  75. $column_material_tamanho = new TDataGridColumn('tamanho', 'Tamanho', 'left');
  76. $column_peso = new TDataGridColumn('peso', 'Peso', 'left');
  77. $column_entrada = new TDataGridColumn('entrada', 'Entrada', 'left');
  78. $column_saida = new TDataGridColumn('saida', 'Devolução', 'left');
  79. $column_disponivel = new TDataGridColumn('disponivel', 'Disponivel', 'left');
  80. $column_montagem = new TDataGridColumn('montagem', 'Montado', 'left');
  81. $column_desmontagem = new TDataGridColumn('desmontagem', 'Desmontagem', 'left');
  82. $column_saldo = new TDataGridColumn('saldo', 'Saldo', 'left');
  83. $column_movimentado = new TDataGridColumn('movimentado', 'Movimentado', 'left');
  84. $column_mov_montagem = new TDataGridColumn('= {movimentado} - {desmontagem}', 'Movimento MTG', 'left');
  85. // add the columns to the DataGrid
  86. $this->datagrid->addColumn($column_id);
  87. $this->datagrid->addColumn($column_gaveteiro);
  88. $this->datagrid->addColumn($column_NomeGaveteiro);
  89. $this->datagrid->addColumn($column_material);
  90. $this->datagrid->addColumn($column_material_nome);
  91. $this->datagrid->addColumn($column_material_tamanho);
  92. $this->datagrid->addColumn($column_peso);
  93. $this->datagrid->addColumn($column_entrada);
  94. $this->datagrid->addColumn($column_saida);
  95. $this->datagrid->addColumn($column_disponivel);
  96. $this->datagrid->addColumn($column_montagem);
  97. $this->datagrid->addColumn($column_desmontagem);
  98. $this->datagrid->addColumn($column_saldo);
  99. $this->datagrid->addColumn($column_mov_montagem);
  100. $this->datagrid->addColumn($column_movimentado);
  101. // create EDIT action
  102. $action_select = new TDataGridAction(array($this, 'onSelect'));
  103. $action_select->setUseButton(TRUE);
  104. $action_select->setButtonClass('btn btn-default');
  105. $action_select->setLabel(AdiantiCoreTranslator::translate('Select'));
  106. $action_select->setImage('fa:check-circle-o green');
  107. $action_select->setField('id');
  108. $this->datagrid->addAction($action_select);
  109. // create the datagrid model
  110. $this->datagrid->createModel();
  111. // create the page navigation
  112. $this->pageNavigation = new TPageNavigation;
  113. $this->pageNavigation->setAction(new TAction(array($this, 'onReload')));
  114. $this->pageNavigation->setWidth($this->datagrid->getWidth());
  115. // vertical box container
  116. $container = new TVBox;
  117. $container->style = 'width: 90%';
  118. $container->add($this->form);
  119. $container->add($this->datagrid);
  120. $container->add($this->pageNavigation);
  121. parent::add($container);
  122. }
  123. /**
  124. * Executed when the user chooses the record
  125. */
  126. public static function onSelect($param)
  127. {
  128. try
  129. {
  130. $key = $param['key'];
  131. TTransaction::open('data_scaffolding');
  132. // load the active record
  133. $object = VwEstoque::find($key);
  134. // closes the transaction
  135. TTransaction::close();
  136. $send = new StdClass;
  137. $send->detail_material_id = $object->material;
  138. $send->detail_material_nome = $object->material_nome;
  139. $send->detail_peso_material = $object->peso;
  140. $send->detail_mat_tamanho = $object->tamanho;
  141. $send->detail_armazem_id = $object->gaveteiro;
  142. TForm::sendData('form_Movimento', $send);
  143. parent::closeWindow(); // closes the window
  144. }
  145. catch (Exception $e)
  146. {
  147. $send = new StdClass;
  148. $send->vwestoque_id = '';
  149. TForm::sendData('form_name_REPLACE_HERE', $send);
  150. // undo pending operations
  151. TTransaction::rollback();
  152. }
  153. }
  154. }
  155. ?>
</your>
NR

Bom dia Edimar, substitua o seguinte:
 
  1. <?php
  2. //parent::setCriteria($criteria);
  3. $this->setCriteria($criteria);
  4. ?>
EB

Bom dia Nataniel.
Funcionou perfeito!!

Muito obrigado meu amigo pela ajuda!
Grande abraço.

Att.,