Lançado Adianti Framework 7.6!
Clique aqui para saber mais
ChckButton com Datagrid Ola. Estou tentando implementar um Datagrid com Checkbutton, mais estou com um problema. As funcionalidades que preciso são: 1) Quando o usuário clicar em uma linha da grade superior (cabecalho da solicitação de compra) os itens da solicitação apareçam na grade inferior . Para tanto criei uma ação na grade para realizar isso (conforme figura). Isso está funcionando. 2) Ao cli...
AN
ChckButton com Datagrid  
Ola.

Estou tentando implementar um Datagrid com Checkbutton, mais estou com um problema.

As funcionalidades que preciso são:

1) Quando o usuário clicar em uma linha da grade superior (cabecalho da solicitação de compra) os itens da solicitação apareçam na grade inferior . Para tanto criei uma ação na grade para realizar isso (conforme figura). Isso está funcionando.

2) Ao clicar no check ele marque e desmarque e isso não está funcionando pois a ação sobrepoe ao marcar e desmarcar. Segue codigo do OnReload da grade.

Alguma sugestão?

Obrigado

  1. <?php
  2.     function OnReload($param NULL)
  3.     {
  4.        
  5.        if (trim(TSession::getValue('dt')) <> '')
  6.        {
  7.           try
  8.           {
  9.               // open a transaction with database 'erpweb'
  10.               TTransaction::open('erpweb');
  11.               // creates a repository for view gera cotacao
  12.               $repository = new TRepository('viewgeracotacao');
  13.               $limit 5;
  14.               //$param['order'] = 'cod_solicitacao';
  15.               // creates a criteria
  16.               $ldatai TDataBD::conversao(TSession::getValue('ddi'));
  17.               $ldataf TDataBD::conversao(TSession::getValue('ddf'));               
  18.               $criteria = new TCriteria;
  19.               $criteria->add(new TFilter('empresa','=',TSession::getValue('gempresa'))); 
  20.               $criteria->add(new TFilter('filial','=',TSession::getValue('gfilial'))); 
  21.               $criteria->add(new TFilter('emissao','>='$ldatai));
  22.               $criteria->add(new TFilter('emissao','<='$ldataf));
  23.               if ( TSession::getValue('dt') == 1)
  24.               {
  25.                  $criteria->add(new TFilter('cotacao','='0));
  26.               } else
  27.               {
  28.                  $criteria->add(new TFilter('cotacao','<>'0));
  29.               }
  30.               $criteria->setProperties($param); // order, offset
  31.               $criteria->setProperty('limit'$limit);
  32.               // carrrega dados
  33.               $tabela $repository->load($criteriaFALSE);
  34.               
  35.               $this->datagrid->clear();
  36.  
  37.               // cria acao para botao check
  38.               //$action =new TAction(array($this,'OnMarca'));
  39.               //$string_action = $action->serialize(FALSE);
  40.               
  41.               $i 1;
  42.               if ($tabela)
  43.               {
  44.                   // iterate the collection of active records
  45.                   foreach ($tabela as $row)
  46.                   {
  47.                       $item = new StdClass;
  48.                       $item->check = new TCheckButton('check_' $i); 
  49.                       $item->check->setIndexValue($row->cod_solicitacao);
  50.                       //$item->check->setProperty('onChange',"__adianti_post_lookup('{$this->form->getName()}', '{$string_action}', this)"); 
  51.               
  52.                       // passa data para formato brasileiro
  53.                       $item->emissao TDataBR::conversao($row->emissao);
  54.                       $item->colaborador $row->colaborador;
  55.                       $item->cod_solicitacao $row->cod_solicitacao;
  56.                       $item->cotacao $row->cotacao;
  57.                       
  58.                       // add the object inside the datagrid
  59.                       $this->datagrid->addItem($item);
  60.                       //$this->form->setFields($this->formfields); 
  61.                       if (!$this->loaded)
  62.                       {
  63.                          $this->form->addField($item->check);
  64.                       }   
  65.                       $i++;                    
  66.                   }
  67.               } 
  68.                         
  69.               // reset the criteria for record count
  70.               $criteria->resetProperties();
  71.               $count$repository->count($criteria);
  72.             
  73.               $this->pageNavigation->setCount($count); // count of records
  74.               $this->pageNavigation->setProperties($param); // order, page
  75.               $this->pageNavigation->setLimit($limit); // limit
  76.             
  77.               // close the transaction
  78.               TTransaction::close();
  79.               $this->loaded true;
  80.               TSession::setValue('atualiza_grade',0);
  81.               $send = new StdClass;
  82.               $send->data_inicial TSession::getValue('ddi');
  83.               $send->data_final TSession::getValue('ddf');
  84.               $send->dias TSession::getValue('dd');
  85.               $send->tipo TSession::getValue('dt');           
  86.               TForm::sendData('form_geracotacao'$send);           
  87.           }
  88.           catch (Exception $e// in case of exception
  89.           {
  90.               // shows the exception error message
  91.               new TMessage('error''<b>Error</b> ' $e->getMessage());
  92.               // undo all pending operations
  93.               TTransaction::rollback();
  94.           }
  95.        } 
  96.     }
  97. />
  98.  

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


AN

Descobri aqui,

Bastou desabilitar o click padrão da grade através do comando disableDefaultClick().