menu
Fórum Adianti
menu Menu
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 completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


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