Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Recuperar dados da datagrid 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 ...
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:

  1. <?php
  2.     function onReload($param NULL)
  3.     {
  4.         try
  5.         {
  6.             // open a transaction with database 'sqlserver'
  7.             TTransaction::open('sqlserver');
  8.             
  9.             // creates a repository for Coig
  10.             $repository = new TRepository('Coig');
  11.             $limit 30;
  12.             // creates a criteria
  13.             $criteria = new TCriteria;
  14.             // load the objects according to criteria
  15.             $objects $repository->load($criteriaFALSE);
  16.             
  17.             $this->datagrid->clear();
  18.             if ($objects)
  19.             {
  20.                 //--abre uma conexão para carrecar os eventos reais
  21.                 TTransaction::open('sqlserver');
  22.                 $repository2 = new TRepository('EventoReal');
  23.                 $eventoreal $repository2->load();
  24.                 
  25.                 $item = array();
  26.                 foreach ($eventoreal as $eventoreals){
  27.                     $item[$eventoreals->id] = $eventoreals->evento;
  28.                 }
  29.                 
  30.                 
  31.                 // iterate the collection of active records
  32.                 foreach ($objects as $object)
  33.                 {
  34.                     $eventoID $object->evento_real_id;
  35.                     $valido $object->validador;
  36.                     
  37.                     $object->validador    = new TCheckButton("validador_".$object->id);
  38.                     $object->validador->setIndexValue('1');
  39.                     if ($valido == 1){
  40.                         $object->validador->setProperty('checked'1);
  41.                     }
  42.                     $object->evento_real_id = new TCombo('evento_real_id_'.$object->id);
  43.                     $object->evento_real_id->addItems($item);
  44.                     $object->evento_real_id->setValue($eventoID);
  45.                         
  46.                     
  47.                     // add the object inside the datagrid
  48.                     $row $this->datagrid->addItem($object);
  49.                     
  50.                     
  51.                     //coloca os itens em popover
  52.                     $tabela  "<table class='popover-table'>";
  53.                     $tabela .= "<tr><td><b>Potência Ativa:</b> {$object->potencia}</td><td><b>Nível montante:</b> {$object->nivel_montante}</td></tr>";
  54.                     $tabela .= "<tr><td><b>Postado por:</b> {$object->responsavel}</td><td> {$object->agora}</td></tr>";
  55.                     if ($object->editor){
  56.                         $tabela .= "<tr><td><b>Editado por:</b> {$object->editor}</td><td> {$object->data_edicao}</td></tr>";
  57.                     }
  58.                     //coloca os itens em popover
  59.                     $row->popover 'true';
  60.                     $row->popcontent $tabela;
  61.                     $row->poptitle 'Detalhes';
  62.                     
  63.                     $row $this->form->addField($object->validador);
  64.                     $row $this->form->addField($object->evento_real_id);
  65.                 }
  66.             }
  67.             
  68.             // reset the criteria for record count
  69.             $criteria->resetProperties();
  70.             $count$repository->count($criteria);
  71.             
  72.             $this->pageNavigation->setCount($count); // count of records
  73.             $this->pageNavigation->setProperties($param); // order, page
  74.             $this->pageNavigation->setLimit($limit); // limit
  75.             
  76.             // close the transaction
  77.             TTransaction::close();
  78.             $this->loaded true;
  79.         }
  80.         catch (Exception $e// in case of exception
  81.         {
  82.             // shows the exception error message
  83.             new TMessage('error''<b>Error</b> ' $e->getMessage());
  84.             
  85.             // undo all pending operations
  86.             TTransaction::rollback();
  87.         }
  88.     }
  89.     public function onSave($param)
  90.     {
  91.         
  92.         TTransaction::open('sqlserver'); // open a transaction
  93.             
  94.         // get the form data into an active record Coig
  95.         $data $this->form->getData('Coig');
  96.         $this->form->setData($data);
  97.         
  98.         // put the data back to the form
  99.         //$this->form->setData($data);
  100.         
  101.         // creates a string with the form element's values
  102.         $message $data->evento_real_id_ $data->id .'<br>';
  103.         $message.= $data->data_coig .'<br>';
  104.         $message.= $data->validador_ $data->id .'<br>';
  105.         $message.= $data->validador_ $data->id .'<br>';
  106.         
  107.         print_r($data);
  108.         
  109.         // show the message
  110.         new TMessage('info'$message);
  111.     }
  112. ?>



Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (3)


FC

troque $data = $this->form->getData('Coig');
por $data = $this->form->getData();
BI

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?
BI

olha o código...
  1. <?php
  2.     public function __construct()
  3.     {
  4.         parent::__construct();
  5.         
  6.         // creates the form
  7.         $this->form = new TForm('form_search_ValCoig');
  8.         $this->form->class 'tform'// CSS class
  9.         
  10.         // creates a table
  11.         $table = new TTable;
  12.         $table-> width '1000px';
  13.         $this->form->add($table);
  14.         
  15.         // add a row for the form title
  16.         $row $table->addRow();
  17.         $row->class 'tformtitle'// CSS class
  18.         $row->addCell( new TLabel('Valida COIG') )->colspan 10;
  19.         
  20.         // create the form fields
  21.         $id                             = new TEntry('id');
  22.         $data_coig                      = new TDate('data_coig');
  23.         $empreendimento_id              = new TDBCombo('empreendimento_id','sqlserver','Empreendimento','id','sigla');
  24.         $aplicacao_id                   = new TCombo('aplicacao_id');
  25.         $evento_aplicacao_id            = new TCombo('evento_aplicacao_id');
  26.         $nivel_montante                 = new TEntry('nivel_montante');
  27.         $obs                            = new TEntry('obs');
  28.         $systemuser_id                  = new TDBCombo('systemuser_id','sqlserver','SystemUser','id','name');
  29.         $relevancia                     = new TDBCombo('relevancia_id','sqlserver','relevancia','id','descricao');
  30.         
  31.         // set change action for empreendimento
  32.         $change_action = new TAction(array($this'onChange'));
  33.         $empreendimento_id->setChangeAction($change_action);
  34.         
  35.         $change_action2 = new TAction(array($this'onChange2'));
  36.         $aplicacao_id->setChangeAction($change_action2);
  37.         
  38.         // define the sizes
  39.         $id->setSize(50);
  40.         $id->setMask('9999');
  41.         $data_coig->setSize(90);
  42.         $empreendimento_id->setSize(70);
  43.         $aplicacao_id->setSize(70);
  44.         $evento_aplicacao_id->setSize(350);
  45.         $nivel_montante->setSize(70);
  46.         $nivel_montante->setMask('999.99');
  47.         $obs->setSize(340);
  48.         $systemuser_id->setSize(350);
  49.         $relevancia->setSize(100);
  50.         
  51.         $row $table->addRow();
  52.         $row->addCell(new TLabel('ID:'));
  53.         $row->addCell($id);
  54.         $row->addCell(new TLabel('Data:'));
  55.         $row->addCell($data_coig);
  56.         $row->addCell(new TLabel('Usina:'));
  57.         $row->addCell($empreendimento_id);
  58.         $row->addCell(new TLabel('Aplicação:'));
  59.         $row->addCell($aplicacao_id);
  60.         $row->addCell(new TLabel('Ocorrência:'));
  61.         $row->addCell($evento_aplicacao_id);
  62.         $row $table->addRow();
  63.         $row->addCell(new TLabel('Obs:'));
  64.         $row->addCell($obs)->colspan 5;
  65.         $row->addCell(new TLabel('Montante:'));
  66.         $row->addCell($nivel_montante);
  67.         $row->addCell(new TLabel('Responsavel:'));
  68.         $row->addCell($systemuser_id);
  69.         $row $table->addRow();
  70.         $row->addCell(new TLabel('Relev:'));
  71.         $row->addCell($relevancia)->colspan 5;
  72.         
  73.         $this->form->setFields(array($id,$data_coig,$empreendimento_id,$aplicacao_id,$evento_aplicacao_id,$nivel_montante,$obs,$systemuser_id$relevancia));
  74.         // keep the form filled during navigation with session data
  75.         $this->form->setDataTSession::getValue('Coig_filter_data') );
  76.         
  77.         // create two action buttons to the form
  78.         $find_button TButton::create('find', array($this'onSearch'), _t('Find'), 'ico_find.png');
  79.         //$new_button  = TButton::create('new',  array('CoigForm', 'onEdit'), _t('New'), 'ico_new.png');
  80.         
  81.         $this->form->addField($find_button);
  82.         //$this->form->addField($new_button);
  83.         
  84.         $buttons_box = new THBox;
  85.         $buttons_box->add($find_button);
  86.         //$buttons_box->add($new_button);
  87.         
  88.         // add a row for the form action
  89.         $row $table->addRow();
  90.         $row->class 'tformaction'// CSS class
  91.         $row->addCell($buttons_box)->colspan 10;
  92.         
  93.         
  94. //------ creates a Datagrid----------------
  95.         $this->datagrid = new TDataGrid;
  96.         //$this->datagrid->makeScrollable();
  97.         $this->datagrid->disableDefaultClick(); // important!
  98.         $this->datagrid->setHeight(320);
  99.         //$this->form->add($this->datagrid);
  100.         
  101.         // creates the datagrid columns
  102.         $id   = new TDataGridColumn('id''ID''center'20);
  103.         $data_coig   = new TDataGridColumn('data_coig''Data''left'50);
  104.         $data_coig->setTransformer(array($this'formatDate'));//chama a função de transformar data
  105.         $hora   = new TDataGridColumn('hora''Hora''left'50);
  106.         $hora->setTransformer(array($this'formatHora'));//chama a função de transformar hora
  107.         $empreendimento_id   = new TDataGridColumn('empreendimentos''Usina''center'50);
  108.         $aplicacao_id   = new TDataGridColumn('aplicacaos''Aplicação''center'50);
  109.         $evento_aplicacao_id   = new TDataGridColumn('nome_evento''Ocorrência''left'350);
  110.         $obs   = new TDataGridColumn('obs''Obs''left'350);
  111.         $evento_real_id   = new TDataGridColumn('evento_real_id''Evento Real''left'100);
  112.         $validador   = new TDataGridColumn('validador''Ok''center'20);
  113.         
  114.         $id->setTransformer(array($this'formatRelevancia'));
  115.         
  116.         // add the columns to the DataGrid
  117.         $this->datagrid->addColumn($id);
  118.         $this->datagrid->addColumn($data_coig);
  119.         $this->datagrid->addColumn($hora);
  120.         $this->datagrid->addColumn($empreendimento_id);
  121.         $this->datagrid->addColumn($aplicacao_id);
  122.         $this->datagrid->addColumn($evento_aplicacao_id);
  123.         $this->datagrid->addColumn($obs);
  124.         $this->datagrid->addColumn($evento_real_id);
  125.         $this->datagrid->addColumn($validador);
  126.               
  127.         
  128.         // create the datagrid model
  129.         $this->datagrid->createModel();
  130.         
  131.         // creates the page navigation
  132.         $this->pageNavigation = new TPageNavigation;
  133.         $this->pageNavigation->setAction(new TAction(array($this'onReload')));
  134.         $this->pageNavigation->setWidth($this->datagrid->getWidth());
  135.         
  136.         
  137.                 
  138.         $table = new TTable;
  139.         $table->style 'width: 90%';
  140.         $table->addRow()->addCell(new TXMLBreadCrumb('menu.xml'__CLASS__));
  141.         $table->addRow()->addCell($this->form);
  142.         $table->addRow()->addCell($this->datagrid);
  143.         
  144.         
  145.         //----botão salvar----------
  146.         $save_button TButton::create('save', array($this'onSave'), ('Salvar'), 'ico_save.png');
  147.         $this->form->addField($save_button);
  148.         $buttons_box1 = new THBox;
  149.         $buttons_box1->add($save_button);
  150.         $row $table->addRow()->addCell($buttons_box1);
  151.         $row->class 'tformaction'// CSS class
  152.         
  153.         //navegador de paginas
  154.         $row $table->addRow()->addCell($this->pageNavigation);
  155.                
  156.         parent::add($table);
  157.     }
  158. ?>