Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Manter o filtro após clicar no pesquisar ou paginação Ivan, como faço para recuperar os mesmos valores digitados no filtro ... na próxima paginação ?! Vou te mostrar a imagem ... e após o clique no botão PESQUISAR, minha consulta é retornada corretamente, mas as datas que havia digitado ...eles somem !!! queria que elas permanecessem lá no edit ... para a proxima paginação ser atualizada com o mesmo filtro. Grato...
IM
Manter o filtro após clicar no pesquisar ou paginação  
Ivan, como faço para recuperar os mesmos valores digitados no filtro ... na próxima paginação ?!
Vou te mostrar a imagem ... e após o clique no botão PESQUISAR, minha consulta é retornada corretamente, mas as datas que havia digitado ...eles somem !!! queria que elas permanecessem lá no edit ... para a proxima paginação ser atualizada com o mesmo filtro.
Grato

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


IF

Oi Ico, acho que tem que fazer isso
  1. <?php 
  2.     $data $this->form->getData(); //Captura os dados do form
  3.     ...
  4.     $this->form->setData($data); //Recarrega os dados no form
  5. ?>
IM

Boa tarde, Ivan.
Será que é possivel a gente conversar em particular ... via skype, talvez! ?
icomenezes@hotmail.com
IM

Ivan ... passei o dia inteiro criando sessão pra resolver isso ...
e vc com uma simples linha resolveu
showwwww
deu certo, parceiro@!
IF

Show Ico!! Que bom que conseguiu resolver! Abraço
IM

Ivan, e neste caso ... eu estou atribuindo uma função ao clicar no navigator que faz esse rotina
só que veja que to passando uma data manual ...
como faço para chamar a data que está no edit da tela ...
pq a linha $this->form->setData($data) não tá preenchendo não ..

  1. <?php
  2.     function onNavigator($param)        
  3.     {
  4.         $filter = new stdClass();
  5.         $filter->dt1 '01/06/2018';
  6.         $filter->dt2 '01/08/2018';
  7.         var_dump($filter);
  8.         $this->pageNavigation->setProperties($param); // parametros de pagina, limit, order
  9.         $this->onReload($param,$filter);
  10.         $this->form->setData($filter);
  11.     }
  12. ?>


IM

perdoa, o getData não preenche!
IF

Poste o seu código pra eu ver como vc está fazendo o envio do form
IM

Ivan, segue o cod completo!
Eu quero usar a paginação ... assim ... eu recebo um json
faço um array de 10 em 10 registros ...
e pego um index (conforme a pag que estou na navigator)
aí quando tem um filtro ... quero usar o filtro e o param de paginas
  1. <?php
  2. class ContainerTableParcelasJson extends TPage
  3. {
  4.     private $datagrid;
  5.     private $pageNavigation;
  6.     
  7.     
  8.     public function __construct()
  9.     {
  10.         parent::__construct();
  11.         
  12.        
  13.         // creates one datagrid
  14.         
  15.         $this->datagrid = new BootstrapDatagridWrapper(new TQuickGrid);
  16.         
  17.         
  18.         // creates the form
  19.         $this->form = new TQuickForm('form_search_parcelas');
  20.         $this->form->setFormTitle('Defina o filtro');
  21.         $this->form->class 'tform';
  22.         
  23.         $dt1 = new TDate('dt1');
  24.         $dt2 = new TDate('dt2');
  25.         $dt1->setMask'dd/mm/yyyy' );
  26.         $dt2->setMask'dd/mm/yyyy' );
  27.         $this->form->addQuickField('Data Inicial:'$dt1'50%'); 
  28.         $this->form->addQuickField('Data Final:'$dt2'50%');
  29.         
  30.         $this->form->addQuickAction('Pesquisar:', new TAction(array($this'onSearch')), 'fa:search blue'); // botao pesquisar
  31.         $this->form->addQuickAction('ConfirmarFiltro:', new TAction(array($this'onConfirmar')), 'fa:search red'); // botao pesquisar
  32.         
  33.         // keep the form filled with the search data
  34.         $dt1->setValue(TSession::getValue('dt1'));
  35.         $dt2->setValue(TSession::getValue('dt2'));
  36.         
  37.         // add the columns
  38.         $this->datagrid->addQuickColumn('Cod',    'cod',    'center'50);
  39.         $this->datagrid->addQuickColumn('Nome',    'nome',    'left'350);
  40.         $this->datagrid->addQuickColumn('Valor''valor''left'150);
  41.         $this->datagrid->addQuickColumn('Vencimento',   'dt_vcto',    'left'150);
  42.         
  43.         //$this->datagrid->enablePopover('Popover', 'Hi <b> {name} </b>');
  44.         
  45.         $action1 = new TDataGridAction(array($this'onView'));
  46.         $action2 = new TDataGridAction(array($this'onDelete'));
  47.         
  48.         $arrayDados = array('cod''nome''valor''dt_vcto''id_loja''nomeloja''parte''referencia');
  49.       
  50.         // add the actions
  51.         $this->datagrid->addQuickAction('Cadastro',   $action1$arrayDados'ico_find.png'50);
  52.         $this->datagrid->addQuickAction('Baixar'$action2$arrayDados'ico_delete.png'50);
  53.         
  54.         $action1->setUseButton(TRUE);
  55.         $action1->setButtonClass('btn btn-default');
  56.         $action1->setImage('fa:search blue');
  57.         
  58.         $action2->setUseButton(TRUE);
  59.         $action2->setButtonClass('btn btn-default');
  60.         $action2->setImage('fa:remove red');
  61.         
  62.         // creates the datagrid model
  63.         $this->datagrid->createModel();
  64.         
  65.         // creates the page navigation
  66.         $this->pageNavigation = new TPageNavigation;
  67.         $this->pageNavigation->setAction(new TAction(array($this'onNavigator')));
  68.         $this->pageNavigation->setWidth($this->datagrid->getWidth());
  69.         
  70.         $panel = new TPanelGroup('Lista');
  71.         $panel->add($this->datagrid);
  72.         $panel->addFooter('Resumo');
  73.         
  74.         // wrap the page content using vertical box
  75.         $vbox = new TVBox;
  76.         $vbox->add(new TXMLBreadCrumb('menu.xml'__CLASS__));
  77.         $vbox->add($this->form); // add a row to the form
  78.         $vbox->add($panel);
  79.         $vbox->add($this->pageNavigation);
  80.         
  81.         parent::add($vbox);
  82.     }
  83.         
  84.     /**
  85.      * Load the data into the datagrid
  86.      */
  87.     function onReload($param=NULL$filter=NULL)
  88.     {
  89.         var_dump($param);
  90.         var_dump($filter);
  91.         
  92.         $this->datagrid->clear();
  93.         
  94.         $data1 date("d/m/Y");
  95.         $data2 date("d/m/Y");
  96.         
  97.         if (empty(!$filter)) {
  98.         try
  99.             {
  100.             $atual  1;  
  101.             $data1 $filter->dt1;
  102.             $data2 $filter->dt2;
  103.             if (!empty($param)) {
  104.                 $atual$param['page'];
  105.                 }
  106.     
  107.             $location "http://testserver:testserver@localhost:8085/eventos/GetDadosPromiss?dataini={$data1}&datafim={$data2}";
  108.             echo $location;
  109.             $resultado =  Uteis::LerJSON($location);
  110.             $totalregistros count($resultado);
  111.             $qtd        10;
  112.             $pagArquivo array_chunk($resultado$qtd);
  113.             $contar     count($pagArquivo);
  114.   
  115.             if (!empty($resultado)) {            
  116.                 $resultado  $pagArquivo[$atual-1];
  117.                      foreach ($resultado as $valor) { 
  118.                         $item = new StdClass;
  119.                         $item->cod          $valor->id_cli;
  120.                         $item->nome         $valor->nomecliente;
  121.                         $item->valor        $valor->valor;
  122.                                             //setNumericMask(2,',','.',True);
  123.                         $item->dt_vcto      $valor->dt_vcto;
  124.                         $item->id_loja      $valor->id_loja;
  125.                         $item->nomeloja     $valor->nomeloja;
  126.                         $item->parte        $valor->parte;
  127.                         $item->referencia   $valor->referencia;
  128.                         $this->datagrid->addItem($item);
  129.                      }
  130.                      
  131.                 $this->pageNavigation->setCount($totalregistros); // Quantidade de registros
  132.                 $this->pageNavigation->setProperties($param); // parametros de pagina, limit, order
  133.                 $this->pageNavigation->setLimit($qtd); // Limite de registro por página!
  134.                 $this->loaded true;
  135.                 }
  136.            }    
  137.                catch (Exception $e)
  138.            {
  139.                echo 'Error: '$e->getMessage();
  140.            }
  141.         } else {
  142.               
  143.             new TMessage('info''Nenhum filtro add');
  144.         }
  145.          
  146.     }   // fim da funcao onReload 
  147.     
  148.     function onSearch()
  149.     {
  150.         // get the search form data
  151.         $data $this->form->getData();
  152.         $this->onReload(''$data);
  153.         $this->form->setData($data);
  154.     }
  155.     //* verificar filtros em tempo de exec
  156.     function onConfirmar()
  157.     {
  158.     }
  159.     function onDelete($param)
  160.     {
  161.         // get the parameter and shows the message
  162.         //var_dump($param);
  163.         $nome=$param['nome'];
  164.         new TMessage('error'"Deseja realmente baixar o registro do cliente: $nome");
  165.     }
  166.     
  167.     function onView($param)
  168.     {
  169.         // get the parameter and shows the message
  170.         $nome=$param['nome'];
  171.         $loja=$param['nomeloja'];
  172.         $ref =$param['referencia'];    
  173.          new TMessage('info'"Cliente    : $nome </br >".
  174.                               "Loja       : $loja </br >".
  175.                               "referencia : $ref  </br >" );
  176.         $this->pageNavigation->setProperties($param); // parametros de pagina, limit, order
  177.         $this->onReload($param);    
  178.     }
  179.     
  180.     //* Funcão onNavigator
  181.     function onNavigator($param)        
  182.     {
  183.         $filter = new stdClass();
  184.         $filter->dt1 $param['dt1']; // aqui eu preciso pegar os valores que já estão no filtro atual 
  185.         $filter->dt2 $param['dt2'];
  186.         var_dump($filter);
  187.         $this->pageNavigation->setProperties($param); // parametros de pagina, limit, order
  188.         $this->onReload($param,$filter);
  189.         $this->form->setData($filter);
  190.     }    
  191.     function show()
  192.     {
  193.         
  194.         if ($this->loaded)
  195.         {
  196.             $this->onReload(); 
  197.         }
  198.         parent::show();
  199.     }
  200.     
  201.     
  202. }
  203. ?>
IM

se puder, já me auxila como faço para valores boolean ficarem como BAIXADO E NÂO BAIXADO na grid ...
bem como o valor ficar monetário ... pois não consegui acerta isso ainda ...Grato!
sou iniciante ... kkkkkkk 5 dias de php só ..
até que já to indo longe!
IF

Tá, vamos por partes. Vc vai ter que colocar os valores do form em sessão:

  1. <?php
  2.     function onSearch()
  3.     {
  4.         // get the search form data
  5.         $data $this->form->getData();
  6.        
  7.         // clear session filters
  8.         TSession::setValue('dt1',   NULL);
  9.         TSession::setValue('dt2',   NULL);
  10.         if (isset($data->dt1) AND ($data->dt1)) {
  11.             TSession::setValue('dt1',   $data->dt1); 
  12.         }
  13.         if (isset($data->dt2) AND ($data->dt2)) {
  14.             TSession::setValue('dt2',   $data->dt2); 
  15.         }
  16.         $this->onReload(''$data);
  17.         $this->form->setData($data);
  18.     }
  19.    //no onNavigator...
  20.       public function onNavigator($param)
  21. ?>
IF

  1. <?php
  2.     public function onNavigator($param)
  3.     {
  4.          ...
  5.          $filter->dt1 TSession::getValue('dt1');
  6.          $filter->dt2 TSession::getValue('dt2');
  7.          ...
  8.     }
  9. ?>
IF

Como vc é novo no PHP, seria bom vc dar uma olhada (estudada) no tutor do Adianti, que inclusive tem a resposta pra sua dúvida quanto a formatação de valores na Datagrid: https://www.adianti.com.br/framework_files/tutor/index.php?class=DatagridTransfo
IM

Ivan,
com suas alterações, ficou assim:Warning:

Creating default object from empty value in C:wamp64wwwico_menezesappcontrolapresentacaoContainerTableParcelasJson.class.php on line 196

a linha é essa:
  1. <?php    function onNavigator($param)        
  2.     {
  3.         $filter->dt1 TSession::getValue('dt1');   //linha 196
  4.         $filter->dt2 TSession::getValue('dt2');
  5.         $this->pageNavigation->setProperties($param); // parametros de pagina, limit, order
  6.         $this->onReload($param,$filter);
  7. ?>

IF

Ico, eu só te dei uma noção de como pegar o valor da sessão. A sua variável $filter continua como estava no método onNavigator onde vc criou uma StdClass.
IF

  1. <?php
  2. //* Funcão onNavigator
  3.     function onNavigator($param)        
  4.     {
  5.         $filter = new stdClass();
  6.         $filter->dt1 TSession::getValue('dt1');
  7.         $filter->dt2 TSession::getValue('dt2');
  8.         var_dump($filter);
  9.         $this->pageNavigation->setProperties($param); // parametros de pagina, limit, order
  10.         $this->onReload($param,$filter);
  11.         $this->form->setData($filter);
  12.     }    
  13. ?>
IM

Show ! Perfeito agora
FS

Bom Dia Meu Povo

As dores do ICO sao as minhas tambem... As vezes ficamos horas e horas num problema que dá vontade de chutar o balde...

Ico Menezes: ( 2018-07-06)
Ivan ... passei o dia inteiro criando sessão pra resolver isso ...
e vc com uma simples linha resolveu
showwwww
deu certo, parceiro@!