WF
Apresentar o texto ao invés do id em uma grid
Boa noite...
Estou com uma tela de consulta que preciso que a grid apresente a informação de texto.
Hoje na grid aparece a id da tabela, segue tela para melhor entendimento e código do formulário.
Obrigado.
Estou com uma tela de consulta que preciso que a grid apresente a informação de texto.
Hoje na grid aparece a id da tabela, segue tela para melhor entendimento e código do formulário.
Obrigado.
- <?php
- /**
- * consultadeclientes Listing
- * @author <your name here>
- */
- class consultadeclientes extends TStandardList
- {
- protected $form; // registration form
- protected $datagrid; // listing
- protected $pageNavigation;
- protected $formgrid;
- protected $deleteButton;
- protected $transformCallback;
- /**
- * Page constructor
- */
- public function __construct()
- {
- parent::__construct();
- parent::setDatabase('bancohip'); // defines the database
- parent::setActiveRecord('pessoa'); // defines the active record
- parent::setDefaultOrder('id', 'asc'); // defines the default order
- // parent::setCriteria($criteria) // define a standard filter
- parent::addFilterField('id', 'like', 'id'); // filterField, operator, formField
- parent::addFilterField('status_id', 'like', 'status_id'); // filterField, operator, formField
- parent::addFilterField('tipodecadastro_id', '=', 'tipodecadastro_id'); // filterField, operator, formField
- parent::addFilterField('nome', 'like', 'nome'); // filterField, operator, formField
- parent::addFilterField('telefone', 'like', 'telefone'); // filterField, operator, formField
- parent::addFilterField('celular', 'like', 'celular'); // filterField, operator, formField
- parent::addFilterField('corretor_id', 'like', 'corretor_id'); // filterField, operator, formField
- // creates the form
- $this->form = new TQuickForm('form_search_pessoa');
- $this->form->class = 'tform'; // change CSS class
- $this->form->style = 'display: table;width:100%'; // change style
- $this->form->setFormTitle('Consulta de clientes');
- // create the form fields
- $id = new TEntry('id');
- $status_id = new TEntry('status_id');
- $tipodecadastro_id = new TEntry('tipodecadastro_id');
- $nome = new TEntry('nome');
- $telefone = new TEntry('telefone');
- $celular = new TEntry('celular');
- $corretor_id = new TDBCombo('corretor_id','bancohip','corretor','id','nome');//TEntry('corretor_id');
- // add the fields
- $this->form->addQuickField('Código', $id, 200 );
- $this->form->addQuickField('Status', $status_id, 200 );
- $this->form->addQuickField('Tipo de cadastro', $tipodecadastro_id, 200 );
- $this->form->addQuickField('Nome', $nome, 200 );
- $this->form->addQuickField('Telefone', $telefone, 200 );
- $this->form->addQuickField('Celular', $celular, 200 );
- $this->form->addQuickField('Corretor', $corretor_id, 200 );
- // keep the form filled during navigation with session data
- $this->form->setData( TSession::getValue('pessoa_filter_data') );
- // add the search form actions
- $this->form->addQuickAction(_t('Find'), new TAction(array($this, 'onSearch')), 'fa:search');
- $this->form->addQuickAction(_t('New'), new TAction(array('cadastrodeclientes', 'onEdit')), 'bs:plus-sign green');
- // creates a DataGrid
- $this->datagrid = new TDataGrid;
- $this->datagrid->style = 'width: 100%';
- $this->datagrid->datatable = 'true';
- // $this->datagrid->enablePopover('Popover', 'Hi <b> {name} </b>');
- // creates the datagrid columns
- $column_id = new TDataGridColumn('id', 'Código', 'right');
- $column_status_id = new TDataGridColumn('status_id', 'Status', 'right');
- $column_tipodecadastro_id = new TDataGridColumn('tipodecadastro_id', 'Tipo de cadastro', 'right');
- $column_corretor_id = new TDataGridColumn('corretor_id', 'Corretor', 'right');
- $column_nome = new TDataGridColumn('nome', 'Nome', 'left');
- $column_profissao = new TDataGridColumn('profissao', 'Profissao', 'left');
- $column_telefone = new TDataGridColumn('telefone', 'Telefone', 'left');
- $column_celular = new TDataGridColumn('celular', 'Celular', 'left');
- // add the columns to the DataGrid
- $this->datagrid->addColumn($column_id);
- $this->datagrid->addColumn($column_status_id);
- $this->datagrid->addColumn($column_tipodecadastro_id);
- $this->datagrid->addColumn($column_corretor_id);
- $this->datagrid->addColumn($column_nome);
- $this->datagrid->addColumn($column_profissao);
- $this->datagrid->addColumn($column_telefone);
- $this->datagrid->addColumn($column_celular);
- // create EDIT action
- $action_edit = new TDataGridAction(array('cadastrodeclientes', 'onEdit'));
- $action_edit->setUseButton(TRUE);
- $action_edit->setButtonClass('btn btn-default');
- $action_edit->setLabel(_t('Edit'));
- $action_edit->setImage('fa:pencil-square-o blue fa-lg');
- $action_edit->setField('id');
- $this->datagrid->addAction($action_edit);
- // create DELETE action
- $action_del = new TDataGridAction(array($this, 'onDelete'));
- $action_del->setUseButton(TRUE);
- $action_del->setButtonClass('btn btn-default');
- $action_del->setLabel(_t('Delete'));
- $action_del->setImage('fa:trash-o red fa-lg');
- $action_del->setField('id');
- $this->datagrid->addAction($action_del);
- // create the datagrid model
- $this->datagrid->createModel();
- // create the page navigation
- $this->pageNavigation = new TPageNavigation;
- $this->pageNavigation->setAction(new TAction(array($this, 'onReload')));
- $this->pageNavigation->setWidth($this->datagrid->getWidth());
- // vertical box container
- $container = new TVBox;
- $container->style = 'width: 90%';
- $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
- $container->add($this->form);
- $container->add($this->datagrid);
- $container->add($this->pageNavigation);
- parent::add($container);
- }
- }
Basicamente você precisa criar uma associação no model e depois chamá-la na grid.
Dá uma olhada no artigo do Pablo, vai esclarecer essa questão:
www.adianti.com.br/forum/pt/view_876?pensando-em-objetos-nao-em-sql-