Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Melhorar a exibição de um filtro em um formulário Bom dia a todos, estou contruindo uma tela para cadastrar clientes no sistema e os campos do filtro são muitos. Dessa forma, a área de exibição do filtro ocupa um espaço grande na tela. Gostaria de saber se vocês poderiam me sugerir algum recurso ou já resolveram algo parecido de forma satisfatória. Estou subindo a imagem para que possam entender a situação. Desde já agradeço a ...
WS
Melhorar a exibição de um filtro em um formulário  
Bom dia a todos,

estou contruindo uma tela para cadastrar clientes no sistema e os campos do filtro são muitos. Dessa forma, a área de exibição do filtro ocupa um espaço grande na tela. Gostaria de saber se vocês poderiam me sugerir algum recurso ou já resolveram algo parecido de forma satisfatória.
Estou subindo a imagem para que possam entender a situação.

Desde já agradeço a atenção de todos,

William

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


MG

Use cortina lateral
WS

Oi Marcelo, essa tela já faz uso de uma cortina lateral para outros fins. Pensei em algo fo tipo um Exapansion Button ou até um scroll. Mas não sei se existe algum recurso melhor.
Se alguem tiver mais ideias, me ajude por favor.
NR

Colocar mais de um campo por linha não é uma opção?

Além disso, veja o exemplo abaixo:
https://adianti.com.br/framework_files/tutor/index.php?class=ProductList
BA

Boa tarde!

Eu fiz uma alteração em um campo de busca, para ele procurar em vários campos e trazer o que ele encontrou, seguem os dois principais códigos que fazem a busca pra vc poder analisar e adaptar seu código.

Na criação do formulário, o campo busca, com evento de keyup pra ele procurar de forma mais dinâmica:
  1. <?php
  2. // create the form fields
  3.         $buscar = new TEntry('buscar');
  4.         $buscar->forceUpperCase();
  5.         $buscar->id "buscar";
  6.         TScript::create('
  7.         $( "#buscar" ).focus();
  8.         var tmpStr;
  9.         tmpStr = $( "#buscar" ).val();
  10.         $( "#buscar" ).val("");
  11.         $( "#buscar" ).val(tmpStr);
  12.         ');
  13.         
  14.         TScript::create('
  15.             $("input[name=\'buscar\']").keyup(function(e){
  16.                 setTimeout(function(){
  17.                     __adianti_post_data("form_list_TClientes", "class=TClientesFormList&method=onSearch2");
  18.                     e.preventDefault();
  19.                 },1000);
  20.             });                                              
  21.         ');
  22. ?>


E mais abaixo os eventos de busca e reload da lista
  1. <?php
  2.     public function onSearch2() 
  3.     {
  4.     
  5.         // get the search form data
  6.         $data $this->form->getData();
  7.         
  8.         // check if the user has filled the form
  9.         if (isset($data->buscar))
  10.         {            
  11.             $filter1 = new TFilter('nome''like'"%{$data->buscar}%");
  12.             $filter2 = new TFilter('cpf''like'"%{$data->buscar}%");
  13.             $filter3 = new TFilter('cnpj''like'"%{$data->buscar}%");
  14.             $filter4 = new TFilter('razaosocial','like'"%{$data->buscar}%");
  15.             $filter5 = new TFilter('fantasia','like'"%{$data->buscar}%");
  16.             $crit = new TCriteria();
  17.             $crit->add($filter1,TExpression::OR_OPERATOR);
  18.             $crit->add($filter2,TExpression::OR_OPERATOR);
  19.             $crit->add($filter3,TExpression::OR_OPERATOR);
  20.             $crit->add($filter4,TExpression::OR_OPERATOR);
  21.             $crit->add($filter5,TExpression::OR_OPERATOR);
  22.             
  23.             TSession::setValue('Find_filter'$crit);            
  24.                         
  25.             // fill the form with data again
  26.             $this->form->setData($data);
  27.         }
  28.         
  29.         $param = array();
  30.         $param['offset']    =0;
  31.         $param['first_page']=1;
  32.         $this->onReload2($param);
  33.         
  34.         
  35.     }    
  36.     public function onReload2($param NULL)
  37.     {
  38.     try
  39.         {
  40.             TTransaction::open('ProjectAwesome');
  41.             
  42.             $repository = new TRepository('TClientes');
  43.             $limit 10;
  44.             
  45.             $criteria = new TCriteria;
  46.             
  47.             if (empty($param['order']))
  48.             {
  49.                 $param['order'] = 'id';
  50.                 $param['direction'] = 'asc';
  51.             }
  52.             
  53.             $criteria->setProperties($param); // order, offset
  54.             $criteria->setProperty('limit'$limit);
  55.             
  56.             if (TSession::getValue('Find_filter'))
  57.             {
  58.                 // add the filter stored in the session to the criteria
  59.                 $criteria->add(TSession::getValue('Find_filter'));
  60.             }
  61.             
  62.             $objects $repository->load$criteria );
  63.                         
  64.             
  65.             $this->datagrid->clear();
  66.             
  67.             if ($objects)
  68.             {
  69.                 foreach($objects as $object)
  70.                 {
  71.                     $this->datagrid->addItem($object);
  72.                 }
  73.             }
  74.             
  75.             $criteria->resetProperties();
  76.             $count $repository->count($criteria);
  77.             
  78.             $this->pageNavigation->setCount($count); // count of records
  79.             $this->pageNavigation->setProperties($param); // order, page
  80.             $this->pageNavigation->setLimit($limit); // limit
  81.                         
  82.             TTransaction::close();
  83.             $this->loaded true;
  84.         }
  85.         catch (Exception $e)
  86.         {
  87.             new TMessage('error'$e->getMessage());
  88.             TTransaction::rollback(); // undo all pending operations    
  89.         }
  90.         
  91.         $this->loaded TRUE;
  92.     }
  93. ?>