AT
Fieldlist não carrega!!!
- <?php
- /*
- * EnderecoForm
- * @version 1.0
- * @package setcis
- * @author Antonio Augusto Tavares
- * @copyright Copyright (c) 2018 Setsoft - Consultoria e Informática Ltda
- */
- class EnderecoForm extends TPage
- {
- protected $form; // form
- protected $formfdl;
- protected $detail_row;
- protected $fieldlist;
- static $id_ent;
- static $actEnd;
- static $arrLogra;
- // Creates the page and the registration form
- function __construct($param)
- {
- parent::__construct();
- parent::include_js('app/lib/include/application.js');
- $this->form = new TForm('form_endereco');
- // cria fieldlist
- $this->fieldlist = new TFieldList;
- $this->fieldlist->width = '100%';
- $this->fieldlist->name = 'fdlEndereco';
- $this->form->add($this->fieldlist);
- // define campos
- $id = new TEntry('list_id[]');
- $enderecos_id = new TDBCombo('list_enderecos_id[]', 'setcis', 'Enderecos', 'id', 'descricao', 'descricao asc');
- $cep = new TEntry('list_cep[]');
- $logradouros_id = new TDBCombo('list_logradouros_id[]', 'setcis', 'Logradouros', 'id', 'descricao', 'descricao asc');
- $endereco = new TEntry('list_endereco[]');
- $numero = new TEntry('list_numero[]');
- $complemento = new TEntry('list_complemento[]');
- $bairro = new TEntry('list_bairro[]');
- $cidade_id = new TDBCombo('list_cidade_id[]', 'setcis', 'Municipio', 'id', 'nome', 'nome asc');
- $estado_id = new TDBCombo('list_estado_id[]', 'setcis', 'Estado', 'id', 'sigla', 'sigla asc');
- $actEnd = new TCombo('list_action');
- $entidade_id = new THidden('list_entidade_id[]');
- // Tamanhos
- $id->setSize('100%');
- $enderecos_id->setSize('100%');
- $cep->setSize('100%');
- $logradouros_id->setSize('100%');
- $endereco->setSize('100%');
- $numero->setSize('100%');
- $complemento->setSize('100%');
- $bairro->setSize('100%');
- $cidade_id->setSize('100%');
- $estado_id->setSize('100%');
- $actEnd->setSize('100%');
- // styles
- $cep->style="background-color: #ffff99; text-align: left";
- $numero->style="text-align: center";
- $complemento->style = 'text-transform: uppercase';
- // define ações
- $items = ['1'=>'SALVAR', '2'=>'EXCLUIR', '3'=>'SUCESSO', '4'=>'MAPA'];
- $actEnd->addItems($items);
- $actEnd->setValue('1');
- $id->setEditable(FALSE);
- //$( "#id" ).prop( "disabled", true );
- $cep->setExitAction(new TAction(array($this, 'onCep')));
- $change_action = new TAction(array($this, 'onDefine'));
- $actEnd->setChangeAction($change_action);
- $change_cidade_id = new TAction(array($this, 'onDetalhes'));
- $cidade_id->setChangeAction($change_cidade_id);
- // monta fieldlist
- $this->fieldlist->addField( 'ID', $id, ['width' => '4%']);
- $this->fieldlist->addField( 'Tipo', $enderecos_id, ['width' => '6%']);
- $this->fieldlist->addField( 'Cep', $cep, ['width' => '6%']);
- $this->fieldlist->addField( 'Logradouro', $logradouros_id, ['width' => '6%']);
- $this->fieldlist->addField( 'Endereco', $endereco, ['width' => '18%']);
- $this->fieldlist->addField( 'Número', $numero, ['width' => '5%']);
- $this->fieldlist->addField( 'Complemento', $complemento, ['width' => '10%']);
- $this->fieldlist->addField( 'Bairro', $bairro, ['width' => '10%']);
- $this->fieldlist->addField( 'Cidade', $cidade_id, ['width' => '10%']);
- $this->fieldlist->addField( 'Estado', $estado_id, ['width' => '4%']);
- $this->fieldlist->addField( 'Salvar/Excluir', $actEnd, ['width' => '2%']);
- $this->fieldlist->addField( '', $entidade_id);
- $this->fieldlist->width = '100%';
- // adiciona campos no form
- $this->form->addField($id);
- $this->form->addField($enderecos_id);
- $this->form->addField($cep);
- $this->form->addField($logradouros_id);
- $this->form->addField($endereco);
- $this->form->addField($numero);
- $this->form->addField($complemento);
- $this->form->addField($bairro);
- $this->form->addField($cidade_id);
- $this->form->addField($estado_id);
- $this->form->addField($actEnd);
- $this->form->addField($entidade_id);
- // create the page container
- $container = new TVBox;
- $container->style = 'width: 100%';
- $container->add($this->form);
- parent::add($container);
- $this->onLoad($param);
- }
- /* // metodo show() - mostra os dados na pagina
- public function show()
- {
- if (!$this->loaded AND (!isset($_GET['method']) OR $_GET['method'] !== 'onLoad') )
- {
- $this->onLoad(0);
- }
- parent::show();
- }
- */
- // metodo carga do fieldlist
- function onLoad($param)
- {
- try
- {
- TTransaction::open('setcis');
- //var_dump($param);
- $id_ent = $param; //TSession::getValue('id_entidade');
- if ($id_ent != 0)
- {
- $objEndereco = EntidadeEndereco::where('entidade_id', '=', $id_ent)->load();
- if ($objEndereco)
- {
- $this->fieldlist->addHeader();
- foreach ($objEndereco as $end)
- {
- $objForm = new stdClass;
- $objForm->list_id = $end->id;
- $objForm->list_enderecos_id = $end->enderecos_id;
- $objForm->list_cep = $end->cep;
- $objForm->list_logradouros_id = $end->logradouros_id;
- $objForm->list_endereco = $end->endereco;
- $objForm->list_numero = $end->numero;
- $objForm->list_complemento = $end->complemento;
- $objForm->list_bairro = $end->bairro;
- $objForm->list_cidade_id = $end->cidade_id;
- $objForm->list_estado_id = $end->estado_id;
- $row = $this->fieldlist->addDetail($objForm);
- $row->del($row->get(count($row->getChildren())-1));
- }
- $row = $this->fieldlist->addDetail( new stdClass );
- $row->del($row->get(count($row->getChildren())-1));
- }
- else
- {
- $row = $this->fieldlist->addDetail( new stdClass );
- $row->del($row->get(count($row->getChildren())-1));
- }
- }
- else
- {
- $this->fieldlist->addHeader();
- $row = $this->fieldlist->addDetail( new stdClass );
- $row->del($row->get(count($row->getChildren())-1));
- }
- TTransaction::close();
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- TTransaction::rollback();
- }
- }
meus caros...bom dia...
Se alguém puder me ajudar, fico muito grato!!!
Aqui funcionou sem problemas, única diferença é que passei dados diretamente ao invés de buscar no banco de dados.
Alguns detalhes:
Boa noite... Nataniel
Obrigado pelo retorno, o erro não esta no $id_ent = $param, os objetos do endereco são carregados normalmente usando este $id_ent, tanto que enviei um var_dump do resultado, o foreach funciona normal apenas não carrega o fieldlist, gosto muito de usar este objeto, fiz umas adaptações e está atendendo muito bem,
mas neste caso não funciona, se tiver alguma outra idéia por favor retorne.
('app/lib/include/application.js'); este app/lib/include deve ficar dentro do projeto ?
[] obrigado