Lançado Adianti Framework 8.1!
Clique aqui para saber mais
Acessar uma variável na mesma classe Olá, Ainda estou apanhando no entendimento de como pegar o valor de um objeto na mesma classe: Minha classe tem a var $janela como public dá um erro de: Fatal error: Using $this when not in object context in C:xampphtdocserpnfeappcontrolPrincipaForm.class.php on line 274 Fatal error: Using $this when not in object context in C:xampphtdocserpnfeappcontrolPrincipaFo...
AF
Acessar uma variável na mesma classe  
Olá,

Ainda estou apanhando no entendimento de como pegar o valor de um objeto na mesma classe:

Minha classe tem a var $janela como public


dá um erro de:


Fatal error: Using $this when not in object context in C:xampphtdocserpnfeappcontrolPrincipaForm.class.php on line 274

Fatal error: Using $this when not in object context in C:xampphtdocserpnfeappcontrolPrincipaForm.class.php on line 274



  1. <?php
  2. class PrincipaForm extends TPage
  3. {
  4.     protected $form
  5.     protected $codigo_key;
  6.     public    $janela;
  7.         
  8.     use Adianti\Base\AdiantiStandardFormTrait// Standard form 
  9.    //  tenho o method na saida de um campo de produto:
  10.     /* ===============================================================*/
  11.     /* após a busca do produto passa aqui para jogar dados nos campos */
  12.     /* ===============================================================*/
  13.     
  14.     public static function onExitProduto($param)
  15.     {
  16.     try
  17.       {
  18.       TTransaction::open('sisrev');
  19.             
  20.       $TabProduto      Principa::find$param['key'] );
  21.         
  22.       $send            = new StdClass;
  23.       $send->cf_pro    $TabProduto->cf_pro;
  24.       $send->obs_pri   $TabProduto->obs_pri;
  25.       $send->obs_pri1  $TabProduto->obs_pri1;
  26.       $send->obs_pri2  $TabProduto->obs_pri2;
  27.       $send->obs_pri3  $TabProduto->obs_pri3;
  28.       $send->aplicacao $TabProduto->aplicacao;
  29.       $send->mensagem  $TabProduto->mensagem;
  30.       $send->unidade   $TabProduto->unidade;
  31.       $send->peso      $TabProduto->peso;
  32.       $send->pesolb    $TabProduto->pesolb;
  33.       $send->ingles    $TabProduto->ingles;
  34.       $send->espanhol  $TabProduto->espanhol;
  35.       $send->unidade   $TabProduto->ingles;
  36.       $send->qtminima  $TabProduto->qtminima;
  37.       $send->qtmaxima  $TabProduto->qtmaxima;
  38.       $send->qtusada   $TabProduto->qtusada;
  39.       $send->seguranca $TabProduto->seguranca;
  40.       $send->codlin    $TabProduto->codlin;
  41.       $send->codmat    $TabProduto->codmat;
  42.       $send->grupo     $TabProduto->grupo;
  43.       $send->subgrupo  $TabProduto->subgrupo;
  44.       $send->codigoanp $TabProduto->codigoanp;
  45.       $send->curvaabc  $TabProduto->curvaabc;
  46.       $send->serie     $TabProduto->serie;
  47.       $send->chassi    $TabProduto->chassi;
  48.       
  49.      
  50.      /$this->janela    = new MenuEst();      // uma classe que tem uma datagrid
  51.       $this->janela->onReload($param);   
  52.       
  53.       TTransaction::close();
  54.                       
  55.       TForm::sendData('quick_note_form'$send );               
  56.      }    
  57.      catch ( Exception $e )
  58.      {
  59.        new TMessage('info'$e->getMessage() );
  60.      }                                                                             
  61.    }
  62. ?>


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 (3)


NR

Não é possível usar a variável $this dentro de uma função static. Declare a variável $window como static e chame-a através do self:
  1. <?php
  2. static $window;
  3. ...
  4. static function onExitProduto($param)
  5. {
  6.     self::$window->onReload();
  7. }
  8. ?>

Mas explique o que você tentando fazer, porque se estiver tentando recarregar alguma tela para exibição, acredito que deste modo não vá funcionar.
AF

Olá

Uma aplicação que tem dois notebook:

1) o primeiro mostra os dados do produto
2) o segundo notebook é uma datagrid que mostra as marcas e ou fornecedores do produto

Então após selecionar o produto na parte de cima (no method onExitProduto() ) quero buscar os fornecedores do produto e mostrar no segundo notebook na datagrid, recarregar a datagrid e dar um refresh na tela.

e uso o method onReload() não posso mencionar o objeto datagrid, no onExit tambem porque tudo static.

Ari
NR

Nesse caso acredito que você precisará gravar os dados da grid na sessão e recarregar toda tela através do método post, para não perder as informações preenchidas no form:
https://www.adianti.com.br/forum/pt/view_2904?preencher-um-tquickgrid-dentro-de-