Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Form instanciado dentro de um notebook - TForm::sendata Bom dia...pessoal Quem pode me ajudar? tenho um form pai que instancia outro form, todas as funções funcionam menos a carga dos dados no form filho segue os fontes...desde ja agradeço muito... trecho do form pai... $form_pessoais = new PessoaisForm; $hbox = new THBox; $hbox->style = 'width: 100%'; $hbox->add($form_pessoais);...
AT
Form instanciado dentro de um notebook - TForm::sendata  
Bom dia...pessoal

Quem pode me ajudar? tenho um form pai que instancia outro form, todas as funções funcionam menos a carga dos dados no form filho segue os fontes...desde ja agradeço muito...


trecho do form pai...

$form_pessoais = new PessoaisForm;
$hbox = new THBox;
$hbox->style = 'width: 100%';
$hbox->add($form_pessoais);
//$hbox->add($imagem);
$pessoais->add($hbox);

form instaciado

  1. <?php
  2.    
  3.     /**
  4.      * CustomerFormView
  5.      *
  6.      * @version    1.0
  7.      * @package    setcia
  8.      * @author     Antonio Augusto Tavares
  9.      * @copyright  Copyright (c) 2018 Setsoft - Consultoria e Informática Ltda
  10.      */
  11.     class PessoaisForm extends TPage
  12.     {
  13.         private $form// form
  14.         /**
  15.          * Class constructor
  16.          * Creates the page and the registration form
  17.          */
  18.         
  19.         function __construct()
  20.         {
  21.             parent::__construct();
  22.           
  23.             // creates the form
  24.  
  25.             $this->form = new BootstrapFormBuilder('form_pessoais');
  26.             $this->form->style 'width: 100%';
  27.             $this->form->setFieldSizes('100%');
  28.               
  29.             $id             = new TEntry('id');
  30.             $id->setEditable(false);
  31.             $tratamentos_id = new TDBCombo('tratamentos_id''setcis''tratamentos''id''singular');
  32.             $nascimento     = new TDate('nascimento');
  33.             $civis_id       = new TDBCombo('civis_id''setcis''civis''id''descricao''descricao asc');
  34.             $sexos_id       = new TDBCombo('sexos_id''setcis''sexos''id''descricao');
  35.             $pai            = new TEntry('pai');       
  36.             $mae            = new TEntry('mae'); 
  37.             $municipios_id  = new TDBUniqueSearch('municipios_id''setcis''municipio''id''nome''nome asc');
  38.             $profissoes_id  = new TDBUniqueSearch('profissoes_id''setcis''profissoes''id''descricao''descricao asc');
  39.             $instrucoes_id  = new TDBCombo('instrucoes_id''setcis''instrucoes''id''descricao');
  40.             $entidades_id   = new TEntry('entidades_id');
  41.  
  42.             $row $this->form->addFields([ new TLabel('id') ],
  43.                                           [ new TLabel('Tratamento') ],
  44.                                           [ new TLabel('Nascimento') ],
  45.                                           [ new TLabel('Civil') ],
  46.                                           [ new TLabel('Sexo') ]);
  47.             $row->layout = ['col-sm-1','col-sm-3''col-sm-4''col-sm-2''col-sm-2' ];  
  48.            
  49.             $row $this->form->addFields([ $id ],
  50.                                           [ $tratamentos_id ],
  51.                                           [ $nascimento ],
  52.                                           [ $civis_id ],
  53.                                           [ $sexos_id ]);
  54.             $row->layout = ['col-sm-1','col-sm-3''col-sm-4''col-sm-2''col-sm-2' ]; 
  55.            
  56.             $row $this->form->addFields([ new TLabel('Pai') ],
  57.                                           [ new TLabel('Mãe') ]);
  58.             $row->layout = ['col-sm-6''col-sm-6'];  
  59.            
  60.             $row $this->form->addFields([ $pai ],
  61.                                           [ $mae ]);
  62.             $row->layout = ['col-sm-6''col-sm-6'];    
  63.            
  64.             $row $this->form->addFields([ new TLabel('Naturalidade') ],
  65.                                           [ new TLabel('Profissão') ],
  66.                                           [ new TLabel('Instrução') ],
  67.                                           [ new TLabel('Entidade') ] );
  68.             $row->layout = ['col-sm-4''col-sm-4''col-sm-3''col-sm-1'];     
  69.            
  70.             $row $this->form->addFields([ $municipios_id ],
  71.                                           [ $profissoes_id ],
  72.                                           [ $instrucoes_id ],
  73.                                           [ $entidades_id  ]);
  74.             $row->layout = ['col-sm-4''col-sm-4''col-sm-3''col-sm-1'];   
  75.            
  76.             $this->form->addAction'Editar',  new TAction([$this'onEdit']),  'fa:save green' );
  77.             $this->form->addAction'Salvar',  new TAction([$this'onSave']),  'fa:save green' );
  78.             //$this->form->addAction( 'Excluir',   new TAction([$this, 'onDelete']), 'fa:eraser red' );
  79.            
  80.             parent::add($this->form);
  81.            
  82.         }              
  83.        
  84.     public static function onEdit($param)
  85.     {
  86.         try
  87.         {
  88.             TTransaction::open('setcis');
  89.            
  90.             $id_entidade TSession::getValue('id_entidade');           
  91.             $criteria = new TCriteria;
  92.             $criteria->add(new TFilter('entidade_id''='$id_entidade));
  93.             $repository = new TRepository('EntidadePessoal');
  94.             $entidade_pessoal $repository->load($criteria);
  95.             $objeto_pessoal = new stdClass;
  96.             $objeto_pessoal $entidade_pessoal;
  97.            
  98.             TTransaction::close(); // close the transaction
  99.            
  100.             //var_dump($objeto_pessoal);
  101.            
  102.             TForm::sendData('form_pessoais'$objeto_pessoal);
  103.              
  104.             //$this->form->setData($objeto_pessoal); // fill form data           
  105.            
  106.            
  107.            
  108.             //new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
  109.         }
  110.         catch (Exception $e// in case of exception
  111.         {
  112.             new TMessage('error'$e->getMessage());
  113.             TTransaction::rollback();
  114.         }
  115.     }                                      
  116.        
  117.     public function onSave($param)
  118.     {
  119.         try
  120.         {
  121.             TTransaction::open('setcis');
  122.             
  123.             $data $this->form->getData(); // get form data as array
  124.             $data->entidades_id TSession::getValue('id_entidade');
  125.            
  126.             if( empty($param['id']))
  127.             {
  128.                $entidade_pessoal = new EntidadePessoal;
  129.             }
  130.             else
  131.             {
  132.                $entidade_pessoal = new EntidadePessoal((int) $param['id']);
  133.             }   
  134.            
  135.             $entidade_pessoal->fromArray( (array) $data); // load the object with data
  136.             $entidade_pessoal->store(); // save the object
  137.            
  138.             // get the generated id
  139.                
  140.             $data->id $entidade_pessoal->id;
  141.            
  142.             $this->form->setData($data); // fill form data           
  143.            
  144.             //$entidade_pessoal->tratamentos_id = $data->tratamentos_id;
  145.             //$entidade_pessoal->nascimento     = $data->nascimento;
  146.             //$entidade_pessoal->civis_id       = $data->civis_id;
  147.             //$entidade_pessoal->sexos_id       = $data->sexos_id;
  148.             //$entidade_pessoal->pai            = $data->pai;       
  149.             //$entidade_pessoal->mae            = $data->mae); 
  150.             //$entidade_pessoal->municipios_id  = $data->municipios_id;
  151.             //$entidade_pessoal->profissoes_id  = $data->profissoes_id;
  152.             //$entidade_pessoal->instrucoes_id  = $data->insttrucoes_id;
  153.            
  154.             TTransaction::close(); // close the transaction
  155.            
  156.             new TMessage('info'TAdiantiCoreTranslator::translate('Record saved'));
  157.         }
  158.         catch (Exception $e// in case of exception
  159.         {
  160.             new TMessage('error'$e->getMessage());
  161.             TTransaction::rollback();
  162.         }
  163.     }                              
  164.            
  165.     }        

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (3)


LG

Tenta trocar essa parte do código:
<?
$id_entidade = TSession::getValue('id_entidade');
$criteria = new TCriteria;
$criteria->add(new TFilter('entidade_id', '=', $id_entidade));
$repository = new TRepository('EntidadePessoal');
$entidade_pessoal = $repository->load($criteria);
$objeto_pessoal = new stdClass;
$objeto_pessoal = $entidade_pessoal;
?>

Por isto:
  1. <?php
  2.             $id_entidade TSession::getValue('id_entidade');
  3.             $objeto_pessoal = new EntidadePessoal($id_entidade);
  4. ?>

Acredito que quando você faz o load, você tem um array, mesmo que somente com um objeto.
Instanciando EntidadePessoal passando o id, você vai ter somente um objeto.
Acredito que seja esse o problema.
LG

Tenta trocar essa parte do código:
  1. <?php 
  2. $id_entidade TSession::getValue('id_entidade'); 
  3. $criteria = new TCriteria
  4. $criteria->add(new TFilter('entidade_id''='$id_entidade)); 
  5. $repository = new TRepository('EntidadePessoal'); 
  6. $entidade_pessoal $repository->load($criteria); 
  7. $objeto_pessoal = new stdClass
  8. $objeto_pessoal $entidade_pessoal
  9. ?>


Por isto:
  1. <?php
  2.             $objeto_pessoal = new EntidadePessoal(TSession::getValue('id_entidade'));
  3. ?>


Acredito que quando você faz o load, você tem um array, mesmo que somente com um objeto.
Instanciando EntidadePessoal passando o id, você vai ter somente um objeto.
Acredito que seja esse o problema.
AT

Caro Leonardo,

obrigado por sua atenção, mas o problema não esta na carga dos dados, tanto o trecho que esta no programa, quanto sua sugestão, os dados retornam como vejo no var_dump, porem TForm::sendData('form_pessoais', $objeto_pessoal); não envia os dados para o form, além disso quando faço a carga no programa pai, o form_pessoais abre tela cheia e não dentro do notebook, penso que o form filho deve ser independente e sua carga e dados,recebendo apenas o id_entidade do pai pela TSession o que você acha?

[] obrigado