Pegando apenas um campo de uma tabela Primeiramente gostaria de parabenizá-los pelo excelente Framework...Sou novato na área do desenvolvimento e no Adianti Studio então não levem a mal a pergunta de nível iniciante mas vamos la. Gostaria de saber como faço pra pega apenas um campo de uma tabela e tratar esse campo fora d grid; e depois sim add na grid o campo já tratado...tentei usar um GET tipo assim => " $descricao = $_GET...
JF
Pegando apenas um campo de uma tabela  
Primeiramente gostaria de parabenizá-los pelo excelente Framework...Sou novato na área do desenvolvimento e no Adianti Studio então não levem a mal a pergunta de nível iniciante mas vamos la. Gostaria de saber como faço pra pega apenas um campo de uma tabela e tratar esse campo fora d grid; e depois sim add na grid o campo já tratado...tentei usar um GET tipo assim => " $descricao = $_GET['descricao']; ".
Mas to bem perdido não to conseguindo, sei q isso é bem simples porém não achei nada parecido e já to perdendo muito tempo em algo q parece ser "tão simples".

Fico no aguardo se alguém puder me ajudar.
Obrigado

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


MG

Jeferson
Pesquise no tutor sobre transformadores. Trata-se de um recurso onde você pode por exemplo mudar um label na coluna status, vamos a um exemplo:
- Neste exemplo subtende-se que a coluna na datagrid seja $column_status e seu conteúdo no BD seja "A" de Ativo e "I" de Inativo. No exemplo eu estou "transformando" o valor do campo em algo fácil de entender. Será exibido um label com fundo verde para o status igual a A e vermelho com status igual a I e o label também sofrerá transformação.
Você pode fazer algo semelhante, exibindo os valores monetários e etc......

 
  1. <?php
  2. $column_status->setTransformer(function($value, $object, $row) {
  3. $lbl = new TLabel('');
  4. if ($value == 'A') { // status ativo
  5. $lbl->setLabel('Ativo');
  6. $lbl->class = 'label label-success';
  7. } else {
  8. $lbl->setLabel('Inativo');
  9. $lbl->class = 'label label-danger';
  10. }
  11. return $lbl;
  12. })
  13. ?>


Espero ter ajudado
JF

Bah Marcelo Gomes é exatamente isso que eu preciso, altera o cor do chamado aberto pelo usuário, diferenciar o chamado pendente do finalizado...porem estou com um pouco de duvida de como colocar em pratica esse código, tenho que criar uma função fora do construct, tipo onde fica as function onReload, onSearch...e depois passar por parâmetro tipo isso?
JF

Bah Marcelo Gomes é exatamente isso que eu preciso, altera o cor do chamado aberto pelo usuário, diferenciar o chamado pendente do finalizado...porem estou com um pouco de duvida de como colocar em pratica esse código, tenho que criar uma função fora do construct, tipo onde fica as function onReload, onSearch...e depois passar por parâmetro tipo isso?
JF

Bah Marcelo Gomes é exatamente isso que eu preciso, altera o cor do chamado aberto pelo usuário, diferenciar o chamado pendente do finalizado...porem estou com um pouco de duvida de como colocar em pratica esse código, tenho que criar uma função fora do construct, tipo onde fica as function onReload, onSearch...e depois passar por parâmetro tipo isso?
JF

Bah Marcelo Gomes é exatamente isso que eu preciso, altera o cor do chamado aberto pelo usuário, diferenciar o chamado pendente do finalizado...porem estou com um pouco de duvida de como colocar em pratica esse código, tenho que criar uma função fora do construct, tipo onde fica as function onReload, onSearch...e depois passar por parâmetro tipo isso?
JF

Bah Marcelo Gomes é exatamente isso que eu preciso, altera o cor do chamado aberto pelo usuário, diferenciar o chamado pendente do finalizado...porem estou com um pouco de duvida de como colocar em pratica esse código, tenho que criar uma função fora do construct, tipo onde fica as function onReload, onSearch...e depois passar por parâmetro tipo isso?
JF

Bah Marcelo Gomes é exatamente isso que eu preciso, altera o cor do chamado aberto pelo usuário, diferenciar o chamado pendente do finalizado...porem estou com um pouco de duvida de como colocar em pratica esse código, tenho que criar uma função fora do construct, tipo onde fica as function onReload, onSearch...e depois passar por parâmetro tipo isso?
JF

Bah Marcelo Gomes é exatamente isso que eu preciso, altera o cor do chamado aberto pelo usuário, diferenciar o chamado pendente do finalizado...porem estou com um pouco de duvida de como colocar em pratica esse código, tenho que criar uma função fora do construct, tipo onde fica as function onReload, onSearch...e depois passar por parâmetro tipo isso?
JF

Bah Marcelo Gomes é exatamente isso que eu preciso, altera o cor do chamado aberto pelo usuário, diferenciar o chamado pendente do finalizado...porem estou com um pouco de duvida de como colocar em pratica esse código, tenho que criar uma função fora do construct, tipo onde fica as function onReload, onSearch...e depois passar por parâmetro tipo isso?
JF

Bah Marcelo Gomes é exatamente isso que eu preciso, altera o cor do chamado aberto pelo usuário, diferenciar o chamado pendente do finalizado...porem estou com um pouco de duvida de como colocar em pratica esse código, tenho que criar uma função fora do construct, tipo onde fica as function onReload, onSearch...e depois passar por parâmetro tipo isso?
JF

Bah Marcelo Gomes é exatamente isso que eu preciso, altera o cor do chamado aberto pelo usuário, diferenciar o chamado pendente do finalizado...porem estou com um pouco de duvida de como colocar em pratica esse código, tenho que criar uma função fora do construct, tipo onde fica as function onReload, onSearch...e depois passar por parâmetro tipo isso?
JF

Bah Marcelo Gomes é exatamente isso que eu preciso, altera o cor do chamado aberto pelo usuário, diferenciar o chamado pendente do finalizado...porem estou com um pouco de duvida de como colocar em pratica esse código, tenho que criar uma função fora do construct, tipo onde fica as function onReload, onSearch...e depois passar por parâmetro tipo isso?
JF

Bah Marcelo Gomes é exatamente isso que eu preciso, altera o cor do chamado aberto pelo usuário, diferenciar o chamado pendente do finalizado...porem estou com um pouco de duvida de como colocar em pratica esse código, tenho que criar uma função fora do construct, tipo onde fica as function onReload, onSearch...e depois passar por parâmetro tipo isso?
JF

Bah Marcelo Gomes é exatamente isso que eu preciso, altera o cor do chamado aberto pelo usuário, diferenciar o chamado pendente do finalizado...porem estou com um pouco de duvida de como colocar em pratica esse código, tenho que criar uma função fora do construct, tipo onde fica as function onReload, onSearch...e depois passar por parâmetro tipo isso?
JF

Bah Marcelo Gomes é exatamente isso que eu preciso, altera o cor do chamado aberto pelo usuário, diferenciar o chamado pendente do finalizado...porem estou com um pouco de duvida de como colocar em pratica esse código, tenho que criar uma função fora do construct, tipo onde fica as function onReload, onSearch...e depois passar por parâmetro tipo isso?
JF

Bah Marcelo Gomes é exatamente isso que eu preciso, altera o cor do chamado aberto pelo usuário, diferenciar o chamado pendente do finalizado...porem estou com um pouco de duvida de como colocar em pratica esse código, tenho que criar uma função fora do construct, tipo onde fica as function onReload, onSearch...e depois passar por parâmetro tipo isso?
JF

Bah Marcelo Gomes é exatamente isso que eu preciso, altera o cor do chamado aberto pelo usuário, diferenciar o chamado pendente do finalizado...porem estou com um pouco de duvida de como colocar em pratica esse código, tenho que criar uma função fora do construct, tipo onde fica as function onReload, onSearch...e depois passar por parâmetro tipo isso?
MG

Você deve implementar no construtor logo depois de adicionar as colunas no datagrid.
JF

Tentei faze o que vc falou mas ta dando erro na variável " $column_status "...vou posta o código pra vê se consegue me dar uma luz.
JF

 
  1. <?php
  2. class ChamadoList extends TPage
  3. {
  4. private $datagrid;
  5. private $column_status;
  6. function __construct()
  7. {
  8. parent::__construct();
  9. $Titulo_pg = '<b><font color="#3C8DBC" size="4px">Chamados Pendentes</font> </b>';
  10. echo "$Titulo_pg <br/> <br/>" ;
  11. ////////// Iniciando o form /////////////
  12. $this->form = new TQuickForm('Form_busca_estipulante');
  13. $this->form->class = 'tform';
  14. $basca_titulo = new TEntry('descricao');
  15. $basca_titulo->setValue( TSession::getValue('nome_chamado'));
  16. $this->form->addQuickField('Nome', $basca_titulo ,150);
  17. $this->form->addQuickAction('Buscar', new TAction(array($this, 'onSearch')), 'ico_find.png');
  18. $this->datagrid = new TQuickGrid;
  19. $this->datagrid->style = 'width: 750px';
  20. $this->datagrid->addQuickColumn('Id', 'id_chamado', 'left', 30);
  21. $this->datagrid->addQuickColumn('Nome', 'nome', 'left', 120);
  22. $this->datagrid->addQuickColumn('Problema', 'descricao', 'left', 1500);
  23. $this->datagrid->addQuickColumn('Solucao', 'solucao', 'left', 1000);
  24. $this->datagrid->addQuickColumn('Setor', 'setor','left',200);
  25. $this->datagrid->addQuickColumn('Data chamado', 'data_chamado','left',100);
  26. $this->datagrid->addQuickColumn('Hora', 'hora','left',100);
  27. $this->datagrid->addQuickColumn('Estatus','estatus','left',100);
  28. //Notice: Undefined variable: column_status in C:\xampp\htdocs\FinansysWeb\ChamadoList.class.php on line 49
  29. $column_status->setTransformer(function($value, $object, $row)
  30. {
  31. $lbl = new TLabel('');
  32. if ($value == 'Pendente') { // status ativo
  33. //$lbl->setLabel('Ativo');
  34. $lbl->class = 'label label-success';
  35. } else {
  36. //$lbl->setLabel('Inativo');
  37. $lbl->class = 'label label-danger';
  38. }
  39. return $lbl;
  40. });
  41. $edit = new TDataGridAction( array('AlteraChamado', 'onEdit'));
  42. $this->datagrid->addQuickAction('Editar', $edit, 'id_chamado', 'ico_edit.png');
  43. $this->form->addQuickAction('Limpar', new TAction(array($this, 'onClear')), 'fa:eraser red');
  44. $this->datagrid->createModel();
  45. $this->pageNavigation = new TPageNavigation();
  46. $this->pageNavigation->setAction(new TAction(array($this, 'onReload')));
  47. $this->pageNavigation->setWidth($this->datagrid->getWidth());
  48. $vbox = new TVBox;
  49. $vbox->add($this->form);
  50. $vbox->add($this->datagrid);
  51. $vbox->add($this->pageNavigation);
  52. parent::add($vbox);
  53. }//__construct
  54. public function onReload ( $param = NULL )//onReload
  55. {
  56. try
  57. {
  58. TTransaction::open('filme');//aqui é o nome da arquivo .ini
  59. $repository = new TRepository('CHAMADO');//aqui é o nome da classe q manipula os dados
  60. $criteria = new TCriteria;//ESSA LINHA FICA
  61. $nome_log = TSession::getValue('login');
  62. $criteria->add(new TFilter("nome","=",$nome_log));// aqui vc define quais campos a serem filtrados
  63. $criteria->add(new TFilter("estatus","=",'Pendente'));
  64. $repository->load($criteria);
  65. $criteria->setProperty('order', 'id_chamado');//ordena a grip em DESC
  66. $criteria->setProperty('direction','desc');
  67. $criteria->setProperties( $param );
  68. $criteria->setProperty('limit',8);//numero de registros
  69. $objects = $repository->load( $criteria );
  70. if (TSession::getValue('localiza_chamado'))
  71. {
  72. $criteria->add(TSession::getValue('localiza_chamado'));
  73. $this->form->clear();//Reseta a Busca se nao acha registro
  74. }
  75. $objects = $repository->load( $criteria );
  76. $this->datagrid->clear();
  77. if ($objects)
  78. {
  79. foreach ($objects as $object)
  80. {
  81. $object->data_chamado = TDate::date2br($object->data_chamado);//FORMATA A DATA
  82. $this->datagrid->addItem( $object );// DEPOIS ADICIONA NA GRID
  83. $this->form->clear();//Reseta a Busca se acha registro
  84. }
  85. }
  86. $criteria->resetProperties();
  87. $count = $repository->count( $criteria );
  88. $this->pageNavigation->setCount ( $count );
  89. $this->pageNavigation->setProperties ( $param );
  90. $this->pageNavigation->setlimit(8);//numero de registros
  91. TTransaction::close();
  92. $this->loaded = TRUE;
  93. }
  94. catch (Exception $e)
  95. {
  96. new TMessage('error', $e->getMessage());
  97. TTransaction::rollback();
  98. }
  99. $this->loaded = TRUE;
  100. }//fecha onReload
  101. public function show ()
  102. {
  103. if (!$this->loaded )
  104. {
  105. $this->onReload();
  106. }
  107. parent::show();
  108. }//fecha show
  109. public function onSearch ()
  110. {
  111. $data = $this->form->getdata();
  112. if ($data->descricao)//nome d campo a ser buscado
  113. {
  114. $filter = new TFilter('descricao','like', "%$data->descricao%"); //$filter = new TFilter('nome','like', "%$data->nome%");
  115. TSession::setvalue('localiza_chamado',$filter);
  116. TSession::setvalue('nome_chamado',$data->descricao);
  117. }
  118. else
  119. {
  120. TSession::setValue('localiza_chamado', NULL);//nome d TSession acima
  121. }
  122. $this->form->setdata($data);
  123. $param = array();
  124. $param['offset'] = 0;
  125. $param['first_page'] = 1;
  126. $this->onReload( $param );
  127. }//fecha onSearch
  128. public function onClear()
  129. {
  130. $data = $this->form->getdata();
  131. if ($data->descricao)//nome d campo a ser buscado
  132. {
  133. $filter = new TFilter('descricao','like', "%$data->descricao%"); //$filter = new TFilter('nome','like', "%$data->nome%");
  134. TSession::setvalue('localiza_chamado',$filter);
  135. TSession::setvalue('nome_chamado',$data->descricao);
  136. }
  137. else
  138. {
  139. TSession::setValue('localiza_chamado', NULL);//nome d TSession acima
  140. }
  141. $this->form->setdata($data);
  142. $param = array();
  143. $param['offset'] = 0;
  144. $param['first_page'] = 1;
  145. $this->onReload( $param );
  146. }//onClear
  147. }//fecha class principal
  148. ?>





JF

Marcelo Gomes valeu pela dica, deu certo aqui..acabei usando esse exemplo do tutor que usa o setTransformer => www.adianti.com.br/framework_files/tutor/index.php?class=DatagridTra
Obrigado por ter respondido tão rápido. Grande Abraços
JF

www.adianti.com.br/framework_files/tutor/index.php?class=DatagridTra