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ç�...
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.


 
  1. <?php
  2. /*
  3. * Validacao do Cpf ou Cnpj
  4. */
  5. public static function onCpfCnpj( $param )
  6. {
  7. try
  8. {
  9. $numero = TGeral::SoNum( $param['PES_CPFCNPJ'] );
  10. // Verifica o CPF/CNPJ
  11. if ( strlen( $numero ) == 11 )
  12. {
  13. $validator = new TCPFValidator;
  14. $validator->validate( '', $numero );
  15. }
  16. else if ( strlen( $numero ) == 14 )
  17. {
  18. $validator = new TCNPJValidator;
  19. $validator->validate('', $numero );
  20. }
  21. else
  22. {
  23. $msg = 'Numero de CPF ou CNPJ INVÁLIDO,<br>Correto CPF-11 ou CNPJ-14 números';
  24. new TMessage( 'info', $msg, null, 'Validação do CPF/CNPJ');
  25. }
  26. // Verifica se já existe Cadastro
  27. $criteria = new TCriteria;
  28. $criteria->add( new TFilter( 'PES_CPFCNPJ', '=', $numero ));
  29. $objects = TBuscaRecords::get_All('MkSgc_Geral', 'TblPessoas', $criteria );
  30. // caso exista
  31. if ( count( $objects ) > 0 )
  32. {
  33. $param['key'] = $objects[0]->PES_ID;
  34. AdiantiCoreApplication::loadPage( 'Cad_TblFornecedorForm', 'onEdit', $param );
  35. $msg = 'ATENÇÃO - Para AGREGAR o Fornecedor a sua Base,<br>basta clicar no Botão SALVAR';
  36. new TMessage('info', $msg, null, 'CADASTRO DE FORNECEDOR');
  37. }
  38. }
  39. catch (Exception $e) // in case of exception
  40. {
  41. $numero = TGeral::CpfCnpj( $numero );
  42. $msg = '<b>Cpf/Cnpj: '.$numero.'</b><br>'.$e->getMessage();
  43. new TMessage('error', $msg, null, 'Validação do CPF/CNPJ');
  44. }
  45. }
  46. //-----------------------------------------------------------------------------------------------------
  47. /**
  48. * Load object to form data
  49. * @param $param Request
  50. */
  51. public function onEdit( $param )
  52. {
  53. try
  54. {
  55. if ( isset( $param['key']))
  56. {
  57. // Carrega o Cadastro de Pessoas
  58. $data = $this->form->getData();
  59. $key = $param['key'];
  60. $For = TblFornecedor::get_Fornecedor( $key );
  61. TSession::setValue('ForID', $key );
  62. TTransaction::open( Base );
  63. $object = new TblPessoas( $key );
  64. // Transforma Valores
  65. $object->PES_CPFCNPJ = TGeral::CpfCnpj( $object->PES_CPFCNPJ );
  66. $object->PES_CADASTRO = TDate::date2br( $object->PES_CADASTRO );
  67. $object->PES_ULTIMA = TDate::date2br( $object->PES_ULTIMA );
  68. $object->PES_DTNASC = TDate::date2br( $object->PES_DTNASC );
  69. $object->PES_CEP = TGeral::Cep( $object->PES_CEP );
  70. $object->FOR_STATUS = $For->FOR_STATUS;
  71. // $object->FOR_CONTABIL = $For->FOR_CONTABIL;
  72. var_dump( $data, $object );
  73. $this->form->setData( $object );
  74. // Fecha as Transações
  75. TTransaction::close();
  76. $this->form->setCurrentPage(0);
  77. }
  78. else
  79. {
  80. $this->form->clear();
  81. }
  82. }
  83. catch (Exception $e) // in case of exception
  84. {
  85. new TMessage('error', $e->getMessage()); // shows the exception error message
  86. TTransaction::rollback(); // undo all pending operations
  87. }
  88. }
  89. ?>

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


FC

Troque
$this->form->setData( $object );
por
TForm::sendData('nome_form', $object );
MC

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 ?

FC

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.