Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Preenchimento de Datagrid Boa Tarde, tenho uma consulta que faço via PDO e quero carregar a datagrid com esse dados, mas ele não preenche, segue os códigos Todos os dados estão vindo conforme Criação de datagrid ...
G
Preenchimento de Datagrid  
Boa Tarde, tenho uma consulta que faço via PDO e quero carregar a datagrid com esse dados, mas ele não preenche, segue os códigos

Todos os dados estão vindo conforme

Criação de datagrid


  1. <?php
  2.   $column_cr_distrib_pgto_id = new TDataGridColumn('cr_distrib_pgto_id''Título''right');
  3.         $column_cr_id = new TDataGridColumn('cr_id''Título''right');
  4.         $column_nome_cliente = new TDataGridColumn('nome_cliente''Nome''right');
  5.         $column_class_cont_id = new TDataGridColumn('class_cont_id''Class. Contabil''right');
  6.         $column_dt_pgto = new TDataGridColumn('dt_pgto''Dt Pgto''left');
  7.         $column_vr_lancto = new TDataGridColumn('vr_lancto''Vr Lancto''right');
  8.         $column_vr_pgto = new TDataGridColumn('vr_pgto''Vr Pgto''right');
  9.         $column_status = new TDataGridColumn('status''Status''left');
  10.         // add the columns to the DataGrid
  11.         $this->datagrid->addColumn($column_cr_distrib_pgto_id);
  12.         $this->datagrid->addColumn($column_cr_id);
  13.         $this->datagrid->addColumn($column_nome_cliente);
  14.         $this->datagrid->addColumn($column_class_cont_id);
  15.         $this->datagrid->addColumn($column_dt_pgto);
  16.         $this->datagrid->addColumn($column_vr_lancto);
  17.         $this->datagrid->addColumn($column_vr_pgto);
  18.         $this->datagrid->addColumn($column_status);
  19. ?>


foreach de preenchimento


  1. <?php
  2.  foreach ($pgtosDistrib as $pgto)
  3.                     {
  4.                         $pgto2                          = new stdClass();
  5.                         $pgto2->cr_distrib_pgtos_id     $pgto['cr_distrib_pgtos_id'];
  6.                         $pgto2->cr_id                   $pgto['cod_cr'];
  7.                         $pgto2->nome_cliente            $pgto['nome_cliente'];
  8.                         $pgto2->class_cont_id           $pgto['class_cont_id'];
  9.                         $pgto2->dt_pgto                 $pgto['dt_pgto'];
  10.                         $pgto2->vr_lancto               $pgto['vr_lancto'];
  11.                         $pgto2->vr_pgto                 $pgto['vr_pgto'];
  12.                         $pgto2->status                  $pgto['status'];
  13.                         $this->datagrid->addItem($pgto2);
  14.                      }
  15. ?>


Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (3)


NR

Difícil dizer sem ver todo o código. O var_dump de $pgto2 retorna o objeto com os atributos preenchidos corretamente? Isso está dentro da função onReload?
G

Bom Dia, Sim, o var_dump, retorna os dados certos, tudo se encontra dentro da função do on Reload, segue código!


  1. <?php
  2. use Adianti\Control\TAction;
  3. use Adianti\Database\TTransaction;
  4. use Adianti\Registry\TSession;
  5. use Adianti\Widget\Datagrid\TDataGrid;
  6. use Adianti\Widget\Datagrid\TDataGridColumn;
  7. use Adianti\Widget\Form\TEntry;
  8. use Adianti\Widget\Wrapper\TDBCombo;
  9. use Adianti\Wrapper\BootstrapDatagridWrapper;
  10. use Adianti\Wrapper\BootstrapFormBuilder;
  11. class fcnsTituloCrPagoDistrib extends TPage
  12. {
  13.     protected $form;     // registration form
  14.     protected $datagrid// listing
  15.     protected $pageNavigation;
  16.     protected $formgrid;
  17.     protected $deleteButton;
  18.     public function __construct()
  19.     {
  20.         parent::__construct();
  21.         
  22.         $this->form = new BootstrapFormBuilder('fcnsTituloCrPagoDistrib');
  23.         $input_search = new TDBCombo('input_search','sgidb','ClassContabil','class_cont_id','descricao','descricao');
  24.         //$input_search->placeholder = _t('Search');
  25.         $input_search->setSize('100%');
  26.         $input_search->enableSearch(true);
  27.         $input_search->setDefaultOption(false);
  28.         $input_search->setChangeAction(new TAction([$this,'onSearch']));
  29.         $this->form->addFields([$input_search]);
  30.         // creates a Datagrid
  31.         $this->datagrid = new BootstrapDatagridWrapper(new TDataGrid);
  32.         $this->datagrid->style 'width: 100%';
  33.         $this->datagrid->datatable 'false';
  34.         // $this->datagrid->enablePopover('Popover', 'Hi <b> {name} </b>');
  35.         
  36.         // creates the datagrid columns
  37.         $column_cr_distrib_pgto_id = new TDataGridColumn('cr_distrib_pgto_id''Título''right');
  38.         $column_cr_id = new TDataGridColumn('cr_id''Título''right');
  39.         $column_nome_cliente = new TDataGridColumn('nome_cliente''Nome''right');
  40.         $column_class_cont_id = new TDataGridColumn('class_cont_id''Class. Contabil''right');
  41.         $column_dt_pgto = new TDataGridColumn('dt_pgto''Dt Pgto''left');
  42.         $column_vr_lancto = new TDataGridColumn('vr_lancto''Vr Lancto''right');
  43.         $column_vr_pgto = new TDataGridColumn('vr_pgto''Vr Pgto''right');
  44.         $column_status = new TDataGridColumn('status''Status''left');
  45.         // add the columns to the DataGrid
  46.         $this->datagrid->addColumn($column_cr_distrib_pgto_id);
  47.         $this->datagrid->addColumn($column_cr_id);
  48.         $this->datagrid->addColumn($column_nome_cliente);
  49.         $this->datagrid->addColumn($column_class_cont_id);
  50.         $this->datagrid->addColumn($column_dt_pgto);
  51.         $this->datagrid->addColumn($column_vr_lancto);
  52.         $this->datagrid->addColumn($column_vr_pgto);
  53.         $this->datagrid->addColumn($column_status);
  54.         $column_status->setTransformer(function($value$object$row) {
  55.             return TTranslate::buscaValorTranslate('ST_PGTO'$value);
  56.         });
  57.         $column_dt_pgto->setTransformer(function($value$object$row) {
  58.             if(empty($value))
  59.             {
  60.                 return ' ';
  61.             }
  62.             else
  63.             {
  64.                 $date = new DateTime($value);
  65.                 return $date->format('d/m/Y ');
  66.             }
  67.         });
  68.         $column_vr_lancto->setTransformer(function($value$object$row) {
  69.             if(empty($value))
  70.             {
  71.                 return 'R$ 0,00';
  72.             }
  73.             else
  74.             {
  75.                 return 'R$ '.(str_replace( ['''.'],['.'','],$value));
  76.             }
  77.         });
  78.         $column_vr_pgto->setTransformer(function($value$object$row) {
  79.             if(empty($value))
  80.             {
  81.                 return 'R$ 0,00';
  82.             }
  83.             else
  84.             {
  85.                 return 'R$ '.(str_replace( ['''.'],['.'','],$value));
  86.             }
  87.         });
  88.         // create the datagrid model
  89.         $this->datagrid->createModel();
  90.         // creates the page navigation
  91.         $this->pageNavigation = new TPageNavigation;
  92.         $this->pageNavigation->setAction(new TAction([$this'onReload']));
  93.            $panel = new TPanelGroup('''white');
  94.            $panel->add($this->datagrid);
  95.            $panel->addFooter($this->pageNavigation);
  96.         //$this->form->addContent([$panel]);
  97.         // vertical box container
  98.         $container = new TVBox;
  99.         $container->style 'width: 100%';
  100.         // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  101.         $container->add($this->form);
  102.         $container->add($panel);
  103.         
  104.         parent::add($container);
  105.     }
  106.     public static function onSearch($param)
  107.     {
  108.         $data $param['input_search'];
  109.         if (!empty($data))
  110.         {
  111.             TSession::setValue(__CLASS__.'_class'$data);
  112.         }
  113.         $param = array();
  114.         $param['offset'] = 0;
  115.         $param['first_page'] = 1;
  116.         $form = new fcnsTituloCrPagoDistrib();
  117.         $form->onReload($param);
  118.     }
  119.     public function onReload($param null)
  120.     {
  121.         try
  122.         {
  123.             try
  124.             {
  125.                 TTransaction::open('sgidb');
  126.                 $conn TTransaction::get();
  127.                 $sqlBusca="select tcg.cr_distrib_pgtos_id,
  128.                                  tch.cod_cr,
  129.                                  c.nome_cliente,
  130.                                  tcd.class_cont_id,
  131.                                  tcp.dt_pgto,
  132.                                  tcg.vr_lancto,
  133.                                  tcg.vr_pgto,
  134.                                  tcg.status
  135.                           from titulo_cr_hdr tch,
  136.                                titulo_cr_endereco tce,
  137.                                titulo_cr_pgtos tcp,
  138.                                titulo_cr_distrib tcd,
  139.                                titulo_cr_distrib_pgto tcg,
  140.                                cliente c
  141.                           where
  142.                               tch.cr_id = tce.cr_id
  143.                           and tch.unidade_id = :unidade
  144.                           and tch.cliente_id = c.cliente_id
  145.                           and c.grp_id = :grp_id
  146.                           and tce.st_endereco = 'A'
  147.                           and tch.cr_id = tcp.cr_id
  148.                           and tch.unidade_id = tcp.unidade_id
  149.                           and tch.cr_id = tcg.cr_id
  150.                           and tcp.cr_pgtos_id  = tcg.cr_pgtos_id
  151.                           and tcd.class_cont_id = :class";
  152.                     if(Tsession::getValue('fcnsTituloCrPago_cod_cr')) {
  153.                         $sqlBusca .= " and tch.cod_cr = :cod_cr ";
  154.                     }
  155.                     if(Tsession::getValue('fcnsTituloCrPago_met_pgto'))
  156.                     {
  157.                         $sqlBusca .= " and tcp.met_pgto_id = :metpgto";
  158.                     }
  159.                     if(Tsession::getValue('fcnsTituloCrPago_cliente_id'))
  160.                     {
  161.                         $sqlBusca .= " and c.cliente_id =:clienteid";
  162.                     }
  163.                     $sqlBusca .= " and ((    tcg.dt_pgto between :datainicio and coalesce(tcg.dt_pgto, :datafinal))
  164.                                             or (tcg.dt_pgto between :datainicio and :datafinal)
  165.                                             or (tcg.dt_pgto  <= :datafinal)
  166.                                             )";
  167.                     $bind = new TBind();
  168.                     $bind->add('unidade',TSession::getValue('userunitid'));
  169.                     $bind->add('class',TSession::getValue(__CLASS__.'_class'));
  170.                     $bind->add('grp_id',TSession::getValue('usergrpid'));
  171.                     if(Tsession::getValue('fcnsTituloCrPago_cod_cr')) {
  172.                         $bind->add('cod_cr'TSession::getValue('fcnsTituloCrPago_cod_cr'));
  173.                     }
  174.                     if(Tsession::getValue('fcnsTituloCrPago_met_pgto'))
  175.                     {
  176.                         $bind->add('met_pgto_id',TSession::getValue('fcnsTituloCrPago_met_pgto'));
  177.                     }
  178.                     if(Tsession::getValue('fcnsTituloCrPago_cliente_id'))
  179.                     {
  180.                         $bind->add('cliente_id'TSession::getValue('fcnsTituloCrPago_cliente_id'));
  181.                     }
  182.                     $bind->add('datainicio',TSession::getValue('fcnsTituloCrPago_dt_de'));
  183.                     $bind->add('datafinal','2021-02-28');
  184.                     $sth $conn->prepare($sqlBusca);
  185.                     $sth->execute($bind->gerarBind());
  186.                     $pgtosDistrib $sth->fetchAll();
  187.                     //debug::debug_var($pgtosDistrib,true);
  188.                     $pgto2 = new stdClass();
  189.                     foreach ($pgtosDistrib as $pgto)
  190.                     {
  191.                         $pgto2->cr_distrib_pgtos_id     $pgto['cr_distrib_pgtos_id'];
  192.                         $pgto2->cr_id                   $pgto['cod_cr'];
  193.                         $pgto2->nome_cliente            $pgto['nome_cliente'];
  194.                         $pgto2->class_cont_id           $pgto['class_cont_id'];
  195.                         $pgto2->dt_pgto                 $pgto['dt_pgto'];
  196.                         $pgto2->vr_lancto               $pgto['vr_lancto'];
  197.                         $pgto2->vr_pgto                 $pgto['vr_pgto'];
  198.                         $pgto2->status                  $pgto['status'];
  199.                         $this->datagrid->addItem($pgto2);
  200.                         Debug::debug_var($pgto2);
  201.                     }
  202.                 TTransaction::close();
  203.                 $this->loaded true;
  204.             }
  205.             catch (Error $e)
  206.             {
  207.                     new TMessage('Erro'$e->getMessage());
  208.                     TTransaction::rollback();
  209.             }
  210.         }
  211.         finally
  212.         {
  213.             $this->loaded true;
  214.         }
  215.     }
  216. }
  217. ?>
NR

Sua função onSearch é estática, dessa forma não há recarga da tela. Veja o link abaixo:
https://www.adianti.com.br/forum/pt/view_4627?carregar-datagrid-atraves-de-uma-f