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 Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


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