Desabilitar campos após garvar registro pessoal tenho um formulário onde tenho 2 frames ainda estou construindo o primeiro frame que ira gravar o registro máster, preciso que ao clicar no botão de Gravar após a inserção do registro preciso que os campos desse frame sejam desabilitados, já tentei fazer direto na function do ação do botão e também tentei chamado uma fucao após a gravação e ambos não funcionaram não apresen...
LB
Desabilitar campos após garvar registro  
Fechado
pessoal tenho um formulário onde tenho 2 frames ainda estou construindo o primeiro frame que ira gravar o registro máster, preciso que ao clicar no botão de Gravar após a inserção do registro preciso que os campos desse frame sejam desabilitados, já tentei fazer direto na function do ação do botão e também tentei chamado uma fucao após a gravação e ambos não funcionaram não apresenta erros porém não grava e fica naquela mensagem de "Carregando" e nunca sai. No anexo mostro o botão destacado em vermelho e em verde os campos que precisa dar o disable.
Se alguém puder me dar uma dia agradeço, preciso fazer um cadastro máster/detail, porém preciso gerar o máster para depois gerar os detalhes não enviei o código todo pois ainda estou desenvolvendo essa tela e não está totalmente pronta.

abaixo o código que estou usando no momento

 
  1. <?php e
  2. /**
  3. * Adiciona a prova
  4. *
  5. */
  6. public function onProvaAdd( $param )
  7. {
  8. try
  9. {
  10. TTransaction::open('super_prova');
  11. $data = $this->form->getData();
  12. if( (! $data->descricao) || (! $data->cod_cab) )
  13. throw new Exception('Os campos Descrição e Cabeçalho são obrigatórios');
  14. $prova = new Prova;
  15. $prova->descricao = $data->descricao;
  16. $prova->cod_cab = $data->cod_cab;
  17. $prova->observacao = $data->observacao;
  18. $prova->store(); // stores the object
  19. //$data->descricao->setEditable(false);
  20. //$data->cod_cab->setEditable(false);
  21. //$data->observacao->setEditable(false);
  22. $this->form->setData($prova);
  23. TTransaction::close();
  24. new TMessage('info', TAdiantiCoreTranslator::translate('Record saved')); // success message
  25. $this->onDisable($param);
  26. //$this->onReload( $param ); // reload the sale items
  27. }
  28. catch (Exception $e)
  29. {
  30. $this->form->setData( $this->form->getData());
  31. new TMessage('error', $e->getMessage());
  32. TTransaction::rollback();
  33. }
  34. }
  35. /**
  36. * Desabilita campos
  37. **/
  38. public static function onDisable($param)
  39. {
  40. $obj = new StdClass;
  41. $obj = $this->form->getData();
  42. $obj->descricao->setEditable(False);
  43. $obj->cod_cab->setEditable(False);
  44. $obj->observacao->setEditable(False);
  45. TForm::sendData('form_prova',$obj);
  46. }
  47. ?>

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


NR

Leandro, não é possível utilizar a variável $this em uma função estática. Você pode utilizar a função disableField para desabilitar os campos. Exemplo: TEntry::disableField('nome_do_form','nome_do_campo'). Dê uma olhada no exemplo abaixo, deve ajudar:
adianti.com.br/framework_files/tutor/index.php?class=FormEnableDisab
LB

Ajudou muito Nataniel obrigado novamente!