Conheça  A Ferramenta LowCode mais moderna e veloz para desenvolvimento PHP: Adianti Creator
evitar que onclean redirecione/recarregue o formulario em Modais e paginas em cortina lateral Boa tarde ! Gostaria de saber , como posso fazer pro metodo onClear não recarregar/redirecionar para outra pagina, quando eu estou em um Modal ou em uma pagina de cortina lateral . Já tentei de diversas formas, exemplos como : https://framework.adianti.me//tutor/index.php?class=SaleList e https://framework.adianti.me//tutor/index.php?class=CustomerDataGridView não mostram o cód...
FM
evitar que onclean redirecione/recarregue o formulario em Modais e paginas em cortina lateral  
Boa tarde !

Gostaria de saber , como posso fazer pro metodo onClear não recarregar/redirecionar para outra pagina, quando eu estou em um Modal ou em uma pagina de cortina lateral .

Já tentei de diversas formas, exemplos como :

https://framework.adianti.me//tutor/index.php?class=SaleList
e
https://framework.adianti.me//tutor/index.php?class=CustomerDataGridView

não mostram o código do da pagina em cortina, somente da index por trás .

Segue meu código



Formulário em questão :
 
  1. <?php
  2. class DistribuidoraForm extends TPage
  3. {
  4. private $form;
  5. use Adianti\Base\AdiantiStandardFormTrait;
  6. public function __construct($param)
  7. {
  8. parent::__construct();
  9. $this->setDatabase('x');
  10. $this->setActiveRecord('Distribuidora');
  11. $this->form = new BootstrapFormBuilder('distribuidoraForm');
  12. $this->form->setFormTitle(_t('Distributor'));
  13. $this->form->setClientValidation( true );
  14. $this->form->setFieldSizes('100%');
  15. $ID_DISTRIBUIDORA = new TEntry('ID_DISTRIBUIDORA');
  16. $ID_DISTRIBUIDORA->setEditable(FALSE);
  17. $SIGLA = new TEntry('SIGLA');
  18. $RAZAO_SOCIAL = new TEntry('RAZAO_SOCIAL');
  19. $CNPJ = new TEntry('CNPJ');
  20. $ID_SUBMERCADO = new TDBCombo('ID_SUBMERCADO','america_gestao','Submarket','ID_SUBMERCADO','SIGLA');
  21. $DIA_REAJUSTE = new TEntry('DIA_REAJUSTE');
  22. $MES_REAJUSTE = new TEntry('MES_REAJUSTE');
  23. $this->form->setFormTitle(_t('Distributor'));
  24. $row = $this->form->addFields( [ new TLabel('<b>'._t('Distributor code').'</b>'), $ID_DISTRIBUIDORA ] );
  25. $row->layout = ['col-md-12' ];
  26. $row = $this->form->addFields(
  27. [new TLabel('<b>'._t('Initials').'</b>'), $SIGLA],
  28. [new TLabel('<b>'._t('Corporate name').'</b>'), $RAZAO_SOCIAL],
  29. [new TLabel('<b> CNPJ</b>'), $CNPJ ],
  30. );
  31. $row->layout = ['col-sm-4', 'col-sm-4', 'col-sm-4'];
  32. $row = $this->form->addFields(
  33. [new TLabel('<b>'._t('Submarket').'</b>'), $ID_SUBMERCADO],
  34. [new TLabel('<b>'._t('Readjustment day').'</b>'), $DIA_REAJUSTE ],
  35. [new TLabel('<b>'._t('Month of readjustmenty').'</b>'), $MES_REAJUSTE]
  36. );
  37. $row->layout = ['col-sm-4', 'col-sm-4', 'col-sm-4'];
  38. $this->form->addAction('Salvar', new TAction( [$this, 'onSave'] ), 'fa:save green');
  39. $this->form->addActionLink(_t('Back'),new TAction(array('DistribuidoraList','onReload')),'far:arrow-alt-circle-left blue');
  40. $this->form->addActionLink('Limpar', new TAction( [$this, 'onClear']), 'fa:eraser red');
  41. parent::add($this->form);
  42. }
  43. public function onEdit( $param )
  44. {
  45. try
  46. {
  47. TTransaction::open('america_gestao');
  48. if ( isset( $param['ID_DISTRIBUIDORA'] ) )
  49. {
  50. $key = $param['ID_DISTRIBUIDORA'];
  51. $dist = new Distribuidora($key);
  52. $dist->ID_ALTERADO_POR = TSession::getValue('userid');
  53. $dist->DT_ALTERADO_EM = date('Y-m-d h:i:sa');
  54. $this->form->setData($dist);
  55. }
  56. else
  57. {
  58. $this->form->clear();
  59. }
  60. TTransaction::close();
  61. } catch (Exception $e)
  62. {
  63. new TMessage('error', $e->getMessage());
  64. TTransaction::rollback();
  65. }
  66. }
  67. public function cadastrarDist($param)
  68. {
  69. $this->form->onEdit($param);
  70. }
  71. public function onClear()
  72. {
  73. $this->form->clear();
  74. }
  75. ?>


método utilizado pra abrir em Modal / cortina lateral

 
  1. <?php
  2. /**
  3. * CustomerFormWindow Active Record
  4. *
  5. */
  6. class DistribuidoraFormWindow extends TPage
  7. {
  8. public function __construct($param)
  9. {
  10. parent::__construct($param);
  11. //parent::setSize(0.6, 0.6);
  12. //parent::setMinWidth(1, 700);
  13. //parent::removePadding();
  14. //parent::disableEscape();
  15. //parent::setTitle(_t('Register/edit distributor'));
  16. $this->form = new DistribuidoraForm($param, true);
  17. //$this->form->setTargetContainer('');
  18. parent::setTargetContainer('adianti_right_panel');
  19. parent::add($this->form);
  20. }
  21. /**
  22. * Redirect calls to decorated object
  23. */
  24. public function cadastrarDist($param)
  25. {
  26. $this->form->onEdit($param);
  27. }
  28. }
  29. ?>


botao utilizado pra chamar a janela

 
  1. <?php
  2. $button = new TActionLink('', new TAction(['DistribuidoraFormWindow', 'cadastrarDist'],['ID_DISTRIBUIDORA' => $id_modal_dist , 'register_state' => 'false']), 'green', null, null, 'fa:plus-circle');
  3. ?>
Editado 05/05/2022 (há 3 anos) - Clique para ver alterações

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (1)


NR

Acredito que a forma mais fácil seja fazer isso estaticamente, ou seja, sem recarga de tela. Ex:
 
  1. <?php
  2. public static function onClear($param)
  3. {
  4. $dados_form = [
  5. 'ID_DISTRIBUIDORA' => '',
  6. 'SIGLA' => '',
  7. 'RAZAO_SOCIAL' => '',
  8. 'CNPJ' => '',
  9. 'ID_SUBMERCADO' => '',
  10. 'DIA_REAJUSTE' => '',
  11. 'MES_REAJUSTE' => ''
  12. ];
  13. TForm::sendData('distribuidoraForm', (object) $dados_form);
  14. }
  15. ?>