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
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
- <?php e
- /**
- * Adiciona a prova
- *
- */
- public function onProvaAdd( $param )
- {
- try
- {
- TTransaction::open('super_prova');
- $data = $this->form->getData();
- if( (! $data->descricao) || (! $data->cod_cab) )
- throw new Exception('Os campos Descrição e Cabeçalho são obrigatórios');
- $prova = new Prova;
- $prova->descricao = $data->descricao;
- $prova->cod_cab = $data->cod_cab;
- $prova->observacao = $data->observacao;
- $prova->store(); // stores the object
- //$data->descricao->setEditable(false);
- //$data->cod_cab->setEditable(false);
- //$data->observacao->setEditable(false);
- $this->form->setData($prova);
- TTransaction::close();
- new TMessage('info', TAdiantiCoreTranslator::translate('Record saved')); // success message
- $this->onDisable($param);
- //$this->onReload( $param ); // reload the sale items
- }
- catch (Exception $e)
- {
- $this->form->setData( $this->form->getData());
- new TMessage('error', $e->getMessage());
- TTransaction::rollback();
- }
- }
- /**
- * Desabilita campos
- **/
- public static function onDisable($param)
- {
- $obj = new StdClass;
- $obj = $this->form->getData();
- $obj->descricao->setEditable(False);
- $obj->cod_cab->setEditable(False);
- $obj->observacao->setEditable(False);
- TForm::sendData('form_prova',$obj);
- }
- ?>
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
Ajudou muito Nataniel obrigado novamente!