BI
Recuperar dados da datagrid
Fechado
outro probleminha galera, me socorrem rsrs... criei uma datagrid com checkbutton e TCombo, ta funcionando belezinha, mas na hora de salvar os dados não consigo pegar esses dados para salvar.
coloquei um print_r e os dados não aparecem, somente as variáveis do array sem valores, notei o seguinte, os dados que estão nos campos de filtro no inicio da pagina são recuperados no getData(), porém os dados que estão nos campos do datagrid não consigo ... segue o codigo:
coloquei um print_r e os dados não aparecem, somente as variáveis do array sem valores, notei o seguinte, os dados que estão nos campos de filtro no inicio da pagina são recuperados no getData(), porém os dados que estão nos campos do datagrid não consigo ... segue o codigo:
- <?php
- function onReload($param = NULL)
- {
- try
- {
- // open a transaction with database 'sqlserver'
- TTransaction::open('sqlserver');
- // creates a repository for Coig
- $repository = new TRepository('Coig');
- $limit = 30;
- // creates a criteria
- $criteria = new TCriteria;
- // load the objects according to criteria
- $objects = $repository->load($criteria, FALSE);
- $this->datagrid->clear();
- if ($objects)
- {
- //--abre uma conexão para carrecar os eventos reais
- TTransaction::open('sqlserver');
- $repository2 = new TRepository('EventoReal');
- $eventoreal = $repository2->load();
- $item = array();
- foreach ($eventoreal as $eventoreals){
- $item[$eventoreals->id] = $eventoreals->evento;
- }
- // iterate the collection of active records
- foreach ($objects as $object)
- {
- $eventoID = $object->evento_real_id;
- $valido = $object->validador;
- $object->validador = new TCheckButton("validador_".$object->id);
- $object->validador->setIndexValue('1');
- if ($valido == 1){
- $object->validador->setProperty('checked', 1);
- }
- $object->evento_real_id = new TCombo('evento_real_id_'.$object->id);
- $object->evento_real_id->addItems($item);
- $object->evento_real_id->setValue($eventoID);
- // add the object inside the datagrid
- $row = $this->datagrid->addItem($object);
- //coloca os itens em popover
- $tabela = "<table class='popover-table'>";
- $tabela .= "<tr><td><b>Potência Ativa:</b> {$object->potencia}</td><td><b>Nível montante:</b> {$object->nivel_montante}</td></tr>";
- $tabela .= "<tr><td><b>Postado por:</b> {$object->responsavel}</td><td> {$object->agora}</td></tr>";
- if ($object->editor){
- $tabela .= "<tr><td><b>Editado por:</b> {$object->editor}</td><td> {$object->data_edicao}</td></tr>";
- }
- //coloca os itens em popover
- $row->popover = 'true';
- $row->popcontent = $tabela;
- $row->poptitle = 'Detalhes';
- $row = $this->form->addField($object->validador);
- $row = $this->form->addField($object->evento_real_id);
- }
- }
- // reset the criteria for record count
- $criteria->resetProperties();
- $count= $repository->count($criteria);
- $this->pageNavigation->setCount($count); // count of records
- $this->pageNavigation->setProperties($param); // order, page
- $this->pageNavigation->setLimit($limit); // limit
- // close the transaction
- TTransaction::close();
- $this->loaded = true;
- }
- catch (Exception $e) // in case of exception
- {
- // shows the exception error message
- new TMessage('error', '<b>Error</b> ' . $e->getMessage());
- // undo all pending operations
- TTransaction::rollback();
- }
- }
- public function onSave($param)
- {
- TTransaction::open('sqlserver'); // open a transaction
- // get the form data into an active record Coig
- $data = $this->form->getData('Coig');
- $this->form->setData($data);
- // put the data back to the form
- //$this->form->setData($data);
- // creates a string with the form element's values
- $message = $data->evento_real_id_ . $data->id .'<br>';
- $message.= $data->data_coig .'<br>';
- $message.= $data->validador_ . $data->id .'<br>';
- $message.= $data->validador_ . $data->id .'<br>';
- print_r($data);
- // show the message
- new TMessage('info', $message);
- }
- ?>
troque $data = $this->form->getData('Coig');
por $data = $this->form->getData();
descobri o problema... nessa classe controle o dataGrid não está dentro do 'form' por isso não consigo recuperar os dados da tela, só que quando coloco ele dentro do form os campos de pesquisa não aparecem na tela.
Como faço para colocar os campos de pesquisa e a dataGrid no form?
olha o código...