DA
Problemas para fechar uma TWindow na versão 7.3
Atualizei para da 7.2 para a versão 7.3 e fiquei com um problema para fechar uma TWindow.
Meu sistema chama uma list em TPage e no action do datagrid, chamo outra list em TWindow, onde farei uma manutenção de registros, porém quando edito ou incluo um novo que é aberta uma outra TWindow essa não fecha, pela ação de fechar, só no escape, até executa o OnReload, mas não fecha a janela.
A chamada para a primeira TWIndow
A chamada para a segunda TWindow, usando as Actions para incluir ou editar
A chamada para fechar a segunda TWindow que não fecha mais.
Uma solução que encontrei, não sei se é a mais elegante ou correta. Modifiquei a ação do Close, criando uma function para ser chamada, e lá dei o closewindow.
Meu sistema chama uma list em TPage e no action do datagrid, chamo outra list em TWindow, onde farei uma manutenção de registros, porém quando edito ou incluo um novo que é aberta uma outra TWindow essa não fecha, pela ação de fechar, só no escape, até executa o OnReload, mas não fecha a janela.
A chamada para a primeira TWIndow
- <?php
- public function onShowLog( $param )
- {
- // get row position
- $pos = $this->datagrid->getRowIndex('id', $param['key']);
- $lastpage = TSession::getValue('lastpage');
- TSession::setValue('cliente_id_'.$lastpage,$param);
- TSession::setValue('keyatual_'.$lastpage,$param['key']);
- TTransaction::open('cobrebem');
- $master_object = new Clientes($param['cliente_id']);
- TTransaction::close();
- TSession::setValue('consulta_cli','<b>'.$master_object->nome.'</b> Fone 1 :<b>'.$master_object->fone1.' </b> Fone 2 : <b>'.$master_object->fone2.'</b> Celular : <b>'.$master_object->celular.'</b>');
- TApplication::loadPage('LogCobrancaList', 'onReload', ['key'=>$param['id'], 'register_state' => 'false']);
- }
- ?>
A chamada para a segunda TWindow, usando as Actions para incluir ou editar
- <?php
- $this->form->addActionLink(_t('New'), new TAction(['LogCobrancaForm', 'onEdit'], ['register_state' => 'false']), 'fa:plus green');
- $action1 = new TDataGridAction(['LogCobrancaForm', 'onEdit'], ['id'=>'{id}', 'register_state' => 'false']);
- ?>
A chamada para fechar a segunda TWindow que não fecha mais.
- <?php
- $this->form->addHeaderActionLink( _t('Close'), new TAction(array('LogCobrancaList', 'onReload')), 'fa:times red');
- ?>
Uma solução que encontrei, não sei se é a mais elegante ou correta. Modifiquei a ação do Close, criando uma function para ser chamada, e lá dei o closewindow.
- <?php
- $this->form->addHeaderActionLink( _t('Close'), new TAction([__CLASS__, 'onClose'], ['static'=>'1']), 'fa:times red');
- public static function onClose()
- {
- TApplication::loadPage('LogCobrancaList', 'onReload', ['key'=>$param['id'], 'register_state' => 'false']);
- parent::closeWindow();
- }
- Na imagem em anexo, dá para verificar o encadeamento de janelas que preciso