Problemas com DataGrid Saudações! Sou novo no adianti e estou desenvolvendo uma aplicação que necessita do uso de datagrids. Usei como base para o desenvolvimento das mesmas o código disponibilizado no Tutor. Até ai tudo bem, o código funciona e os dados que estou consumindo de uma API rest estão aparecendo normal. O problema está em uma mensagem de erro do Adianti que persiste, mesmo eu mexendo e mudando m...
R
Problemas com DataGrid  
Saudações!
Sou novo no adianti e estou desenvolvendo uma aplicação que necessita do uso de datagrids.
Usei como base para o desenvolvimento das mesmas o código disponibilizado no Tutor.
Até ai tudo bem, o código funciona e os dados que estou consumindo de uma API rest estão aparecendo normal.
O problema está em uma mensagem de erro do Adianti que persiste, mesmo eu mexendo e mudando muitas coisas! xD
Segue abaixo o código-fonte:


 
  1. <?php
  2. class PagamentosList extends TPage{
  3. private $datagrid;
  4. private $loaded;
  5. public function __construct(){
  6. parent::__construct();
  7. $this->datagrid = new BootstrapDatagridWrapper(new TDataGrid);
  8. $this->datagrid->style = 'width: 100%; cursor: unset';
  9. try{
  10. require_once 'request.php';
  11. $location = 'http://192.168.1.183:4000/pagamentos/000012';
  12. $p = json_decode(file_get_contents($location, true), true);
  13. foreach($p as $ps => $pp){
  14. $contrato = $pp['codibene'];
  15. $mensalidade = $pp['menspaga'];
  16. $pagamento = $pp['datapaga'];
  17. $valorTot = $pp['valopaga'];
  18. // $contrato2 = new TDataGridColumn('codibene', 'Contrato' ,'left', '25%');
  19. $mensalidade2 = new TDataGridColumn('menspaga', 'Mensalidade', 'left', '25%');
  20. $pagamento2 = new TDataGridColumn('datapaga', 'Data do Pagamento', 'left', '25%');
  21. $valorTot2 = new TDataGridColumn('valopaga', 'Valor Pago(R$)', 'left', '25%');
  22. $this->datagrid->addColumn($mensalidade2);
  23. $this->datagrid->addColumn($pagamento2);
  24. $this->datagrid->addColumn($valorTot2);
  25. //$this->datagrid->addItem(json_encode($pp));
  26. @$this->datagrid->createModel();
  27. @parent::add($this->datagrid);
  28. }
  29. }
  30. catch (Exception $e)
  31. {
  32. echo 'Error: ' . $e->getMessage();
  33. }
  34. }
  35. public function formatDate($transf_date, $object)
  36. {
  37. $date = new DateTime($object->pagamento2);
  38. return $date->format($object->format);
  39. }
  40. public function onReload(){
  41. try{
  42. require_once 'request.php';
  43. $location = 'http://192.168.1.183:4000/pagamentos/000012';
  44. $p = json_decode(file_get_contents($location, true), true);
  45. $this->datagrid->clear();
  46. foreach($p as $ps => $pc){
  47. // $item->codibene = $pc['codibene'] ;
  48. @ $item->menspaga = $pc['menspaga'];
  49. @ $item->datapaga = $pc['datapaga'];
  50. @ $item->valopaga = $pc['valopaga'];
  51. @ $this->datagrid->addItem($item);
  52. }
  53. }
  54. catch (Exception $e)
  55. {
  56. echo 'Error: ' . $e->getMessage();
  57. }
  58. }
  59. public function show()
  60. {
  61. $this->onReload();
  62. parent::show();
  63. }
  64. }
  65. ?>

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)


MG

Olá amigo.
A datagrid é um objeto e ela deve ser criada para depois ser populada.
Você a está criando dentro de um foreach!

Os passos para uma datagrid:
1) Instancia a data grid;
2) Cria e adiciona as colunas, botões e etc;
3) Aciona o método "createModel";
4) No onReload você chama seu webservice, instancia um stdCalss, popula a grid com o método
"addItem", aí sim no foreach.
R

Eita!
Fiz exatamente como você disse. Alguns dados foram para antes e outros para depois do foreach. Permanecendo, apenas:

 
  1. <?php
  2. $contrato = $pp['codibene'];
  3. $mensalidade = $pp['menspaga'];
  4. $pagamento = $pp['datapaga'];
  5. $valorTot = $pp['valopaga'];
  6. ?>


E deu super certo. Sumiu o erro! xD
Obrigado!!
MG

Opa!Excelente. Sucesso.