Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Abrir FormList com registros filtrados Pessoal, Tenho um FormList onde quero abrir o formulário com os registros da List já filtrados pela coluna idperiodo. O valor a ser filtrado está na session. Faço isso na mão com o TCriteria? Ou tem algum método que eu possa usar no construtor? Vi que tem um parent::setFilterField(), mas não sei passar valor pra ele. PS. Gerei o formulário pelo modelo "Padrão" do Studio. Desde...
VB
Abrir FormList com registros filtrados  
Fechado
Pessoal,

Tenho um FormList onde quero abrir o formulário com os registros da List já filtrados pela coluna idperiodo. O valor a ser filtrado está na session.

Faço isso na mão com o TCriteria? Ou tem algum método que eu possa usar no construtor? Vi que tem um parent::setFilterField(), mas não sei passar valor pra ele.

PS. Gerei o formulário pelo modelo "Padrão" do Studio.

Desde já agradeço.



  1. <?php
  2. /**
  3.  * TurmaFormList Registration
  4.  * @author  Vanilson Araujo
  5.  */
  6. class TurmaFormList extends TStandardFormList
  7. {
  8.     protected $form// form
  9.     protected $datagrid// datagrid
  10.     protected $pageNavigation;
  11.     
  12.     /**
  13.      * Class constructor
  14.      * Creates the page and the registration form
  15.      */
  16.     function __construct()
  17.     {
  18.         parent::__construct();
  19.         
  20.         parent::setDatabase('dbcollegio');            // defines the database
  21.         parent::setActiveRecord('Turma');   // defines the active record
  22.         parent::setDefaultOrder('idserie,descricao''asc');         // defines the default order
  23.         
  24.         // creates the form
  25.         $this->form = new TQuickForm('form_Turma');
  26.         $this->form->class 'tform'// CSS class
  27.         $this->form->setFormTitle('Turma'); // define the form title
  28.         
  29.         // create the form fields
  30.         1222turma                        = new TEntry('idturma');
  31.         1222serie                        = new TDBCombo('idserie','dbcollegio','Serie','idserie','descricao_cursoserie','descricao');
  32.         $descricao                      = new TEntry('descricao');
  33.         $capacidade                     = new TEntry('capacidade');
  34.         $turno                          = new TCombo('turno');
  35.         1222periodo                      = new THidden('idperiodo');
  36.         //1222periodo                      = new TDBCombo('idperiodo','dbcollegio','Periodo','idperiodo','descricao');
  37.         $sala                           = new TEntry('sala');
  38.         $localizacao                    = new TEntry('localizacao');
  39.         
  40.         // custom
  41.         1222turma->setEditable(FALSE);
  42.         $turno->addItems(array( 'Manhã'=>'Manhã','Tarde'=>'Tarde','Noite'=>'Noite'));
  43.         //1222periodo =  $combo_periodo->idperiodo;
  44.         1222periodo->setValue(TSession::getValue('var_idperiodo'));
  45.         
  46.         // add the fields
  47.         $this->form->addQuickField('Id'1222turma,  50);
  48.         $this->form->addQuickField('Série'1222serie,  400);
  49.         $this->form->addQuickField('Turma'$descricao,  100);
  50.         $this->form->addQuickField('Turno'$turno,  100);
  51.         $this->form->addQuickField('Período'1222periodo,  200);
  52.         $this->form->addQuickField('Sala'$sala,  50);
  53.         $this->form->addQuickField('Localização'$localizacao,  100);
  54.         $this->form->addQuickField('Capacidade Sala'$capacidade,  50);
  55.         // create the form actions
  56.         $this->form->addQuickAction(_t('Save'), new TAction(array($this'onSave')), 'ico_save.png');
  57.         $this->form->addQuickAction(_t('New'),  new TAction(array($this'onEdit')), 'ico_new.png');
  58.         
  59.         // creates a DataGrid
  60.         $this->datagrid = new TQuickGrid;
  61.         $this->datagrid->setHeight(320);
  62.         
  63.         // creates the datagrid columns
  64.         1222turma $this->datagrid->addQuickColumn('Id''idturma''left'100);
  65.         1222serie $this->datagrid->addQuickColumn('Série''serie->descricao''left'100);
  66.         $descricao $this->datagrid->addQuickColumn('Turma''descricao''left'200);
  67.         //$capacidade = $this->datagrid->addQuickColumn('capacidade', 'capacidade', 'left', 100);
  68.         $turno $this->datagrid->addQuickColumn('turno''turno''left'200);
  69.         1222periodo $this->datagrid->addQuickColumn('idperiodo''periodo->descricao''left'100);
  70.         $sala $this->datagrid->addQuickColumn('sala''sala''left'200);
  71.         $localizacao $this->datagrid->addQuickColumn('localizacao''localizacao''left'200);
  72.         
  73.         // create the datagrid actions
  74.         $edit_action   = new TDataGridAction(array($this'onEdit'));
  75.         $delete_action = new TDataGridAction(array($this'onDelete'));
  76.         
  77.         // add the actions to the datagrid
  78.         $this->datagrid->addQuickAction(_t('Edit'), $edit_action'idturma''ico_edit.png');
  79.         $this->datagrid->addQuickAction(_t('Delete'), $delete_action'idturma''ico_delete.png');
  80.         
  81.         // create the datagrid model
  82.         $this->datagrid->createModel();
  83.         
  84.         // creates the page navigation
  85.         $this->pageNavigation = new TPageNavigation;
  86.         $this->pageNavigation->setAction(new TAction(array($this'onReload')));
  87.         $this->pageNavigation->setWidth($this->datagrid->getWidth());
  88.         
  89.         // create the page container
  90.         $container TVBox::pack$this->form$this->datagrid$this->pageNavigation);
  91.         parent::add($container);
  92.     }
  93. }

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


PD

Vanilson,

A FormList não tem um método setCriteria() da mesma maneira que a TStandardList tem.
Na TStandardList, você pode chamar parent::setCriteria() para definir um filtro na datagrid.
Anotei aqui para implementar isso.

Att,
Pablo
PD

Você terá de sobrecarregar o método onReload() por enquanto...

Att,
Pablo
VB

OK Pablo, obrigado.