Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Dúvida - Passagem de páginas Amigos montei um formulário Panel e Notebook e quero fazer botões passando para próximas páginas, porém apareceu um erro, conforme anexo, o código está da seguinte forma: Erro: "Fatal error: Call to a member function setCurrentPage() on a non-object in D:VertrigoServwwwsisbsappcontrolapresentacaoTitularMestreDetalheForm.class.php on line 304" ...
MO
Dúvida - Passagem de páginas  
Fechado
Amigos montei um formulário Panel e Notebook e quero fazer botões passando para próximas páginas, porém apareceu um erro, conforme anexo, o código está da seguinte forma:

Erro: "Fatal error: Call to a member function setCurrentPage() on a non-object in D:VertrigoServwwwsisbsappcontrolapresentacaoTitularMestreDetalheForm.class.php on line 304"



  1. <?php
  2. /**
  3.  * TitularMestreDetalheForm Master/Detail
  4.  * @author  <your name here>
  5.  */
  6. class TitularMestreDetalheForm extends TPage
  7. {
  8.  /**
  9.      * Class constructor
  10.      * Creates the page
  11.      */
  12.     function __construct()
  13.     {
  14.         parent::__construct();
  15.         $this->form = new TForm;
  16.         
  17.         // creates the notebook
  18.         $notebook = new TNotebook(1100,500);
  19.         // adds the notebook page
  20.         
  21.         
  22.         // creates the containers for each notebook page
  23.         $page1 = new TPanel(1000,450);
  24.         $page2 = new TPanel(1000,480);
  25.         $page3 = new TTable;
  26.         // adds two pages in the notebook
  27.         $notebook->appendPage('Dados Pessoais'$page1);
  28.         $notebook->appendPage('Observação'$page2);
  29.         //$notebook->appendPage('Other note', $page3);
  30.         
  31.         // create the form fields
  32.         2542                 = new TEntry('id');                  //40
  33.         $nome               = new TEntry('nome');                //225
  34.         $apelido            = new TEntry('apelido');             //86
  35.         $cpf                = new TEntry('cpf');                 //111
  36.         $nis                = new TEntry('nis');                 //119
  37.         $celular1           = new TEntry('celular1');            //115
  38.         $celular2           = new TEntry('celular2');            //115
  39.         $telefone           = new TEntry('telefone');            //105
  40.         $contato            = new TEntry('contato');             //123   
  41.         $sexo               = new TCombo('sexo');                //44
  42.         $pai                = new TEntry('pai');                 //225
  43.         $mae                = new TEntry('mae');                 //225
  44.         $rg                 = new TEntry('rg');                  //110
  45.         $viarg              = new TEntry('viarg');               //55
  46.         $datemisrg          = new TDate('datemisrg');            //80 
  47.         $ufrg               = new TCombo('ufrg');                //55
  48.         $orgexprg           = new TEntry('orgexprg');            //95
  49.         $datnasc            = new TDate('datnasc');              //80
  50.         $naturalidade       = new TEntry('naturalidade');        //230
  51.         $endereco           = new TEntry('endereco');            //213
  52.         $numero             = new TEntry('numero');              //80  
  53.         $complemento        = new TEntry('complemento');         //100
  54.         $pontoref           = new TEntry('pontoref');            //195
  55.         $cep                = new TEntry('cep');                 //80
  56.         $localtrabalho      = new TEntry('localtrabalho');       //303 
  57.         $portnecesp         = new TDBCombo('comboportnecesp','permission','TipoNecEsp','id','necespecial');    //183 
  58.         $qualnecespecial    = new TEntry('qualnecespecial');     //151 
  59.         $necadap            = new TCombo('necadap');             //58
  60.         $qtdpesres          = new TSpinner('qtdpesres');         //62 
  61.         $valorbeneficio     = new TEntry('valorbeneficio');      //73
  62.         $desistente         = new TCombo('desistente');          //67  
  63.         $declaracao         = new TCombo('declaracao');          //67
  64.         $situacaoderua      = new TCombo('situacaoderua');       //67 
  65.         $assocmorador       = new TEntry('assocmorador');        //382
  66.         $participa          = new TCombo('participa');           //67
  67.         $situacao_trab_id   = new TDBCombo('combosittrab','permission','SituacaoTrab','id','situacaotrab');     //260
  68.         $escolaridade_id    = new TDBCombo('comboescolaridade','permission','Escolaridade','id','escolaridade');//260
  69.         $ocupacaoprof_id    = new TDBCombo('comboocupprof','permission','Ocupacaoprof','id','descricao');       //260
  70.         $tipo_nec_esp_id    = new TDBCombo('combotpnecesp','permission','TipoNecEsp','id','necespecial');       //260
  71.         $tempo_trabalho_id  = new TDBCombo('combotrabalho','permission','TempoTrabalho','id','TempoTrab');      //200 
  72.         $renda_mensal_id    = new TDBCombo('comborendamens','permission','RendaMensal','id','renda');           //180
  73.         $estado_civil_id    = new TDBCombo('comboestcivil','permission','EstadoCivil','id','estadocivil');      //180
  74.         $beneficio_id       = new TDBCombo('combobeneficio','permission','Beneficio','id','beneficio');         //180
  75.         $sitconjugal_id     = new TDBCombo('combositconjug','permission','Sitconjugal','id','sitconjugal');     //180
  76.         $bairro_id          = new TDBCombo('combobairro','permission','Bairro','id','bairro');                  //200 
  77.         $logradouro_id      = new TDBCombo('combologradouro','permission','Logradouro','id','descricao');       //180 
  78.         $rendatotal         = new TEntry('rendatotal');          //185
  79.         $renda_comp_id      = new TDBCombo('comborendacomp','permission','RendaCompl','id','tipoderenda');       //180 
  80.         $observacao         = new TEntry('observacao');          //500
  81.         
  82.         //adicionando itens ao combo sexo
  83.         $combosexo_items = array(1=>"M",2=>"F");
  84.         $sexo->addItems($combosexo_items);
  85.         //adicionando itens ao combo UF
  86.         $comboufrg_items = array(1=>"SP",2=>"RJ",3=>"AC",4=>"AL",5=>"AM",
  87.                                  6=>"AP",7=>"BA",8=>"CE",9=>"DF",10=>"ES",
  88.                                  11=>"GO",12=>"MA",13=>"MG",14=>"MS",15=>"MT",
  89.                                  16=>"PA",17=>"PB",18=>"PE",19=>"PI",20=>"PR",
  90.                                  21=>"RN",22=>"RO",23=>"RR",24=>"RS",25=>"SC",
  91.                                  26=>"SE");
  92.         $ufrg->addItems($comboufrg_items);                          
  93.         //adicionando opções de sim/nao ao combo
  94.         $combo_items = array(1=>"Sim",2=>"Não");
  95.         
  96.         //adicionando itens ao combo nec.adap/declaração/desistente/situação de rua/participa
  97.         $necadap->addItems($combo_items);
  98.         $declaracao->addItems($combo_items);
  99.         $desistente->addItems($combo_items);
  100.         $situacaoderua->addItems($combo_items);
  101.         $participa->addItems($combo_items);
  102.         
  103.         
  104.         //valores para o spinner Qt. Pessoas Resid.
  105.         $qtdpesres->setRange(0,20,1);
  106.         // change the size for some fields
  107.         2542->setSize(70);                                        //ok
  108.         $nome->setSize(260);                                     //ok   
  109.         $apelido->setSize(140);                                  //ok  
  110.         $cpf->setSize(111);                                      //ok  
  111.         $nis->setSize(119);                                      //ok
  112.         $celular1->setSize(115);                                 //ok
  113.         $celular2->setSize(115);                                 //ok
  114.         $telefone->setSize(105);                                 //ok
  115.         $contato->setSize(123);                                  //ok   
  116.         $sexo->setSize(44);                                      //ok
  117.         $pai->setSize(260);                                      //ok
  118.         $mae->setSize(260);                                      //ok
  119.         $rg->setSize(140);                                       //ok
  120.         $viarg->setSize(55);                                     //ok
  121.         $datemisrg->setSize(80);                                 //ok 
  122.         $ufrg->setSize(55);                                      //ok
  123.         $orgexprg->setSize(95);                                  //ok
  124.         $datnasc->setSize(80);                                   //ok
  125.         $naturalidade->setSize(260);                             //ok
  126.         $endereco->setSize(205);                                 //ok
  127.         $numero->setSize(80);                                    //ok 
  128.         $complemento->setSize(90);                               //ok
  129.         $pontoref->setSize(205);                                 //ok
  130.         $cep->setSize(80);                                       //ok
  131.         $localtrabalho->setSize(250);                            //ok 
  132.         $portnecesp->setSize(183);                               //ok 
  133.         $qualnecespecial->setSize(180);                          //ok 
  134.         $necadap->setSize(58);                                   //ok   
  135.         $qtdpesres->setSize(62);                                 //ok 
  136.         $valorbeneficio->setSize(73);                            //ok
  137.         $declaracao->setSize(67);                                //ok
  138.         $situacaoderua->setSize(67);                             //ok 
  139.         $desistente->setSize(67);                                //ok  
  140.         $assocmorador->setSize(382);
  141.         $participa->setSize(67);
  142.         $situacao_trab_id->setSize(195);                         //ok
  143.         $escolaridade_id->setSize(260);                          //ok
  144.         $ocupacaoprof_id->setSize(340);                          //ok
  145.         $tipo_nec_esp_id->setSize(260);                          //ok
  146.         $tempo_trabalho_id->setSize(147);                        //ok 
  147.         $renda_mensal_id->setSize(180);                          //ok
  148.         $estado_civil_id->setSize(100);                          //ok
  149.         $sitconjugal_id->setSize(100);                           //ok
  150.         $beneficio_id->setSize(185);                             //ok
  151.         $bairro_id->setSize(150);                                //ok 
  152.         $logradouro_id->setSize(180);                            //ok 
  153.         $rendatotal->setSize(105);                               //ok
  154.         $renda_comp_id->setSize(180);                            //ok 
  155.         $observacao->setSize(500);  
  156.         ## inserindo Labels na pagina 1 ##
  157.         $page1->put(new TLabel('Codigo'),                    20,   16);
  158.         $page1->put(new TLabel('Nome do Titular'),           95,   16);     // (col,lin)
  159.         $page1->put(new TLabel('Apelido'),                  360,   16);     // (col,lin)
  160.         $page1->put(new TLabel('Sexo'),                     505,   16);     // (col,lin)
  161.         $page1->put(new TLabel('Escolaridade'),             555,   16);     // (col,lin)
  162.         $page1->put(new TLabel('C.P.F'),                    820,   16);     // (col,lin)
  163.         $page1->put(new TLabel('Nis'),                      937,   16);     // (col,lin)
  164.         $page1->put(new TLabel('Celular-1'),                 20,   71);     // (col,lin)
  165.         $page1->put(new TLabel('Celular-2'),                140,   71);     // (col,lin)
  166.         $page1->put(new TLabel('Telefone'),                 260,   71);     // (col,lin)
  167.         $page1->put(new TLabel('Contato'),                  370,   71);     // (col,lin)
  168.         $page1->put(new TLabel('Pai'),                      500,   71);     // (col,lin)
  169.         $page1->put(new TLabel('Mãe'),                      765,   71);     // (col,lin)
  170.         $page1->put(new TLabel('Nº.Ident.'),                 20,  126);     // (col,lin)
  171.         $page1->put(new TLabel('Via RG'),                   165126);      // (col,lin)
  172.         $page1->put(new TLabel('Data Emis.'),               225126);      // (col,lin)
  173.         $page1->put(new TLabel('Órgão Exp.'),               335126);      // (col,lin)
  174.         $page1->put(new TLabel('UF.RG'),                    435126);      // (col,lin)
  175.         $page1->put(new TLabel('Data Nasc.'),               495126);      // (col,lin)
  176.         $page1->put(new TLabel('Naturalidade'),             600126);      // (col,lin)
  177.         $page1->put(new TLabel('Logradouro'),               865126);      // (col,lin)
  178.         $page1->put(new TLabel('CEP'),                       20181);      // (col,lin)
  179.         $page1->put(new TLabel('Endereco'),                 105181);     // (col,lin)
  180.         $page1->put(new TLabel('Bairro'),                   315181);     // (col,lin)
  181.         $page1->put(new TLabel('Número'),                   470181);      // (col,lin)
  182.         $page1->put(new TLabel('Complemento'),              555181);      // (col,lin)
  183.         $page1->put(new TLabel('Ponto de Referencia'),      650181);      // (col,lin)
  184.         $page1->put(new TLabel('Portador de Nec.Esp'),      860181);      // (col,lin)
  185.         $page1->put(new TLabel('Qual Nec.Esp.'),             20236);      // (col,lin)
  186.         $page1->put(new TLabel('Nec.Adap'),                 200236);      // (col,lin)
  187.         $page1->put(new TLabel('Estado Civil'),             268236);      // (col,lin)
  188.         $page1->put(new TLabel('Sit. Conjugal'),            372236);      // (col,lin)
  189.         $page1->put(new TLabel('Qt.P.Resid'),               477236);      // (col,lin)
  190.         $page1->put(new TLabel('Ocupação / Profissão'),     548236);      // (col,lin)
  191.         $page1->put(new TLabel('Tempo de Trab.'),        893236);      // (col,lin)
  192.         $page1->put(new TLabel('Situação Trabalhista'),      20291);      // (col,lin)
  193.         $page1->put(new TLabel('Local Trabalho'),           220291);      // (col,lin)
  194.         $page1->put(new TLabel('Renda Mensal'),             475291);      // (col,lin)
  195.         $page1->put(new TLabel('Renda Complem'),            660291);      // (col,lin)
  196.         $page1->put(new TLabel('Beneficio'),                845291);      // (col,lin)
  197.         $page1->put(new TLabel('Val.Benef'),                20346);      // (col,lin)
  198.         $page1->put(new TLabel('Renda.Tot'),                135346);      // (col,lin)
  199.         $page1->put(new TLabel('Declaração'),               210346);      // (col,lin)
  200.         $page1->put(new TLabel('Sit.Rua'),                  285346);      // (col,lin)
  201.         $page1->put(new TLabel('Desist.'),                  360346);      // (col,lin)
  202.         $page1->put(new TLabel('Associação de Moradores'),  432346);      // (col,lin)
  203.         $page1->put(new TLabel('Participa'),                820346);      // (col,lin)
  204.         
  205.         
  206.         ## inserindo campos na pagina 1
  207.         $page1->put(2542,                20,  35);
  208.         $page1->put($nome,              95,  35);
  209.         $page1->put($apelido,          360,  35);
  210.         $page1->put($sexo,             505,  35);
  211.         $page1->put($escolaridade_id,  555,  35);
  212.         $page1->put($cpf,              820,  35);
  213.         $page1->put($nis,              937,  35);
  214.         $page1->put($celular1,          20,  90);
  215.         $page1->put($celular2,         140,  90);
  216.         $page1->put($telefone,         260,  90);
  217.         $page1->put($contato,          370,  90);
  218.         $page1->put($pai,              500,  90);
  219.         $page1->put($mae,              765,  90);
  220.         $page1->put($rg,                20145);
  221.         $page1->put($viarg,            165145);
  222.         $page1->put($datemisrg,        225145);
  223.         $page1->put($orgexprg,         335145);
  224.         $page1->put($ufrg,             435145);
  225.         $page1->put($datnasc,          495145);
  226.         $page1->put($naturalidade,     600145);
  227.         $page1->put($logradouro_id,    865145);
  228.         $page1->put($cep,               20200);
  229.         $page1->put($endereco,         105200);
  230.         $page1->put($bairro_id,        315200);
  231.         $page1->put($numero,           470200);
  232.         $page1->put($complemento,      555200);
  233.         $page1->put($pontoref,         650200);
  234.         $page1->put($portnecesp,       860200);
  235.         $page1->put($qualnecespecial,   20255);
  236.         $page1->put($necadap,          205255);
  237.         $page1->put($estado_civil_id,  268255);
  238.         $page1->put($sitconjugal_id,   372255);
  239.         $page1->put($qtdpesres,        477255);
  240.         $page1->put($ocupacaoprof_id,  548255);
  241.         $page1->put($tempo_trabalho_id,893255);
  242.         $page1->put($situacao_trab_id,  20310);
  243.         $page1->put($localtrabalho,    220310);
  244.         $page1->put($renda_mensal_id,  475310);
  245.         $page1->put($renda_comp_id,    660310);
  246.         $page1->put($beneficio_id,     845310);
  247.         $page1->put($valorbeneficio,   20365);
  248.         $page1->put($rendatotal,       100365);
  249.         $page1->put($declaracao,       210365);
  250.         $page1->put($situacaoderua,    285365);
  251.         $page1->put($desistente,       360365);
  252.         $page1->put($assocmorador,     432365);
  253.         $page1->put($participa,        820365);
  254.         
  255.         /*
  256.         ## fields for the page 3 ##
  257.         
  258.         // creates the notebook
  259.         $subnotebook = new TNotebook(250, 160);
  260.         $subnotebook->appendPage('new page1', new TLabel('test1'));
  261.         $subnotebook->appendPage('new page2', new TText('test2'));
  262.         
  263.         $row = $page3->addRow();
  264.         $row->addCell($subnotebook);
  265.         */
  266.         $button1=new TButton('action1');
  267.         $button1->setAction(new TAction(array($this'onStep2')), 'Próximo');
  268.         $button1->setImage('menu-bar-right-arrow.png');
  269.         $page1->put($button1200,450 );
  270.         
  271.         //capturando os campos do formulário 
  272.         $this->form->setFields(array(2542,$nome,$apelido,$sexo,$escolaridade_id,$cpf,$nis,$celular1,$celular2,$telefone,$contato,$pai,$mae,
  273.                                      $rg,$viarg,$datemisrg,$orgexprg,$ufrg,$datnasc,$naturalidade,$logradouro_id,$cep,$endereco,$bairro_id,
  274.                                      $numero,$complemento,$pontoref,$portnecesp,$qualnecespecial,$necadap,$estado_civil_id,$sitconjugal_id,
  275.                                      $qtdpesres,$ocupacaoprof_id,$tempo_trabalho_id,$situacao_trab_id,$localtrabalho,$renda_mensal_id,
  276.                                      $renda_comp_id,$beneficio_id,$valorbeneficio,$rendatotal,$declaracao,$situacaoderua,$desistente,
  277.                                      $assocmorador,$participa,$button1));
  278.         
  279.         
  280.         // wrap the page content using vertical box
  281.         $vbox = new TVBox;
  282.         //$vbox->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  283.         $vbox->add($notebook);
  284.         parent::add($vbox);
  285.     }
  286.     function onStep1()
  287.     {
  288.         $this->notebook->setCurrentPage(0);
  289.         $this->form->setData($this->form->getData());
  290.     }
  291.     
  292.     function onStep2()
  293.     {
  294.         $data $this->form->getData();
  295.         $this->notebook->setCurrentPage(1);
  296.         $this->form->setData($data);
  297.     }
  298.     
  299.     function onStep3()
  300.     {
  301.         $data $this->form->getData();
  302.         $data->field5 'Hi '$data->field4;
  303.         $this->notebook->setCurrentPage(2);
  304.         $this->form->setData($data);
  305.     }
  306.     
  307.     function onSave()
  308.     {
  309.         //$this->notebook->setCurrentPage(2);
  310.         //$this->form->setData($this->form->getData());
  311.         //new TMessage('info', str_replace('"field', '<br>"field ', json_encode($this->form->getData())));
  312.     }    
  313. }
  314. ?>


Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (3)


MO

galera problema resolvido, porém surgiu outro problema, na hora da gravação no banco, quando tento salvar, aparece o seguinte erro: situacao_trab_id' doesn't have a default value, depois eu uso o json_encode, e todos os valores, são mostrados corretamente, alguém para me dar uma luz, o código onSave, abaixo:
try
{
TTransaction::open('permission');
$titular = $this->form->getData('Titular');
$titular->store();
$this->form->setData($titular);
TTransaction::close();
}
catch (Exception $e)
{
new TMessage('error',$e->getMessage());
}
NR

Dê uma olhada no link abaixo, parece ser alguma configuração do mysql:
stackoverflow.com/questions/15438840/mysql-error-1364-field-doesnt-h
MO

Nataniel Rabaioli, obrigado pela atenção, consegui resolver, o problema estava na criação dos TDBCombos, onde o primeiro parâmetro não tinha colocado o nome do campo e sim um outro nome qualquer, dai qdo ia gravar não passava o valor para o campo e como o campo era not null, dava o erro que indiquei.

Muito bom acontecer os erros, pra não cairmos mais neles...
muitíssimo obrigado!!