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. ?>


Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto 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!!