Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Dificuldade ao carregar dados relacionados no form Olá, a todos Estou tentando carregar dados relacionados em um formulário porém sem sucesso, e não estou conseguindo identificar onde estou errando. Alguém pode me ajudar. Segue fonte abaixo : Classe Pessoa class Pessoa extends TRecord { const TABLENAME = 'pessoa'; const PRIMARYKEY= 'id'; const IDPOLICY = 'serial'; // {max, serial} private $fisica; ...
RB
Dificuldade ao carregar dados relacionados no form  
Olá, a todos

Estou tentando carregar dados relacionados em um formulário porém sem sucesso, e não estou conseguindo identificar onde estou errando.

Alguém pode me ajudar.

Segue fonte abaixo :

Classe Pessoa
class Pessoa extends TRecord
{
const TABLENAME = 'pessoa';
const PRIMARYKEY= 'id';
const IDPOLICY = 'serial'; // {max, serial}

private $fisica;
private $juridica;
private $contato;
private $contatoweb;
private $pessoa_endereco;
private $pessoa_organizacao;
private $organizacao;
private $funcionario;
private $site;

/**
* Constructor method
*/
public function __construct($id = NULL, $callObjectLoad = TRUE)
{
parent::__construct($id, $callObjectLoad);
parent::addAttribute('nome');
parent::addAttribute('data_nascimento');
parent::addAttribute('tipo_pessoa_id');
}


/**
* Method getfisicas
*/
public function get_fisica()
{
$criteria = new TCriteria;
$criteria->add(new TFilter('pessoa_id', '=', $this->id));

$this->fisica = Fisica::getObjects( $criteria );
return $this->fisica;
}
/**
* Method getpessoa_enderecos
*/
public function get_pessoa_endereco()
{
$criteria = new TCriteria;
$criteria->add(new TFilter('pessoa_id', '=', $this->id));
$this->pessoa_endereco = PessoaEndereco::getObjects( $criteria );
return $this->pessoa_endereco;
}


/**
* Method getclientes
*/
public function get_cliente()
{
$criteria = new TCriteria;
$criteria->add(new TFilter('pessoa_id', '=', $this->id));
$this->cliente = Cliente::getObjects( $criteria );
return $this->cliente;
}


?>

Classe PessoaEndereco

class PessoaEndereco extends TRecord
{
const TABLENAME = 'pessoa_endereco';
const PRIMARYKEY= 'id';
const IDPOLICY = 'serial'; // {max, serial}


private $endereco;
private $pessoa;
private $cliente;
private $organizacao;

/**
* Constructor method
*/
public function __construct($id = NULL, $callObjectLoad = TRUE)
{
parent::__construct($id, $callObjectLoad);
parent::addAttribute('pessoa_id');
parent::addAttribute('endereco_id');
parent::addAttribute('tipo_endereco_id');
parent::addAttribute('numero');
parent::addAttribute('complemento');
parent::addAttribute('criacao');
parent::addAttribute('atualizacao');
parent::addAttribute('organizacao_Id');
}


/**
* Method set_endereco
* Sample of usage: $pessoa_endereco->endereco = $object;
* @param $object Instance of Endereco
*/
public function set_endereco(Endereco $object)
{
$this->endereco = $object;
$this->endereco_id = $object->id;
}

/**
* Method get_endereco
* Sample of usage: $pessoa_endereco->endereco->attribute;
* @returns Endereco instance
*/
public function get_endereco()
{
// loads the associated object
if (empty($this->endereco))
$this->endereco = new Endereco($this->endereco_id);

// returns the associated object
return $this->endereco;
}


/**
* Method set_pessoa
* Sample of usage: $pessoa_endereco->pessoa = $object;
* @param $object Instance of Pessoa
*/
public function set_pessoa(Pessoa $object)
{
$this->pessoa = $object;
$this->pessoa_id = $object->id;
}

/**
* Method get_pessoa
* Sample of usage: $pessoa_endereco->pessoa->attribute;
* @returns Pessoa instance
*/
public function get_pessoa()
{
// loads the associated object
if (empty($this->pessoa))
$this->pessoa = new Pessoa($this->pessoa_id);

// returns the associated object
return $this->pessoa;
}

/**
* Method get_cliente
* Sample of usage: $pessoa_endereco->cliente->attribute;
* @returns Cliente instance
*/
public function get_cliente()
{
// loads the associated object
if (empty($this->cliente))
$this->cliente = Cliente::where('pessoa_id','=',$this->pessoa_id)->load();

// returns the associated object
return $this->cliente;
}
}
?>

Classe Endereco
  1. <?php
  2. class Endereco extends TRecord
  3. {
  4.     const TABLENAME 'endereco';
  5.     const PRIMARYKEY'id';
  6.     const IDPOLICY =  'serial'// {max, serial}
  7.     
  8.     
  9.     /**
  10.      * Constructor method
  11.      */
  12.     public function __construct($id NULL$callObjectLoad TRUE)
  13.     {
  14.         parent::__construct($id$callObjectLoad);
  15.         parent::addAttribute('cep');
  16.         parent::addAttribute('logradouro');
  17.         parent::addAttribute('bairro');
  18.         parent::addAttribute('cidade');
  19.         parent::addAttribute('uf');
  20.         parent::addAttribute('pais');
  21.     }
  22. public static function BuscaCepWeb($Cep)
  23.   {
  24.     $Cep preg_replace("/D/",""$Cep);
  25.     if ($Cep != "")
  26.       {
  27.         $resultado simplexml_load_string( @file_get_contents("http://viacep.com.br/ws/".$Cep."/xml/"));
  28.         $erro = (string) $resultado->erro;
  29.         if (!$erro)
  30.         {
  31.           $id_cep Endereco::BuscaEnderecoId($Cep);
  32.           
  33.           if(!empty($id_cep))
  34.           {
  35.             $objects['id']          =  $id_cep// retorno vindo do banco
  36.             $objects['cep']         = (string) $resultado->cep;
  37.             $objects['logradouro']  = (string) $resultado->logradouro;
  38.             $objects['complemento'] = (string) $resultado->complemento;
  39.             $objects['bairro']      = (string) $resultado->bairro;
  40.             $objects['localidade']  = (string) $resultado->localidade;
  41.             $objects['uf']          = (string) $resultado->uf;
  42.             $objects['unidade']     = (string) $resultado->unidade;
  43.             $objects['ibge']        = (string) $resultado->ibge;
  44.             $objects['gia']         = (string) $resultado->gia;
  45.             return $objects;
  46.           } 
  47.           else
  48.           {
  49.             $obj Endereco::addEndereco($resultado);
  50.             if(!empty($obj))
  51.             {
  52.                 return $obj;
  53.             } 
  54.           }
  55.         } else return FALSE;
  56.       } else return FALSE;
  57.     }
  58.      public static function addEndereco($endereco)
  59.   {
  60.     try 
  61.     {
  62.       TTransaction::open('centinel');
  63.       $add_endereco = new Endereco;
  64.       $add_endereco->cep          = (string)str_replace('-','',$endereco->cep);
  65.       $add_endereco->logradouro   = (string)$endereco->logradouro;
  66.       $add_endereco->bairro       = (string)$endereco->bairro;
  67.       $add_endereco->cidade       = (string)$endereco->localidade;
  68.       $add_endereco->uf           = (string)$endereco->uf;
  69.       $add_endereco->codigo_ibge  = (string)$endereco->ibge;
  70.       $add_endereco->gia          = (string)$endereco->gia;
  71.       $add_endereco->store();
  72.       TTransaction::close();         
  73.     }
  74.      catch (Exception $e) {
  75.       new TMessage('error'$e->getMessage());
  76.     }
  77.   }
  78. }
  79. ?>

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (3)


RB

Esqueci de postar o form

Segue abaixo

  1. <?php
  2. class ClienteFisicoBuilder extends TPage
  3. {
  4.     protected $form;
  5.     protected $table_contato;
  6.     protected $frame_contato;
  7.     protected $deta_row;
  8.     protected $deta_row_1;
  9.     protected $table_endereco;
  10.     protected $frame_endereco;
  11.     protected $cep;
  12.     
  13.     public function __construct($param){
  14.         parent::__construct($param);
  15.         parent::include_css('app/resources/builder.css');
  16.         
  17.         $this->form = new BootstrapFormBuilder('frm_cliente_fisico');
  18.         $this->form->setFormTitle('Cliente');
  19.         $this->form->class='frm_cliente_fisico';
  20.         
  21.         $dados_cliente        = new TLabel('Dados Pessoais');
  22.         $dados_cliente->class ='lbl_titulo';
  23.         $this->form->addContent( [$dados_cliente] );
  24.         
  25.         $lbl_id = new TLabel('#');
  26.         $id     = new TEntry('id');
  27.         $id->setEditable(false);
  28.         
  29.         $label_nome = new TLabel('Nome');
  30.         $nome       = new TEntry('nome');
  31.         $nome->addValidation('Nome', new TRequiredValidator);
  32.         
  33.         $lbl_data_nascto = new TLabel('Data Nascimento');
  34.         $data_nascimento = new TDate('data_nascimento');
  35.         $data_nascimento->addValidation('Data Nascimento', new TRequiredValidator);
  36.         $data_nascimento->setMask('dd/mm/yyyy'); // define date mask
  37.         
  38.         $lbl_estado_civil = new TLabel('Estado Cí­vil');
  39.         $estado_civil     = new TDBCombo('estado_civil_id','centinel''Civil''id''descricao');
  40.         $estado_civil->setDefaultOption(false);
  41.         
  42.         $lbl_genero = new TLabel('Genero');
  43.         
  44.         $items = array();
  45.         $items['1'] ='Masculino';
  46.         $items['2'] ='Feminino';
  47.         $genero_id  = new TCombo('genero_id');
  48.         $genero_id->addItems($items);
  49.         $genero_id->setDefaultOption(false);
  50.         
  51.         $lbl_id_cep = new TLabel('lbl_id_cep');
  52.         $lbl_cpf    = new TLabel('CPF');
  53.         $cpf        = new TEntry('cpf');
  54.         $cpf->setMask('000.000.000.00');
  55.         $cpf->addValidation('CPF', new TCPFValidator, new TMaxValueValidator,array(14));
  56.         
  57.         $lbl_rg = new TLabel('RG');
  58.         $rg = new TEntry('rg');
  59.         $rg->setMask('00.000.000.00');
  60.         $rg->setMaxLength(12);
  61.         /*
  62.          $lbl_cnh = new TLabel('CNH','#1F4E78');
  63.          $cnh = new TEntry('cnh');
  64.          $cnh->setMask('00.000.000.00');
  65.          $cnh->setMaxLength(12);
  66.          $lbl_cnh->style='text-align:left;float:left;';
  67.          */
  68.         $lbl_etnia  = new TLabel('Etnia');
  69.         $etnia_id   = new TDBCombo('etnia_id','centinel','Etnia','id','descricao');
  70.         $etnia_id->setDefaultOption(false);
  71.         
  72.         //adiciona campos ao formulário
  73.         $this->form->addFields( [$lbl_id,$label_nome,$lbl_data_nascto,$lbl_estado_civil] );
  74.         $this->form->addFields( [$id,$nome,$data_nascimento,$estado_civil] );
  75.         $this->form->addFields( [$lbl_genero,$lbl_etnia,$lbl_cpf,$lbl_rg] );
  76.         $this->form->addFields( [$genero_id,$etnia_id,$cpf,$rg] );
  77.         
  78.         //cria dados de contato
  79.         $contato = new TLabel('Contato');
  80.         $contato->class='lbl_titulo';
  81.         
  82.         $lbl_ddi = new TLabel('DDI');
  83.         $lbl_dd = new TLabel('DDD');
  84.         $lbl_tipo_telefone = new TLabel('Tipo Telefone');
  85.         $lbl_telefone = new TLabel('Telefone');
  86.         $lbl_operadora = new TLabel('Operadora');
  87.         
  88.         $lbl_email = new TLabel('Email');
  89.         $email     = new TEntry('email');
  90.         //$email->addValidation('email', new TEmailValidator); // email field
  91.         
  92.         $lbl_site = new TLabel('Site');
  93.         $site     = new TEntry('site');
  94.         
  95.         //Cria tabela contato adiciona campos
  96.         $this->table_contato = new TTable('table_contato');
  97.         //$this->table_contato->style='font-family:Arial Narrow;';
  98.         $this->table_contato->width='100%';
  99.         $this->table_contato->addSection('thead');
  100.         
  101.         $this->frame_contato = new TFrame;
  102.         $this->frame_contato->style='border:none;float:lef; margin-left:-15px;';
  103.         //$frame_contato->setLegend('Contato');
  104.         $this->frame_contato->add($contato);
  105.         $this->frame_contato->add($this->table_contato);
  106.         $this->table_contato->addRowSet([$lbl_ddi,$lbl_dd,$lbl_tipo_telefone,$lbl_telefone,$lbl_operadora]);
  107.         $this->form->addContent([$this->frame_contato]);
  108.         
  109.         //adiciona contato web
  110.         $this->form->addFields( [$lbl_email,$lbl_site] );
  111.         $this->form->addFields( [$email,$site] );
  112.         
  113.         //cria dados de correspondência
  114.         $lbl_endereco = new TLabel('Endereco');
  115.         $lbl_endereco->class='lbl_titulo';
  116.         
  117.         $lbl_cep              = new TLabel('Cep');
  118.         $lbl_id_cep           = new TLabel('#');
  119.         $lbl_logradouro       = new TLabel('Logradouro');
  120.         $lbl_bairro           = new TLabel('Bairro');
  121.         $lbl_cidade           = new TLabel('Cidade');
  122.         $lbl_uf               = new TLabel('UF');
  123.         $lbl_tipo_endereco_id = new TLabel('Tipo Endereco');
  124.         $lbl_numero           = new TLabel('Número');
  125.         $lbl_complemento      = new TLabel('Complemento');
  126.         
  127.         $this->detail_row   0;
  128.         $this->detail_row_1 0;
  129.         
  130.         $this->table_endereco = new TTable();
  131.         $this->table_endereco->width ='100%';
  132.         $this->table_endereco->addSection('thead');
  133.         
  134.         $this->frame_endereco = new TFrame;
  135.         $this->frame_endereco->style ='border:none;float:lef; margin-left:-15px;';
  136.         $this->frame_endereco->add($lbl_endereco);
  137.         $this->frame_endereco->add($this->table_endereco);
  138.         $this->table_endereco->addRowSet([$lbl_id_cep,$lbl_cep,$lbl_logradouro,$lbl_bairro,$lbl_cidade,$lbl_uf,$lbl_tipo_endereco_id,$lbl_numero,$lbl_complemento]);
  139.         $this->form->addContent([$this->frame_endereco]);
  140.         
  141.         $lbl_id->class='lbl_text';
  142.         $label_nome->class='lbl_text';
  143.         $lbl_data_nascto->class='lbl_text';
  144.         $lbl_estado_civil->class='lbl_text';
  145.         $lbl_genero->class='lbl_text';
  146.         $lbl_cpf->class='lbl_text';
  147.         $lbl_rg->class='lbl_text';
  148.         $lbl_etnia->class='lbl_text';
  149.         $lbl_ddi->class='lbl_text';
  150.         $lbl_dd->class='lbl_text';
  151.         $lbl_tipo_telefone->class='lbl_text';
  152.         $lbl_telefone->class='lbl_text';
  153.         $lbl_operadora->class='lbl_text';
  154.         $lbl_email->class='lbl_text';
  155.         $lbl_site->class='lbl_text';
  156.         $lbl_cep->class='lbl_text';
  157.         $lbl_id_cep->class='lbl_text';
  158.         $lbl_logradouro->class='lbl_text';
  159.         $lbl_bairro->class='lbl_text';
  160.         $lbl_bairro->class='lbl_text';
  161.         $lbl_cidade->class='lbl_text';
  162.         $lbl_uf->class='lbl_text';
  163.         $lbl_numero->class='lbl_text';
  164.         $lbl_tipo_endereco_id->class='lbl_text';
  165.         $lbl_complemento->class='lbl_text';
  166.         $id->class='tentry';
  167.         
  168.         $lbl_id->setSize('10%');
  169.         $label_nome->setSize('30%');
  170.         $lbl_data_nascto->setSize('20%');
  171.         $lbl_estado_civil->setSize('20%');
  172.         $lbl_genero->setSize('20%');
  173.         $lbl_cpf->setSize('20%');
  174.         $lbl_rg->setSize('20%');
  175.         $lbl_etnia->setSize('20%');
  176.         
  177.         $lbl_ddi->setSize('40');
  178.         $lbl_dd->setSize('40');
  179.         $lbl_tipo_telefone->setSize('100');
  180.         $lbl_telefone->setSize('100');
  181.         $lbl_email->setSize('42%');
  182.         $lbl_site->setSize('42%');
  183.         
  184.         $lbl_id_cep->setSize('30');
  185.         $lbl_cep->setSize('70');
  186.         $lbl_logradouro->setSize('150');
  187.         $lbl_bairro->setSize('150');
  188.         $lbl_cidade->setSize('150');
  189.         $lbl_uf->setSize('40');
  190.         $lbl_numero->setSize('70');
  191.         $lbl_complemento->setSize('150');
  192.         $lbl_tipo_endereco_id->setSize('100');
  193.         
  194.         $id->setSize('10%');
  195.         $nome->setSize('30%');
  196.         $data_nascimento->setSize('20%');
  197.         $estado_civil->setSize('20%');
  198.         $genero_id->setSize('20%');
  199.         $cpf->setSize('20%');
  200.         $rg->setSize('20%');
  201.         //$lbl_cnh->setSize('19%');
  202.         //$cnh->setSize('19%');
  203.         $etnia_id->setSize('20%');
  204.         $email->setSize('42%');
  205.         $site->setSize('42%');
  206.         
  207.         $table_endereco = new TTable;
  208.         $table_endereco->style ='border 1px solid #333;';
  209.         $table_endereco->width ='100%';
  210.         $table_endereco->addSection('thead');
  211.         $table_endereco->addSection('tbody');
  212.         
  213.         $this->form->addAction('Salvar', new TAction(array($this'onSave')), 'ico_save.png');
  214.         $this->form->addAction('Listar', new TAction(array('DatagridCheckView''onReload')), 'fa:table blue');
  215.         
  216.         //wrap the page content using vertical box
  217.         $vbox = new TVBox;
  218.         $vbox->add(new TXMLBreadCrumb('menu.xml''DatagridCheckView'));
  219.         $vbox->add($this->form);
  220.         
  221.         parent::add($vbox);
  222.     }
  223.     public function addEnderecoRow($endereco)
  224.     {
  225.         $uniqid mt_rand(10000009999999);
  226.         /*
  227.          $btn_cep = new TButton('btn_cep');
  228.          $btn_cep->setSize(42);
  229.          $btn_cep->setAction(new TAction(array($this,'onCep')),'');
  230.          $btn_cep->setImage('fa:search blue');
  231.          $this->form->addField($btn_cep);
  232.          */
  233.         
  234.         $this->cep = new TEntry('cep[]');
  235.         $this->cep->setMask('00000-000');
  236.         $this->cep->addValidation('CEP', new TRequiredValidator, new TMaxValueValidator,array(8));
  237.         $this->form->addField($this->cep);
  238.         
  239.         $input_cep = new TAction(array($this,'onCep'));
  240.         $this->cep->setExitAction($input_cep);
  241.         
  242.         if (!empty($endereco->cep))
  243.         {
  244.           print_r($endereco);
  245.            // $this->cep->setValue($endereco->cep);
  246.         }
  247.         
  248.         $id_endereco = new TEntry('id_endereco[]');
  249.         $id_endereco->setEditable(false);
  250.         
  251.         if (!empty($endereco->id))
  252.         {
  253.             $id_endereco->setValue($endereco->id);
  254.         }
  255.         
  256.         $logradouro  = new TEntry('logradouro[]');
  257.         
  258.         if (!empty($endereco->logradouro))
  259.         {
  260.             $logradouro->setValue($endereco->logradouro);
  261.         }
  262.         
  263.         $bairro  = new TEntry('bairro[]');
  264.         
  265.         if (!empty($endereco->bairro))
  266.         {
  267.             $bairro->setValue($endereco->bairro);
  268.         }
  269.         
  270.         $cidade  = new TEntry('cidade[]');
  271.         
  272.         if (!empty($endereco->cidade))
  273.         {
  274.             $cidade->setValue($endereco->cidade);
  275.         }
  276.         
  277.         $uf = new TEntry('uf[]');
  278.         
  279.         if (!empty($endereco->uf))
  280.         {
  281.             $uf->setValue($endereco->uf);
  282.         }
  283.         
  284.         $numero = new TEntry('numero[]');
  285.         
  286.         if (!empty($endereco->numero))
  287.         {
  288.             $numero->setValue($endereco->numero);
  289.         }
  290.         
  291.         $tipo_endereco_id   = new TDBCombo('tipo_endereco_id[]','centinel','TipoEndereco','id','descricao');
  292.         $tipo_endereco_id->setDefaultOption(false);
  293.         if (!empty($endereco->tipo_endereco_id))
  294.         {
  295.             $tipo_endereco_id->setValue($endereco->tipo_endereco_id);
  296.         }
  297.         
  298.         $complemento  = new TEntry('compl[]');
  299.         
  300.         if (!empty($endereco->complemento))
  301.         {
  302.             $complemento->setValue($endereco->complemento);
  303.         }
  304.         
  305.         // set row counter
  306.         $this->cep->{'data-row_1'}        = $this->detail_row_1;
  307.         $id_endereco->{'data-row_1'}      = $this->detail_row_1;
  308.         $logradouro->{'data-row_1'}       = $this->detail_row_1;
  309.         $bairro->{'data-row_1'}           = $this->detail_row_1;
  310.         $cidade->{'data-row_1'}           = $this->detail_row_1;
  311.         $numero->{'data-row_1'}           = $this->detail_row_1;
  312.         $uf->{'data-row_1'}               = $this->detail_row_1;
  313.         $tipo_endereco_id->{'data-row_1'} = $this->detail_row_1;
  314.         $complemento->{'data-row_1'}      = $this->detail_row_1;
  315.         
  316.         //set ids
  317.         //$btn_cep       ->setId('btn_cep)'.$uniqid);
  318.         $this->cep       ->setId('cep_'.$uniqid);
  319.         $id_endereco     ->setId('id_endereco_'.$uniqid);
  320.         $logradouro      ->setId('logradouro_'.$uniqid);
  321.         $bairro          ->setId('bairro_'.$uniqid);
  322.         $cidade          ->setId('cidade_'.$uniqid);
  323.         $uf              ->setId('uf_'.$uniqid);
  324.         $numero          ->setId('numero_'.$uniqid);
  325.         $tipo_endereco_id->setId('tipo_endereco_id_'.$uniqid);
  326.         $complemento->setId('compl_'.$uniqid);
  327.         
  328.         // create delete button
  329.         $del_endereco = new TImage('fa:trash-o blue');
  330.         $del_endereco->onclick 'ttable_remove_row(this)';
  331.         
  332.         $row_end $this->table_endereco->addRowSet([$id_endereco,$this->cep,$logradouro,$bairro,$cidade,$uf,$tipo_endereco_id,$numero,$complemento,$del_endereco]);
  333.         $row_end->{'data-row'} = $this->detail_row_1;
  334.         
  335.         $id_endereco->setSize('30');
  336.         $this->cep->setSize('70');
  337.         $logradouro->setSize('150');
  338.         $bairro->setSize('150');
  339.         $cidade->setSize('150');
  340.         $uf->setSize('40');
  341.         $numero->setSize('70');
  342.         $complemento->setSize('150');
  343.         $tipo_endereco_id->setSize('100');
  344.         
  345.         $this->detail_row_1 ++;
  346.     }
  347. public function onClear($param)
  348.     {
  349.         $this->table_contato->addSection('tbody');
  350.         $this->addContatoRow(new stdClass);
  351.         
  352.         //criar e adicionar botão
  353.         $add = new TButton('addContact');
  354.         $add->setLabel('Adicionar');
  355.         $add->setImage('fa:plus-circle blue');
  356.         $add->addFunction('ttable_clone_previous_row(this)');
  357.         
  358.         //adiciona botão a tabela
  359.         $row $this->table_contato->addRowSet([$add]);
  360.         
  361.         //adciona tabela endereco
  362.         $this->table_endereco->addSection('tbody');
  363.         $this->addEnderecoRow(new stdClass);
  364.         
  365.         //criar e adicionar botão
  366.         $add_endereco = new TButton('addEnder');
  367.         $add_endereco->setLabel('Adicionar');
  368.         $add_endereco->setImage('fa:plus-circle blue');
  369.         $add_endereco->addFunction('ttable_clone_previous_row(this)');
  370.         
  371.         //adiciona botão a tabela
  372.         $row_end $this->table_endereco->addRowSet([$add_endereco]);
  373.     }
  374.     
  375.     public function onEdit($param)
  376.     {
  377.         try {
  378.             if (isset($param['key']))
  379.             {
  380.                 // open a transaction with database 'samples'
  381.                 TTransaction::open('centinel');
  382.                 $key $param['key'];
  383.                 $cliente Cliente::find($key);
  384.                 $clientes $cliente->get_pessoa();
  385.                 $clientes->data_nascimento TDate::date2br($clientes->data_nascimento);
  386.                 $contatos $cliente->get_pessoa()->get_contato();
  387.                 if ($clientes)
  388.                 {
  389.                     $clientes->cpf   $cliente->fisica->cpf;
  390.                     $clientes->rg    $cliente->fisica->rg;
  391.                     $clientes->email $cliente->email;
  392.                     $clientes->site  $cliente->site;
  393.                                     
  394.                 $this->table_contato->addSection('tbody');
  395.                 if ($contatos
  396.                 {
  397.                   foreach ($contatos as $contato)
  398.                     {
  399.                         $this->addContatoRow($contato);
  400.                     }
  401.                   //criar e adicionar botão
  402.                   $add = new TButton('addContact');
  403.                   $add->setLabel('Adicionar');
  404.                   $add->setImage('fa:plus-circle blue');
  405.                   $add->addFunction('ttable_clone_previous_row(this)');
  406.                   
  407.                   //adiciona botão a tabela
  408.                   $row $this->table_contato->addRowSet([$add]);
  409.                 }
  410.                 else
  411.                 {
  412.                   $this->onClear($param);
  413.                 }
  414.                 //carrega endereços do cliente
  415.                 $this->table_endereco->addSection('tbody');
  416.                 $endereco =  $cliente->get_pessoa()->get_pessoa_endereco();
  417.                 if ($endereco
  418.                 {
  419.                     
  420.                 //verificando dados de retorno e printando na tela
  421.                 foreach ($endereco as $enderecos)
  422.                   {
  423.                     print_r($enderecos->endereco->cep.'-'.$enderecos->endereco->logradouro'-'.$enderecos->enderecos->bairro.'-'.$enderecos->endereco->cidade.'<br>');
  424.                    
  425.                   } 
  426.                   foreach ($endereco as $enderecos)
  427.                   {
  428.                     $clientes->cep $enderecos->endereco->cep//aqui não consigo carregar os dados no form
  429.                     $this->addEnderecoRow($enderecos);
  430.                   }                
  431.                   //adciona tabela endereco
  432.                   $this->table_endereco->addSection('tbody');
  433.                   $this->addEnderecoRow(new stdClass);
  434.                   
  435.                   //criar e adicionar botão
  436.                   $add_endereco = new TButton('addEnder');
  437.                   $add_endereco->setLabel('Adicionar');
  438.                   $add_endereco->setImage('fa:plus-circle blue');
  439.                   $add_endereco->addFunction('ttable_clone_previous_row(this)');
  440.                   
  441.                   //adiciona botão a tabela
  442.                   $row_end $this->table_endereco->addRowSet([$add_endereco]);                 
  443.                 }
  444.                 else
  445.                 {
  446.                   $this->onClear($param);
  447.                 }
  448.                 
  449.                 $clientes->id $key;
  450.                 $this->form->setData($clientes);
  451.                 // close the transaction
  452.                 TTransaction::close();
  453.             }
  454.           }
  455.             
  456.         } 
  457.         catch (Exception $e
  458.         {
  459.             // shows the exception error message
  460.             new TMessage('error''<b>Error</b> ' $e->getMessage());
  461.             
  462.             // undo all pending operations
  463.             TTransaction::rollback();
  464.         }
  465.     }
  466. }
  467. ?>
NR

Não sei se entendi exatamente qual a sua dúvida, mas se for para preencher os dados de endereço após preencher o cep veja o link abaixo:
adianti.com.br/framework_files/tutor/index.php?class=SaleMultiValueF
RB

Nataniel,

O problema não era esse, mas já resolvi, valeu pela atenção.