MC
Não carrega no Form as Informações
Boas,
Estou com seguinte situação:
Quando carrego um registro num form (onEdit) através da tela de listagem, os dados aparecem normal.
No entanto precisei fazer dentro do form uma função Static a qual através da
AdiantiCoreApplication::loadPage( 'TblFornecedorForm', 'onEdit', $param );
solicito carregar o from e passo o parâmetro para o onEdit.
Nas duas situações os dados carregam na variável $object normalmente mas pro algum motivo não
carrega no form. $this->form->setData( $object );
Segue abaixo os códigos usados.
Estou com seguinte situação:
Quando carrego um registro num form (onEdit) através da tela de listagem, os dados aparecem normal.
No entanto precisei fazer dentro do form uma função Static a qual através da
AdiantiCoreApplication::loadPage( 'TblFornecedorForm', 'onEdit', $param );
solicito carregar o from e passo o parâmetro para o onEdit.
Nas duas situações os dados carregam na variável $object normalmente mas pro algum motivo não
carrega no form. $this->form->setData( $object );
Segue abaixo os códigos usados.
- <?php
- /*
- * Validacao do Cpf ou Cnpj
- */
- public static function onCpfCnpj( $param )
- {
- try
- {
- $numero = TGeral::SoNum( $param['PES_CPFCNPJ'] );
- // Verifica o CPF/CNPJ
- if ( strlen( $numero ) == 11 )
- {
- $validator = new TCPFValidator;
- $validator->validate( '', $numero );
- }
- else if ( strlen( $numero ) == 14 )
- {
- $validator = new TCNPJValidator;
- $validator->validate('', $numero );
- }
- else
- {
- $msg = 'Numero de CPF ou CNPJ INVÁLIDO,<br>Correto CPF-11 ou CNPJ-14 números';
- new TMessage( 'info', $msg, null, 'Validação do CPF/CNPJ');
- }
- // Verifica se já existe Cadastro
- $criteria = new TCriteria;
- $criteria->add( new TFilter( 'PES_CPFCNPJ', '=', $numero ));
- $objects = TBuscaRecords::get_All('MkSgc_Geral', 'TblPessoas', $criteria );
- // caso exista
- if ( count( $objects ) > 0 )
- {
- $param['key'] = $objects[0]->PES_ID;
- AdiantiCoreApplication::loadPage( 'Cad_TblFornecedorForm', 'onEdit', $param );
- $msg = 'ATENÇÃO - Para AGREGAR o Fornecedor a sua Base,<br>basta clicar no Botão SALVAR';
- new TMessage('info', $msg, null, 'CADASTRO DE FORNECEDOR');
- }
- }
- catch (Exception $e) // in case of exception
- {
- $numero = TGeral::CpfCnpj( $numero );
- $msg = '<b>Cpf/Cnpj: '.$numero.'</b><br>'.$e->getMessage();
- new TMessage('error', $msg, null, 'Validação do CPF/CNPJ');
- }
- }
- //-----------------------------------------------------------------------------------------------------
- /**
- * Load object to form data
- * @param $param Request
- */
- public function onEdit( $param )
- {
- try
- {
- if ( isset( $param['key']))
- {
- // Carrega o Cadastro de Pessoas
- $data = $this->form->getData();
- $key = $param['key'];
- $For = TblFornecedor::get_Fornecedor( $key );
- TSession::setValue('ForID', $key );
- TTransaction::open( Base );
- $object = new TblPessoas( $key );
- // Transforma Valores
- $object->PES_CPFCNPJ = TGeral::CpfCnpj( $object->PES_CPFCNPJ );
- $object->PES_CADASTRO = TDate::date2br( $object->PES_CADASTRO );
- $object->PES_ULTIMA = TDate::date2br( $object->PES_ULTIMA );
- $object->PES_DTNASC = TDate::date2br( $object->PES_DTNASC );
- $object->PES_CEP = TGeral::Cep( $object->PES_CEP );
- $object->FOR_STATUS = $For->FOR_STATUS;
- // $object->FOR_CONTABIL = $For->FOR_CONTABIL;
- var_dump( $data, $object );
- $this->form->setData( $object );
- // Fecha as Transações
- TTransaction::close();
- $this->form->setCurrentPage(0);
- }
- else
- {
- $this->form->clear();
- }
- }
- catch (Exception $e) // in case of exception
- {
- new TMessage('error', $e->getMessage()); // shows the exception error message
- TTransaction::rollback(); // undo all pending operations
- }
- }
- ?>
Troque
$this->form->setData( $object );
por
TForm::sendData('nome_form', $object );
Obrigado Felipe deu certo.
Apesar de ter efeitos diferentes no onEdit, como por exemplo não carregar na tela o TCombo, apesar da variável estar com valor
Agora vc sabe dizer o porque não funciona com setData ?
Por causa do código JavaScript são diferentes para carregar a combo basta passar o Key da combo. Como no exemplo de formulário dinâmico do tutor.