{parts/gtag_head.html} {parts/gtag_body.html}
Conheça  A Ferramenta LowCode mais moderna e veloz para desenvolvimento PHP: Adianti Creator
onEdit não funciona galera to terminando um sistema e reparei que alguns onEdit não funcionam, ele recupera os dados normal, porem ao salvar ele cria outro em vez de editar o existente alguem tem algum luz o coltroller ta assim ...
onEdit não funciona  
Fechado
galera to terminando um sistema e reparei que alguns onEdit não funcionam, ele recupera os dados normal, porem ao salvar ele cria outro em vez de editar o existente alguem tem algum luz

o coltroller ta assim


 
  1. <?php
  2. /** class de controle de funcionarios
  3. * author Alexandre E. Souza
  4. */
  5. class CargosView extends TStandardList{
  6. protected $grid;
  7. protected $panel;
  8. protected $fomt;
  9. protected $pagination;
  10. function __construct()
  11. {
  12. parent::__construct();
  13. parent::setDatabase('mysql');
  14. parent::setActiveRecord("Cargos");
  15. parent::setFilterField('nome');
  16. $this->form = new TQuickForm("Buscar Setores");
  17. $this->panel = new TPanel(800,600);
  18. $table = new TTable();
  19. $row = $table->addRow();
  20. $tabela = $table->addRow();
  21. $novo = $table->addRow();
  22. $campo = new TEntry('nome');
  23. $campo->setValue(TSession::getValue('nome'));
  24. $btnNovo = new TButton('novo');
  25. $btnNovo->setAction(new TAction(array('frmCargo','onEdit')),'Novo');
  26. $btnNovo->setImage('ico_new.png');
  27. $novo->addCell($btnNovo);
  28. $this->form->addQuickField("Nome:",$campo,100);
  29. $this->form->addQuickAction("Buscar",new TAction(array($this,"onSearch")),"ico_seek.png");
  30. $this->grid = new TQuickGrid();
  31. $this->grid->setHeight("400");
  32. $this->grid->addQuickColumn('ID','id','right',170);
  33. $this->grid->addQuickColumn('Nome','nome','left',230);
  34. $this->grid->addQuickColumn('Setor','setor','left',230);
  35. $this->grid->addQuickColumn('Salario Base','salario','left',230);
  36. $this->grid->addQuickColumn('Descricao','descricao','left',230);
  37. $this->grid->addQuickAction('Editar', new TDataGridAction(array('frmCargo','onEdit')),'id','ico_edit.png');
  38. $this->grid->addQuickAction('Deletar', new TDataGridAction(array($this,'onDelete')),'id','ico_delete.png');
  39. // $this->grid->addQuickAction('Novo', new TDataGridAction(array('frmVeiculos','__construct')),'ico_form.png');
  40. $cell = $row->addCell($this->form);
  41. $cell->colspan =2;
  42. $tabela->addCell($this->grid);
  43. $this->grid->createModel();
  44. $this->panel->put($table,50,10);
  45. // formulario
  46. parent::add($this->panel);
  47. }
  48. public function show(){
  49. parent::show();
  50. $this->onReload();
  51. }
  52. public function onReload(){
  53. $this->grid->Clear();
  54. try{
  55. TTransaction::open("mysql");// abre a transação
  56. $repo = new TRepository("Cargos");
  57. $criteria = new TCriteria();
  58. $criteria->add(new TFilter("id",">","0"));
  59. $veiculos = $repo->load($criteria);
  60. foreach ($veiculos as $key ) {
  61. $item = new StdClass();
  62. $item->id = $key->id;
  63. $item->nome = $key->nome;
  64. $item->salario = $key->salario;
  65. $item->setor = $key->getSetor()->nome;
  66. $item->descricao = $key->descricao;
  67. $this->grid->addItem($item);
  68. }
  69. TTransaction::close();// abre a transação
  70. }catch(Exeption $e){
  71. new TMessage('error',$e->getMessage());
  72. }
  73. }
  74. }
  75. ?>


o formulario

 
  1. <?php
  2. class frmCargo extends TStandardForm{
  3. protected $form;
  4. function __construct()
  5. {
  6. parent::__construct();
  7. parent::setDatabase("mysql");
  8. parent::setActiveRecord("Cargos");
  9. $this->form = new TQuickForm("Cargos");
  10. $nome = new TEntry('nome');
  11. $salario = new TEntry('salario');
  12. $descricao = new TText('descricao');
  13. $setor = new TDBCombo('setor_id','mysql','Setor','id','nome');
  14. $this->form->addQuickField('Nome:',$nome,200);
  15. $this->form->addQuickField('Salario:',$salario,200);
  16. $this->form->addQuickField('E-Mail:',$setor,200);
  17. $this->form->addQuickField('Descricao:',$descricao,200);
  18. //mascaras
  19. $salario->setMask('99999.99');
  20. $this->form->addQuickAction("Save",new TAction(array($this,"onSave")),"ico_save.png");
  21. $this->form->addQuickAction("Novo",new TAction(array($this,"onEdit")),"ico_new.png");
  22. $this->form->addQuickAction("Listar",new TAction(array("CargosView","onReload")),"ico_datagrid.gif");
  23. parent::add($this->form);
  24. }
  25. }
  26. ?>



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


ES

Olá!
Verifique no seu formulário a presença do campo id, se esse campo não estiver presente ele sempre vai entender que deverá incluir um novo.

Veja o post: www.adianti.com.br/forum/pt/view_452?update-x-insert-nos-forms-gerad creio que é o mesmo problema que você está enfrentando.

abs
Eliezer


então colega Eliezer Silva
se eu colocar o campo id no form como irei fazer para pegar a sequencia, pois os ids são auto incrementos

Eliezer realmente era isso, mas tinha que aver uma maneira do campo d não precisar ser visivel para o usuario, mas funcionaou sim, vlw
ES

Mas aí é muito fácil, se você não quer que o id apareça use o THidden em vez do TEntry, veja o exemplo:

 
  1. <?php $id = new THidden('id'); ?>


Pronto!
Com certeza vai dar certo.

att.
Eliezer

VLW CARA DEU CERTINHO