LG
Abrir form externo com dados de edicao
Fechado
Segundo a pagina : www.adianti.com.br/doc-framework-Presentation-Datagrid-DatagridCusto
Gostaria que a janela abrir os dados da tabela para edicao.
codigo:
Gostaria que a janela abrir os dados da tabela para edicao.
codigo:
- <?php
- class Cliente extends TRecord
- {
- const TABLENAME = 'cliente';
- const PRIMARYKEY= 'id';
- const IDPOLICY = 'max'; // {max, serial}
- public function get_situacao_cli()
- {
- $nomes = array('A'=>'Ativo', 'B'=>'Bloqueado','I'=>'Inativo');
- return $nomes[$this->SITUACAO];
- }
- public function set_unidadefederacao(Cidade $object)
- {
- $this->unidadefederacao = $object;
- $this-> ID_CIDADE= $object->ID; //Seu erro está aqui!!! ***
- }
- public function get_unidadefederacao()
- {
- // loads the associated object
- if (empty($this->unidadefederacao))
- $this->unidadefederacao = new cidade($this->ID_CIDADE); // E aqui!!!***
- // returns the associated object
- return $this->unidadefederacao;
- }
- }
- ?>
- <?php
- /**
- * ClienteList Listing
- * @author <your name here>
- */
- class ClienteList extends TStandardList
- {
- protected $form; // registration form
- protected $datagrid; // listing
- protected $pageNavigation;
- protected $formgrid;
- protected $deleteButton;
- protected $transformCallback;
- /**
- * Page constructor
- */
- public function __construct()
- {
- parent::__construct();
- parent::setDatabase('conexao'); // defines the database
- parent::setActiveRecord('Cliente'); // defines the active record
- parent::setDefaultOrder('ID_CLIENTE', 'asc'); // defines the default order
- // parent::setCriteria($criteria) // define a standard filter
- parent::addFilterField('CODIGO', '=', 'CODIGO'); // filterField, operator, formField
- parent::addFilterField('RAZAO_SOCIAL', 'like', 'RAZAO_SOCIAL'); // filterField, operator, formField
- parent::addFilterField('CPF', 'like', 'CPF'); // filterField, operator, formField
- parent::addFilterField('CNPJ', 'like', 'CNPJ'); // filterField, operator, formField
- parent::addFilterField('ID_CIDADE', 'like', 'ID_CIDADE'); // filterField, operator, formField
- parent::addFilterField('FONE', 'like', 'FONE'); // filterField, operator, formField
- parent::addFilterField('SITUACAO', 'like', 'SITUACAO'); // filterField, operator, formField
- // creates the form
- $this->form = new TQuickForm('form_search_Cliente');
- $this->form->class = 'tform'; // change CSS class
- $this->form->style = 'display: table;width:100%'; // change style
- $this->form->setFormTitle('Cliente');
- // $cliente = new Cliente(1);
- //echo $cliente->cidade->nome;
- // create the form fields
- $CODIGO = new TEntry('CODIGO');
- $RAZAO_SOCIAL = new TEntry('RAZAO_SOCIAL');
- $CPF = new TEntry('CPF');
- $CNPJ = new TEntry('CNPJ');
- $ID_CIDADE = new TEntry('ID_CIDADE');
- $FONE = new TEntry('FONE');
- $SITUACAO = new TEntry('SITUACAO');
- // add the fields
- $this->form->addQuickField('Código:', $CODIGO, 70 );
- $this->form->addQuickField('Razão Social:', $RAZAO_SOCIAL, 400 );
- $this->form->addQuickField('CPF/CNPJ:', $CPF, 200 );
- $this->form->addQuickField('Situação:', $SITUACAO, 200 );
- // keep the form filled during navigation with session data
- $this->form->setData( TSession::getValue('Cliente_filter_data') );
- // add the search form actions
- $this->form->addQuickAction(_t('Find'), new TAction(array($this, 'onSearch')), 'fa:search');
- $this->form->addQuickAction(_t('New'), new TAction(array('ClienteForm', 'onEdit')), 'bs:plus-sign green');
- // creates a DataGrid
- $this->datagrid = new TDataGrid;
- $this->datagrid->disableDefaultClick(); // important!
- $this->datagrid->style = 'width: 100%';
- $this->datagrid->setHeight(320);
- // $this->datagrid->datatable = 'true';
- // $this->datagrid->enablePopover('Popover', 'Hi <b> {name} </b>');
- // creates the datagrid columns
- $column_CODIGO = new TDataGridColumn('CODIGO', 'Código', 'center');
- $column_RAZAO_SOCIAL = new TDataGridColumn('RAZAO_SOCIAL', 'Razão Social', 'left');
- $column_CPF = new TDataGridColumn('CPF', 'CPF/CNPJ', 'center');
- $column_CNPJ = new TDataGridColumn('CNPJ', 'CNPJ', 'center');
- $column_ID_CIDADE = new TDataGridColumn('unidadefederacao->DESCRICAO', 'Cidade', 'center');
- $column_FONE = new TDataGridColumn('FONE', 'Telefone', 'center');
- $column_SITUACAO = new TDataGridColumn('situacao_cli', 'Situação', 'center');
- //$COL= compara_cpfcnpj( $column_CPF, $column_CNPJ );
- // $column_CPFCNPJ = new TDataGridColumn( compara_cpfcnpj , 'CPF/CNPJ', 'center');
- $column_CPF->setTransformer(function($value,$object){
- if ($value)
- return $value;
- else
- return $object->CNPJ;
- });
- // add the columns to the DataGrid
- $this->datagrid->addColumn($column_CODIGO);
- $this->datagrid->addColumn($column_RAZAO_SOCIAL);
- $this->datagrid->addColumn($column_CPF);
- // $this->datagrid->addColumn($column_CNPJ);
- $this->datagrid->addColumn($column_ID_CIDADE);
- $this->datagrid->addColumn($column_FONE);
- $this->datagrid->addColumn($column_SITUACAO);
- // creates the datagrid column actions
- $order_CODIGO = new TAction(array($this, 'onReload'));
- $order_CODIGO->setParameter('order', 'CODIGO');
- $column_CODIGO->setAction($order_CODIGO);
- $order_RAZAO_SOCIAL = new TAction(array($this, 'onReload'));
- $order_RAZAO_SOCIAL->setParameter('order', 'RAZAO_SOCIAL');
- $column_RAZAO_SOCIAL->setAction($order_RAZAO_SOCIAL);
- // create EDIT action
- $action_edit = new TDataGridAction(array('ClienteForm', 'onEdit'));
- $action_edit->setUseButton(TRUE);
- $action_edit->setButtonClass('btn btn-default');
- $action_edit->setLabel(_t('Edit'));
- $action_edit->setImage('fa:pencil-square-o blue fa-lg');
- $action_edit->setField('ID_CLIENTE');
- $this->datagrid->addAction($action_edit);
- // create DELETE action
- $action_del = new TDataGridAction(array($this, 'onDelete'));
- $action_del->setUseButton(TRUE);
- $action_del->setButtonClass('btn btn-default');
- $action_del->setLabel(_t('Delete'));
- $action_del->setImage('fa:trash-o red fa-lg');
- $action_del->setField('ID_CLIENTE');
- $this->datagrid->addAction($action_del);
- // create the datagrid model
- $this->datagrid->createModel();
- // create the page navigation
- $this->pageNavigation = new TPageNavigation;
- $this->pageNavigation->setAction(new TAction(array($this, 'onReload')));
- $this->pageNavigation->setWidth($this->datagrid->getWidth());
- // vertical box container
- $container = new TVBox;
- $container->style = 'width: 100%';
- // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
- $container->add($this->form);
- $container->add($this->datagrid);
- $container->add($this->pageNavigation);
- parent::add($container);
- }
- }
Não sei se entendi o que você precisa. Você quer abrir o formulário de edição em uma nova janela?
Sim. Com os respectivos dados escolhidos por mim que estao na mesma tabela.
Você já criou o control ClienteForm? Por padrão ele teria o método onEdit e já deveria funcionar a edição.
gostaria que os dados abrissem numa janela estilo popup
Poste o código da classe ClienteForm
ClientForm.class.php:
ClientForm.class.php:
Fiz assim no arquivo que estou utilizando:
ClientList.class.php aonde quero que seja efetuado a abertura da janela popup:
Leonardo,
Somente faça a classe de formulário "extends TWindow".
Att,