GG
Visualização de Grid num notebook
Pessoal, estou com dificuldade de colocar um datagrid em um notebook. Acredito que a alimentação do mesmo está sendo feito corretamente. A visualização do mesmo que deve estar errada. Agradeço desde já a ajuda.
O datagrid fica na quarta aba (Funções em Uso) do notebook.
O datagrid fica na quarta aba (Funções em Uso) do notebook.
- <?php
- class pessoa_juridica_div_form_view extends TPage
- {
- private $form; // form
- private $contatos;
- private $oportunidade;
- private $gridfuncoesuso;
-
- /**
- * Class constructor
- * Creates the page and the registration form
- */
- function __construct()
- {
- parent::__construct();
-
- // creates the form
- $this->form_funcoesuso = new TQuickForm('form_funcoesuso');
- $this->form = new BootstrapFormBuilder('pessoa_juridica_div_form_view');
- $this->form->setFormTitle('Cadastro de Clientes');
-
- // create the form fields
- $code = new TEntry('id');
- $seq_tasy = new TEntry('nr_sequencia');
- $nm_fantasia = new TEntry('nm_fantasia');
- $nm_pessoa_juridica = new TEntry('nm_pessoa_juridica');
- $ds_email_pj = new TEntry('ds_email_pj');
- $ds_endereco = new TText('ds_endereco');
-
-
- // define some properties for the form fields
- $code->setEditable(FALSE);
- $seq_tasy->setSize('100%');
- $nm_fantasia->setSize('100%');
- $nm_pessoa_juridica->setSize('100%');
- $ds_email_pj->setSize('100%');
- $ds_endereco->setSize('100%');
- //-------------------------------------//------------------------------------- //-------------------------------------
- $this->form->appendPage('Cadastro Básico');
- $this->form->addFields( [ new TLabel('Code') ], [ $code ], [ new TLabel('Cd.Tasy') ], [ $seq_tasy ] );
- $this->form->addFields( [ new TLabel('Nome Fantasia') ], [ $nm_fantasia ] );
- $this->form->addFields( [ new TLabel('Razão Social') ], [ $nm_pessoa_juridica ] );
- $this->form->addFields( [ new TLabel('Email') ], [ $ds_email_pj ] );
- $this->form->addFields( [ new TLabel('Endereço') ], [ $ds_endereco ] );
-
- $this->form->addAction( 'Save', new TAction(array($this, 'onSave')), 'fa:save green' );
- $this->form->addAction( 'Clear', new TAction(array($this, 'onClear')), 'fa:eraser red' );
- $this->form->addAction( 'List', new TAction(array('pessoa_juridicaListv1', 'onReload')), 'fa:table blue' );
-
- //-------------------------------------//------------------------------------- //-------------------------------------
-
- $this->form->appendPage('Contatos');
- //$id_contato = new THidden('id_contato[]');
- //$id_contato->setSize('100%');
- $ds_contato = new TEntry('ds_contato[]');
- $ds_contato->setSize('100%');
-
- $ds_telefone = new TEntry('ds_telefone[]');
- $ds_telefone->setSize('100%');
- $ds_email = new TEntry('ds_email[]');
- $ds_email->setSize('100%');
-
-
- $this->pj_contatoss = new TFieldList;
- $this->pj_contatoss->addField( '<b>Contato</b>', $ds_contato);
- $this->pj_contatoss->addField( '<b>Telefone</b>', $ds_telefone);
- $this->pj_contatoss->addField( '<b>Email</b>', $ds_email);
- $this->form->addField($ds_contato);
- $this->form->addField($ds_telefone);
- $this->form->addField($ds_email);
- $this->pj_contatoss->enableSorting();
-
- $this->form->addContent( [ new TLabel('Contatos') ], [ $this->pj_contatoss ] );
- //-------------------------------------//------------------------------------- //-------------------------------------
- $this->form->appendPage('Oportunidades');
- //$id_contato = new THidden('id_contato[]');
- //$id_contato->setSize('100%');
- $nr_op_crm = new TEntry('nr_op_crm[]');
- $nr_op_crm->setSize('100%');
-
- $ds_op = new TEntry('ds_op[]');
- $ds_op->setSize('100%');
- $this->oportunidades = new TFieldList;
- $this->oportunidades->addField( '<b>NR.CRM</b>', $nr_op_crm);
- $this->oportunidades->addField( '<b>Descrição</b>', $ds_op);
- $this->form->addField($nr_op_crm);
- $this->form->addField($ds_op);
- $this->oportunidades->enableSorting();
-
- $this->form->addContent( [ new TLabel('Oportunidades') ], [ $this->oportunidades ] );
- //-------------------------------------//------------------------------------- //-------------------------------------
- //$this->form->appendPage('Funções em Uso');
-
- $this->gridfuncoesuso = new TQuickGrid;
- $this->gridfuncoesuso->setHeight(230);
- $this->gridfuncoesuso->addQuickColumn('Função', 'funcao_id', 'right', 40);
- $this->gridfuncoesuso->addQuickColumn('Acessos', 'qt_acessos', 'left', 40);
- $this->gridfuncoesuso->createModel();
- $this->form_funcoesuso->add($this->gridfuncoesuso);
- $this->form->appendPage('Funções em Uso',$this->form_funcoesuso);
- //$this->form_funcoesuso->add($this->datagrid);
- //$this->form->appendPage('Funções em Uso', $this->form_funcoesuso);
- //$this->form->addContent( [ new TLabel('Funções em Uso') ], [ $this->funcoes_usos ] );
- //-------------------------------------//------------------------------------- //-------------------------------------
- // wrap the page content
- $vbox = new TVBox;
- $vbox->add(new TXMLBreadCrumb('menu.xml', 'pessoa_juridicaListv1'));
- $vbox->add($this->form);
-
- // add the form inside the page
- parent::add($vbox);
- }
-
- /**
- * method onSave
- * Executed whenever the user clicks at the save button
- */
- public static function onSave($param)
- {
- try
- {
- // open a transaction with database 'samples'
- TTransaction::open('solicitacoes');
-
-
- // read the form data and instantiates an Active Record
- $pessoa_juridica = new pessoa_juridica;
- $pessoa_juridica->fromArray( $param );
-
- if( !empty($param['ds_contato']) AND is_array($param['ds_contato']) )
- {
- foreach( $param['ds_contato'] as $row => $ds_contato)
- {
- if ($ds_contato)
- {
- $pj_contatos = new pj_contatos;
- $pj_contatos->ds_contato = $param['ds_contato'][$row];
- $pj_contatos->ds_telefone = $param['ds_telefone'][$row];
- $pj_contatos->ds_email = $param['ds_email'][$row];
-
- // add the contact to the customer
- $pessoa_juridica->addpj_contatos($pj_contatos);
- }
- }
- }
- if( !empty($param['nr_op_crm']) AND is_array($param['nr_op_crm']) )
- {
- foreach( $param['nr_op_crm'] as $row => $nr_op_crm)
- {
- if ($nr_op_crm)
- {
- $oportunidade = new oportunidade;
- $oportunidade->nr_op_crm = $param['nr_op_crm'][$row];
- $oportunidade->ds_op = $param['ds_op'][$row];
-
- // add the contact to the customer
- $pessoa_juridica->addoportunidade($oportunidade);
- }
- }
- }
- // stores the object in the database
- $pessoa_juridica->store();
-
- $data = new stdClass;
- $data->id = $pessoa_juridica->id;
- TForm::sendData('pessoa_juridica_div_form_view', $data);
-
- // shows the success message
- new TMessage('info', 'Record saved');
-
- TTransaction::close(); // close the transaction
- }
- catch (Exception $e) // in case of exception
- {
- // shows the exception error message
- new TMessage('error', $e->getMessage());
-
- // undo all pending operations
- TTransaction::rollback();
- }
- }
-
- /**
- * method onEdit
- * Edit a record data
- */
- function onEdit($param)
- {
- try
- {
- if (isset($param['id']))
- {
- // open a transaction with database 'samples'
- TTransaction::open('solicitacoes');
-
- // load the Active Record according to its ID
- $pessoa_juridica = new pessoa_juridica($param['id']);
-
- // load the contacts (composition)
- $pj_contatoss = $pessoa_juridica->getpj_contatoss();
- $oportunidades = $pessoa_juridica->getoportunidades();
-
- if ($pj_contatoss)
- {
- $this->pj_contatoss->addHeader();
- foreach ($pj_contatoss as $pj_contatos)
- {
- $contato_detail = new stdClass;
- $contato_detail->ds_contato = $pj_contatos->ds_contato;
- $contato_detail->ds_telefone = $pj_contatos->ds_telefone;
- $contato_detail->ds_email = $pj_contatos->ds_email;
- $this->pj_contatoss->addDetail($contato_detail);
- }
-
- $this->pj_contatoss->addCloneAction();
- }
- else
- {
- $this->onClear_contatos($param);
- }
-
- if ($oportunidades)
- {
- $this->oportunidades->addHeader();
- foreach ($oportunidades as $oportunidade)
- {
- $oportunidade_detail = new stdClass;
- $oportunidade_detail->nr_op_crm = $oportunidade->nr_op_crm;
- $oportunidade_detail->ds_op = $oportunidade->ds_op;
- $this->oportunidades->addDetail($oportunidade_detail);
- }
-
- $this->oportunidades->addCloneAction();
- }
- else
- {
- $this->onClear_oportunidade($param);
- }
- // load the contacts (composition)
- $funcoes_usos = $pessoa_juridica->getFuncoesUsos();
- $items = array();
- $n = 0;
- if ($funcoes_usos)
- {
- //$this->funcoes_usos->addHeader();
- foreach ($funcoes_usos as $funcoes_uso)
- {
- $n = $n +1;
- $items[n] = $funcoes_uso->ds_funcao;
- }
- new TMessage('info', $n);
- $this->gridfuncoesuso->addItems($items);
- }
- // fill the form with the active record data
- $this->form->setData($pessoa_juridica);
-
- // close the transaction
- TTransaction::close();
- }
- else
- {
- $this->onClear($param);
- }
- }
- catch (Exception $e) // in case of exception
- {
- // shows the exception error message
- new TMessage('error', $e->getMessage());
-
- // undo all pending operations
- TTransaction::rollback();
- }
- }
-
- /**
- * Clear form
- */
- public function onClear($param)
- {
- //$this->form->clear();
-
- $this->pj_contatoss->addHeader();
- $this->pj_contatoss->addDetail( new stdClass );
- $this->pj_contatoss->addCloneAction();
-
- $this->oportunidades->addHeader();
- $this->oportunidades->addDetail( new stdClass );
- $this->oportunidades->addCloneAction();
-
- $this->funcoes_usos->addHeader();
- $this->funcoes_usos->addDetail( new stdClass );
- $this->funcoes_usos->addCloneAction();
- }
- /**
- * Clear form
- */
- public function onClear_contatos($param)
- {
- //$this->form->clear();
-
- $this->pj_contatoss->addHeader();
- $this->pj_contatoss->addDetail( new stdClass );
- $this->pj_contatoss->addCloneAction();
- }
- /**
- * Clear form
- */
- public function onClear_oportunidade($param)
- {
- //$this->form->clear();
-
- $this->oportunidades->addHeader();
- $this->oportunidades->addDetail( new stdClass );
- $this->oportunidades->addCloneAction();
- }
- }
Não é possível adicionar um form dentro de outro. Por qual motivo você quer adicionar um form específico pra grid?
Nataniel, na verdade só usei um código que havia encontrado aqui no grupo. Eu preciso acrescentar um grid no Notebook. Tentei de várias formas e ainda não consegui visualizar o grid no Notebook. Não gera nenhum erro. Mas tbem não visualizo o objeto.
Obrigado pela atenção.
Nataniel, na verdade só usei um código que havia encontrado aqui no grupo. Eu preciso acrescentar um grid no Notebook. Tentei de várias formas e ainda não consegui visualizar o grid no Notebook. Não gera nenhum erro. Mas tbem não visualizo o objeto.
Obrigado pela atenção.
A função appendPage da classe BootstrapFormBuilder só possui 1 parâmetro referente a descrição da aba. A datagrid deve ser adicionada posteriormente: