Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Multivalues não carrega ( estou utilizando mais de um) Olá, Estou tentando utilizar mais de um multivalues no formulário, porém o segundo não carrega, alguém pode me ajudar a identificar o problema . Segue código abaixo. ...
RB
Multivalues não carrega ( estou utilizando mais de um)  
Olá,

Estou tentando utilizar mais de um multivalues no formulário, porém o segundo não carrega, alguém pode me ajudar a identificar o problema .

Segue código abaixo.

  1. <?php
  2. class FuncionarioFormBuilder extends TPage
  3. {
  4.     private $form;
  5.     private $cep;
  6.     private $fieldlist;
  7.     private $dependenteList;
  8.     protected $detail_row;
  9.     protected $detail_row_1;
  10.     function __construct()
  11.     {
  12.         parent::__construct();
  13.         parent::include_css('app/resources/builder.css');
  14.         parent::include_css('app/resources/blue_modificado.css');
  15.         $this->form = new BootstrapFormBuilder('frm_funcionario');
  16.         $this->form->setFormTitle('Funcionário');
  17.         $this->form->class ='frm_cliente_fisico';
  18.         $dados_func        = new TLabel('Dados Pessoais');
  19.         $dados_func->class ='lbl_titulo';
  20.         $this->form->addContent( [$dados_func] );
  21.         $lbl_id = new TLabel('#');
  22.         $id     = new TEntry('id');
  23.         $id->setEditable(false);
  24.         $label_nome      = new TLabel('Nome');
  25.         $lbl_data_nascto = new TLabel('Data Nascto');
  26.         $lbl_cpf  = new TLabel('Cpf');
  27.         $lbl_rg   = new TLabel('Rg');
  28.         $lbl_ctps = new TLabel('Ctps');
  29.         $lbl_local_nascto = new TLabel('Local Nascimento');
  30.         $lbl_estado_civil   = new TLabel('Estado Cí­vil');
  31.         $lbl_genero         = new TLabel('Genero');
  32.         $lbl_grau_instrucao = new TLabel('Grau de Instrução');
  33.         $lbl_nome_mae = new TLabel('Pai');
  34.         $lbl_nome_pai = new TLabel('Mãe');
  35.         $lbl_conjuge = new TLabel('Conjuge');
  36.         $nome               = new TEntry('nome');
  37.         $nome->style        ='text-transform: uppercase';        
  38.         $nome->addValidation('nome', new TRequiredValidator);
  39.         $local_nascto       = new TEntry('local_nascto');
  40.         $data_nascto        = new TDate('data_nascimento');
  41.         $data_nascto->addValidation('data_nascimento', new TRequiredValidator);
  42.         $cpf                = new TEntry('cpf');
  43.         $cpf->addValidation('cpf', new TRequiredValidator);
  44.         $rg                 = new TEntry('rg');
  45.         $rg->addValidation('rg', new TRequiredValidator);
  46.         $ctps               = new TEntry('ctps');        
  47.         $estado_civil_id    = new TDBCombo('estado_civil_id','centinel''Civil''id''descricao');
  48.         $estado_civil_id->setDefaultOption(false);        
  49.         $grau_instrucao    = new TEntry('grau_instrucao');
  50.         $nome_mae           = new TEntry('nome_mae');
  51.         $nome_pai           = new TEntry('nome_pai');        
  52.         $genero_id          = new TDBCombo('genero_id','centinel','Genero','id','descricao');
  53.         $genero_id->setDefaultOption(false);
  54.         $conjuge            = new TEntry('conjuge');
  55.         $label_nome->class='lbl_text';
  56.         $lbl_id->class='lbl_text';
  57.         $lbl_local_nascto->class='lbl_text';
  58.         $lbl_data_nascto->class='lbl_text';
  59.         $lbl_cpf->class='lbl_text';
  60.         $lbl_rg->class='lbl_text';
  61.         $lbl_ctps->class='lbl_text';
  62.         $lbl_nome_mae->class='lbl_text';
  63.         $lbl_nome_pai->class='lbl_text';
  64.         $lbl_estado_civil->class='lbl_text';
  65.         $lbl_grau_instrucao->class='lbl_text';
  66.         $lbl_genero->class='lbl_text';
  67.         $lbl_conjuge->class='lbl_text';
  68.         $lbl_id->setSize('6%');
  69.         $label_nome->setSize('41%');
  70.         $lbl_local_nascto->setSize('41%');
  71.         $lbl_data_nascto->setSize('12%');
  72.         $lbl_cpf->setSize('12%');
  73.         $lbl_rg->setSize('13%');
  74.         $lbl_ctps->setSize('13%');
  75.         $lbl_estado_civil->setSize('23.5%');
  76.         $lbl_genero->setSize('23.5%');
  77.         $lbl_grau_instrucao->setSize('25%');
  78.         $lbl_conjuge->setSize('28%');
  79.         $lbl_nome_mae->setSize('47%');
  80.         $lbl_nome_pai->setSize('50%');
  81.         $id->setSize('6%');
  82.         $nome->setSize('41%');
  83.         $local_nascto->setSize('41%');
  84.         $data_nascto->setSize('12%');
  85.         $cpf->setSize('12%');
  86.         $rg->setSize('13%');
  87.         $ctps->setSize('13%');
  88.         $estado_civil_id->setSize('23.5%');
  89.         $genero_id->setSize('23.5%');
  90.         $grau_instrucao->setSize('25%');
  91.         $conjuge->setSize('28%');
  92.         $nome_mae->setSize('47%');
  93.         $nome_pai->setSize('53%');  
  94.         $this->form->addFields( [$lbl_id,$label_nome,$lbl_local_nascto,$lbl_data_nascto] );
  95.         $this->form->addFields( [$id,$nome,$local_nascto,$data_nascto] ); 
  96.         $this->form->addFields( [$lbl_estado_civil,$lbl_genero,$lbl_grau_instrucao,$lbl_conjuge] );
  97.         $this->form->addFields( [$estado_civil_id,$genero_id,$grau_instrucao,$conjuge] );  
  98.         $this->form->addFields( [$lbl_nome_mae,$lbl_nome_pai] );
  99.         $this->form->addFields( [$nome_mae,$nome_pai] );
  100.         //dados correspondências
  101.         $dados_endereco        = new TLabel('Endereco');
  102.         $dados_endereco->class ='lbl_titulo';
  103.         $this->form->addContent( [$dados_endereco] );
  104.         $frame_endereco = new TFrame('frame_endereco');
  105.         $frame_endereco->style 'margin-left:-1px;width:98.5%;float:left;display:table;';
  106.         //$frame_endereco->setLegend('PessoaEndereco');
  107.         // detail fields
  108.         $this->fieldlist = new TFieldList('Lista_enderecos');
  109.         $this->fieldlist->enableSorting();
  110.         $frame_endereco->add($this->fieldlist);
  111.         $this->form->addFields( [$frame_endereco] );
  112.         
  113.         $id_endereco      = new TEntry('id_endereco[]'); 
  114.         $this->cep        = new TEntry('cep[]');
  115.         $this->cep->setMask('00000-000');
  116.         $this->cep->addValidation('CEP', new TRequiredValidator, new TMaxValueValidator,array(8));
  117.         $this->form->addField($this->cep);
  118.        // $input_cep = new TAction(array($this,'onCep'));
  119.         $this->cep->setExitAction(new TAction(array($this,'onCep')));
  120.         $logradouro       = new TEntry('logradouro[]');
  121.         $numero           = new TEntry('numero[]');
  122.         $bairro           = new TEntry('bairro[]');   
  123.         $cidade           = new TEntry('cidade[]');  
  124.         $uf               = new TEntry('uf[]');   
  125.         $tipo_endereco_id = new TDBCombo('tipo_endereco_id[]','centinel','TipoEndereco','id','descricao');
  126.         $complemento      = new TEntry('complemento[]');
  127.         $regiao_id        = new TDBCombo('regiao_id[]','centinel','Regiao','id','descricao');
  128.         $this->fieldlist->addField'<span class = "lbl_text">#</span>'$id_endereco);
  129.         $this->fieldlist->addField'<span class = "lbl_text">Cep</span>'$this->cep);
  130.         $this->fieldlist->addField'<span class = "lbl_text">Logradouro</span>'$logradouro);
  131.         $this->fieldlist->addField'<span class = "lbl_text">Número<span/>'$numero);
  132.         $this->fieldlist->addField'<span class = "lbl_text">Tipo Endereco</span>'$tipo_endereco_id);
  133.         $this->fieldlist->addField'<span class = "lbl_text">Bairro</span>'$bairro);
  134.         $this->fieldlist->addField'<span class = "lbl_text">Cidade</span>'$cidade);
  135.         $this->fieldlist->addField'<span class = "lbl_text">UF</span>'$uf);
  136.         $this->fieldlist->addField'<span class = "lbl_text">Complemento</span>'$complemento);
  137.         $this->fieldlist->addField'<span class = "lbl_text">Região</span>'$regiao_id);
  138.         $this->form->addField($id_endereco);
  139.         $this->form->addField($logradouro);
  140.         $this->form->addField($numero);
  141.         $this->form->addField($bairro);
  142.         $this->form->addField($tipo_endereco_id);
  143.         $this->form->addField($cidade);
  144.         $this->form->addField($uf);
  145.         $this->form->addField($complemento);
  146.         $this->form->addField($regiao_id);  
  147.         
  148.         $id_endereco->setSize('30');
  149.         $this->cep->setSize('70');
  150.         $logradouro->setSize('160');
  151.         $bairro->setSize('140');
  152.         $cidade->setSize('140');
  153.         $uf->setSize('40');
  154.         $numero->setSize('70');
  155.         $complemento->setSize('150');
  156.         $tipo_endereco_id->setSize('100');
  157.         //Relação de dependentes
  158.         $dados_dependente        = new TLabel('Dependentes');
  159.         $dados_dependente->class ='lbl_titulo';
  160.         $this->form->addContent( [$dados_dependente] );
  161.         $frame_dependentes = new TFrame('frame_dependentes');
  162.         $frame_dependentes->style 'margin-left:-1px;width:98.5%;float:left;display:table;';
  163.         //$frame_endereco->setLegend('Dependentes');
  164.         // detail fields
  165.         $this->dependenteList = new TFieldList('Lista_dependentes');
  166.         $this->dependenteList->enableSorting();
  167.         
  168.         $nome_dependente            = new TEntry('txt_nome[]');
  169.         $nascimento_dependente      = new TEntry('txt_nascimento[]'); 
  170.         $grau_parentesco_dependente = new TEntry('txt_grau_parentesco[]');
  171.         $this->dependenteList->addField'<span class = "lbl_text">Nome</span>'$nome_dependente);
  172.         $this->dependenteList->addField'<span class = "lbl_text">Data Nascimento</span>',$nascimento_dependente);
  173.         $this->dependenteList->addField'<span class = "lbl_text">Grau Parentesco</span>'$grau_parentesco_dependente);
  174.         $frame_dependentes->add($this->dependenteList);
  175.         $this->form->addFields( [$frame_dependentes] );
  176.         $this->form->addField($nome_dependente);
  177.         $this->form->addField($nascimento_dependente);
  178.         $this->form->addField($grau_parentesco_dependente);
  179.         $this->form->addAction('Salvar',new TAction(array($this'onSave')),'fa:save blue');
  180.         $this->form->addAction('Listar',new TAction(array('CarregaCliente','show')),'fa:table blue');
  181.         // create the page container
  182.         $container = new TVBox;
  183.         $container->style 'width: 100%';
  184.         //$container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  185.         $container->add($this->form);
  186.         parent::add($container);
  187.     }
  188.     public function onSave($param){
  189.     }
  190.     /**
  191.      * Executed whenever the user clicks at the edit button da datagrid
  192.      */
  193.     function onEdit($param)
  194.     {
  195.         try
  196.         {
  197.             TTransaction::open('centinel');
  198.             
  199.             if (isset($param['key']))
  200.             {
  201.                 $key $param['key'];
  202.                 
  203.                 $funcionario Funcionario::find($key);
  204.                 if($funcionario)
  205.                 {
  206.                     $this->form->setData($funcionario);
  207.                     $funcionario->nome            $funcionario->pessoa->nome;
  208.                     $funcionario->data_nascimento TDate::date2br($funcionario->pessoa->data_nascimento);
  209.                 
  210.                     $pessoa_endereco $funcionario->get_pessoa()->getPessoaEndereco();
  211.                 
  212.                     $this->fieldlist->addHeader();
  213.                     if ($pessoa_endereco)
  214.                     {
  215.                         foreach($pessoa_endereco  as $enderecos )
  216.                         {
  217.                             $this->fieldlist->addDetail($enderecos);
  218.                         }
  219.                         $this->fieldlist->addCloneAction();
  220.                     }
  221.                     else
  222.                     {
  223.                         $this->onClear($param);
  224.                     }
  225.                 }
  226.                 
  227.                 TTransaction::close(); // close transaction
  228.             }
  229.         }
  230.         catch (Exception $e// in case of exception
  231.         {
  232.             new TMessage('error'$e->getMessage());
  233.             TTransaction::rollback();
  234.         }
  235.     }
  236.     public function onClear($param)
  237.     {
  238.         $this->fieldlist->addHeader();
  239.         $this->fieldlist->addDetail( new stdClass );
  240.         $this->fieldlist->addCloneAction();
  241.     }
  242.      //method onCep()
  243.     public static function onCep($param)
  244.     {
  245.         $endereco_cep   $param['_field_id'];
  246.         $cep_endereco   $param['_field_value'];
  247.         $endereco_cep   explode('_'$endereco_cep);
  248.         $unique_id      end($endereco_cep);
  249.         $retorno        Endereco::BuscaCepWeb($cep_endereco);
  250.         if (!empty($retorno))
  251.         {
  252.             $response = new stdClass;
  253.             $response->{'id_endereco_'.$unique_id}  = $retorno['id'];
  254.             $response->{'logradouro_'.$unique_id}   = $retorno['logradouro'];
  255.             $response->{'bairro_'.$unique_id}       = $retorno['bairro'];
  256.             $response->{'cidade_'.$unique_id}       = $retorno['localidade'];
  257.             $response->{'uf_'.$unique_id}           = $retorno['uf'];
  258.             //$response->{'ibge_'}.$unique_id         = strtoupper( $retorno['ibge']);
  259.             //$response->{'gia'}.$unique_id           = strtoupper( $retorno['gia']);
  260.             TForm::sendData('frm_funcionario'$response);
  261.             TScript::create('$("input[name=numero]").focus();');
  262.         }
  263.         else
  264.         {
  265.             $endereco Endereco::BuscaCepBanco($cep_endereco);
  266.             if($endereco)
  267.             {
  268.                 $retorno = new stdClass;
  269.                 $retorno->{'id_endereco_'.$unique_id} = $endereco['id'];
  270.                 $retorno->{'logradouro_'.$unique_id}  = $endereco['logradouro'];
  271.                 $retorno->{'bairro_'.$unique_id}      = $endereco['bairro'];
  272.                 $retorno->{'cidade_'.$unique_id}      = $endereco['cidade'];
  273.                 $retorno->{'uf_'.$unique_id}          = $endereco['uf'];
  274.                 //$retorno->{'ibge_'}.$unique_id         = $endereco['ibge'];
  275.                 //$retorno->{'gia'}.$unique_id           = $endereco['gia'];
  276.                 TForm::sendData('frm_funcionario'$retorno);
  277.                 TScript::create('$("input[name=numero]").focus();');
  278.             }
  279.             
  280.             else
  281.             {
  282.                 new TMessage("error""CEP - Em Branco ou Inválido");
  283.             }
  284.             
  285.         }
  286.     }
  287. }
  288. ?>


Desde já obrigado.

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


RB

Pessoal, Resolvido.

Estava esquecendo de adicionar no onClear().

segue código abaixo.

  1. <?php
  2. public function onClear($param)
  3.     {
  4.                 //endereços
  5.         $this->fieldlist->addHeader();
  6.         $this->fieldlist->addDetail( new stdClass );
  7.         $this->fieldlist->addCloneAction();
  8.         
  9.         //dependentes
  10.         $this->dependenteList->addHeader();
  11.         $this->dependenteList->addDetail( new stdClass );
  12.         $this->dependenteList->addCloneAction();
  13.     }
  14. ?>