Passagem de parâmetro Pessoal neste trecho de código eu não estou sabendo qual variável pegar para passar o id do titular: // função reoload da Grid public function onReload( $param ) //$param = NULL { try { //------------------------------------------------------------------- //$key = TSession::getValue('id'); //---------------...
MO
Passagem de parâmetro  
Fechado
Pessoal neste trecho de código eu não estou sabendo qual variável pegar para passar o id do titular:


// função reoload da Grid
public function onReload( $param ) //$param = NULL
{
try
{
//-------------------------------------------------------------------
//$key = TSession::getValue('id');

//-------------------------------------------------------------------
TTransaction::open('permission');
$repository = new TRepository('CompFam');
$criteria = new TCriteria;
$criteria->setProperties( $param );
$criteria->add(new TFilter('compf_titular_id','=','1'));
$criteria->setProperty('limit',10);

$objects = $repository->load( $criteria );
$this->datagrid->clear();

if($objects)
{
foreach($objects as $object)
{
$this->datagrid->addItem( $object );
}
}

$criteria->resetProperties();
$count = $repository->count( $criteria );

$this->pageNavigation->setCount( $count );
$this->pageNavigation->setProperties( $param );
$this->pageNavigation->setLimit( 10 );


TTransaction::close();
$this->loaded = TRUE; //Grid carregada

}
catch (Exception $e)
{
new TMessage('error', $e->getMessage());
TTransaction::rollback();
}

}




Código completo:

 
  1. <?php
  2. /**
  3. * TitularMestreDetalheForm Master/Detail
  4. * @author <your name here>
  5. */
  6. class TitularMestreDetalheForm extends TPage
  7. {
  8. private $notebook;
  9. private $form;
  10. private $form_item;
  11. //private $cartgrid;
  12. private $loaded;
  13. /**
  14. * Class constructor
  15. * Creates the page
  16. */
  17. function __construct( $param )
  18. {
  19. parent::__construct();
  20. //criando notebook
  21. //$this->notebook = new BootstrapNotebookWrapper( new TNotebook(1100,500) );
  22. $this->notebook = new TNotebook(1100,500);
  23. //criando formulario
  24. $this->form = new TForm;
  25. //adicionando o notebook dentro do form
  26. $this->form->add($this->notebook);
  27. //Criando o componente HTML
  28. $html = new THtmlEditor('observacao');
  29. $html->setSize(900, 400);
  30. //criando tabela para adicionar ao notebook
  31. $page1 = new TTable;
  32. $page2 = new TTable;
  33. $page3 = new TTable;
  34. $page1-> width = '99%';
  35. //criando um Panel
  36. $panel1 = new TPanel(1000,450);
  37. $page1->addRowSet($panel1);
  38. //criando Panel e add na page3
  39. //$panel2 = new TPanel(1000,200);
  40. //$page3->addRowSet($panel2);
  41. //adicionando duas páginas ao notebook
  42. $this->notebook->appendPage('Dados Pessoais', $page1);
  43. $this->notebook->appendPage('Observação', $page2);
  44. $this->notebook->appendPage('Composição Familiar', $page3);
  45. //-----------------------------------------------------------> view do Titular
  46. // criando os tipos de entrada do formulário
  47. 2612 = new TEntry('id');
  48. $nome = new TEntry('nome');
  49. $apelido = new TEntry('apelido');
  50. $cpf = new TEntry('cpf');
  51. $nis = new TEntry('nis');
  52. $celular1 = new TEntry('celular1');
  53. $celular2 = new TEntry('celular2');
  54. $telefone = new TEntry('telefone');
  55. $contato = new TEntry('contato');
  56. $sexo = new TCombo('sexo');
  57. $pai = new TEntry('pai');
  58. $mae = new TEntry('mae');
  59. $rg = new TEntry('rg');
  60. $viarg = new TEntry('viarg');
  61. $datemisrg = new TDate('datemisrg');
  62. $ufrg = new TCombo('ufrg');
  63. $orgexprg = new TEntry('orgexprg');
  64. $datnasc = new TDate('datnasc');
  65. $naturalidade = new TEntry('naturalidade');
  66. $endereco = new TEntry('endereco');
  67. $numero = new TEntry('numero');
  68. $complemento = new TEntry('complemento');
  69. $pontoref = new TEntry('pontoref');
  70. $cep = new TEntry('cep');
  71. $localtrabalho = new TEntry('localtrabalho');
  72. $qualnecespecial = new TEntry('qualnecespecial');
  73. $necadap = new TCombo('necadap');
  74. $qtdpesres = new TSpinner('qtdpesres');
  75. $valorbeneficio = new TEntry('valorbeneficio');
  76. $desistente = new TCombo('desistente');
  77. $declaracao = new TCombo('declaracao');
  78. $situacaoderua = new TCombo('situacaoderua');
  79. $assocmorador = new TEntry('assocmorador');
  80. $participa = new TCombo('participa');
  81. $situacao_trab_id = new TDBCombo('situacao_trab_id','permission','SituacaoTrab','id','situacaotrab');
  82. $escolaridade_id = new TDBCombo('escolaridade_id','permission','Escolaridade','id','escolaridade');
  83. $ocupacaoprof_id = new TDBCombo('ocupacaoprof_id','permission','Ocupacaoprof','id','descricao');
  84. $tipo_nec_esp_id = new TDBCombo('tipo_nec_esp_id','permission','TipoNecEsp','id','necespecial');
  85. $tempo_trabalho_id = new TDBCombo('tempo_trabalho_id','permission','TempoTrabalho','id','TempoTrab');
  86. $renda_mensal_id = new TDBCombo('renda_mensal_id','permission','RendaMensal','id','renda');
  87. $estado_civil_id = new TDBCombo('estado_civil_id','permission','EstadoCivil','id','estadocivil');
  88. $beneficio_id = new TDBCombo('beneficio_id','permission','Beneficio','id','beneficio');
  89. $sitconjugal_id = new TDBCombo('sitconjugal_id','permission','Sitconjugal','id','sitconjugal');
  90. $bairro_id = new TDBCombo('bairro_id','permission','Bairro','id','bairro');
  91. $logradouro_id = new TDBCombo('logradouro_id','permission','Logradouro','id','descricao');
  92. $rendatotal = new TEntry('rendatotal');
  93. $renda_comp_id = new TDBCombo('renda_comp_id','permission','RendaCompl','id','tipoderenda');
  94. $observacao = $html;
  95. //desabilitando o campo código
  96. 2612->setEditable(False);
  97. //adicionando itens ao combo sexo
  98. $combosexo_items = array(1=>"M",2=>"F");
  99. $sexo->addItems($combosexo_items);
  100. //adicionando itens ao combo UF
  101. $comboufrg_items = array(1=>"SP",2=>"RJ",3=>"AC",4=>"AL",5=>"AM",
  102. 6=>"AP",7=>"BA",8=>"CE",9=>"DF",10=>"ES",
  103. 11=>"GO",12=>"MA",13=>"MG",14=>"MS",15=>"MT",
  104. 16=>"PA",17=>"PB",18=>"PE",19=>"PI",20=>"PR",
  105. 21=>"RN",22=>"RO",23=>"RR",24=>"RS",25=>"SC",
  106. 26=>"SE");
  107. $ufrg->addItems($comboufrg_items);
  108. //adicionando opções de sim/nao ao combo
  109. $combo_items = array(1=>"Sim",2=>"Não");
  110. //adicionando itens ao combo nec.adap/declaração/desistente/situação de rua/participa
  111. $necadap->addItems($combo_items);
  112. $declaracao->addItems($combo_items);
  113. $desistente->addItems($combo_items);
  114. $situacaoderua->addItems($combo_items);
  115. $participa->addItems($combo_items);
  116. //valores para o spinner Qt. Pessoas Resid.
  117. $qtdpesres->setRange(0,20,1);
  118. // definindo o tamanho dos campos
  119. 2612->setSize(70);
  120. $nome->setSize(260);
  121. $apelido->setSize(140);
  122. $cpf->setSize(111);
  123. $nis->setSize(111);
  124. $celular1->setSize(115);
  125. $celular2->setSize(115);
  126. $telefone->setSize(105);
  127. $contato->setSize(145);
  128. $sexo->setSize(44);
  129. $pai->setSize(260);
  130. $mae->setSize(260);
  131. $rg->setSize(140);
  132. $viarg->setSize(55);
  133. $datemisrg->setSize(80);
  134. $ufrg->setSize(55);
  135. $orgexprg->setSize(95);
  136. $datnasc->setSize(80);
  137. $naturalidade->setSize(175);
  138. $endereco->setSize(205);
  139. $numero->setSize(80);
  140. $complemento->setSize(90);
  141. $pontoref->setSize(290);
  142. $cep->setSize(80);
  143. $localtrabalho->setSize(250);
  144. $tipo_nec_esp_id->setSize(180);
  145. $qualnecespecial->setSize(180);
  146. $necadap->setSize(58);
  147. $qtdpesres->setSize(62);
  148. $valorbeneficio->setSize(73);
  149. $declaracao->setSize(67);
  150. $situacaoderua->setSize(67);
  151. $desistente->setSize(67);
  152. $assocmorador->setSize(382);
  153. $participa->setSize(67);
  154. $situacao_trab_id->setSize(195);
  155. $escolaridade_id->setSize(260);
  156. $ocupacaoprof_id->setSize(340);
  157. $tempo_trabalho_id->setSize(147);
  158. $renda_mensal_id->setSize(180);
  159. $estado_civil_id->setSize(100);
  160. $sitconjugal_id->setSize(100);
  161. $beneficio_id->setSize(185);
  162. $bairro_id->setSize(150);
  163. $logradouro_id->setSize(180);
  164. $rendatotal->setSize(105);
  165. $renda_comp_id->setSize(180);
  166. //adicionando os campos no Panel da tabela1
  167. $panel1->put(new TLabel('Codigo'), 20, 16);
  168. $panel1->put(new TLabel('Nome do Titular'), 95, 16);
  169. $panel1->put(new TLabel('Apelido'), 360, 16);
  170. $panel1->put(new TLabel('Sexo'), 505, 16);
  171. $panel1->put(new TLabel('Escolaridade'), 555, 16);
  172. $panel1->put(new TLabel('C.P.F'), 820, 16);
  173. $panel1->put(new TLabel('Nis'), 937, 16);
  174. $panel1->put(new TLabel('Celular-1'), 20, 71);
  175. $panel1->put(new TLabel('Celular-2'), 140, 71);
  176. $panel1->put(new TLabel('Telefone'), 260, 71);
  177. $panel1->put(new TLabel('Contato'), 370, 71);
  178. $panel1->put(new TLabel('Pai'), 520, 71);
  179. $panel1->put(new TLabel('Mãe'), 785, 71);
  180. $panel1->put(new TLabel('Nº.Ident.'), 20, 126);
  181. $panel1->put(new TLabel('Via RG'), 165, 126);
  182. $panel1->put(new TLabel('Data Emis.'), 225, 126);
  183. $panel1->put(new TLabel('Órgão Exp.'), 335, 126);
  184. $panel1->put(new TLabel('UF.RG'), 435, 126);
  185. $panel1->put(new TLabel('Data Nasc.'), 495, 126);
  186. $panel1->put(new TLabel('Naturalidade'), 600, 126);
  187. $panel1->put(new TLabel('CEP'), 780, 126);
  188. $panel1->put(new TLabel('Logradouro'), 865, 126);
  189. $panel1->put(new TLabel('Endereco'), 20, 181);
  190. $panel1->put(new TLabel('Bairro'), 230, 181);
  191. $panel1->put(new TLabel('Número'), 385, 181);
  192. $panel1->put(new TLabel('Complemento'), 470, 181);
  193. $panel1->put(new TLabel('Ponto de Referencia'), 565, 181);
  194. $panel1->put(new TLabel('Portador de Nec.Esp'), 860, 181);
  195. $panel1->put(new TLabel('Qual Nec.Esp.'), 20, 236);
  196. $panel1->put(new TLabel('Nec.Adap'), 200, 236);
  197. $panel1->put(new TLabel('Estado Civil'), 268, 236);
  198. $panel1->put(new TLabel('Sit. Conjugal'), 372, 236);
  199. $panel1->put(new TLabel('Qt.P.Resid'), 477, 236);
  200. $panel1->put(new TLabel('Ocupação / Profissão'), 548, 236);
  201. $panel1->put(new TLabel('Tempo de Trab.'), 893, 236);
  202. $panel1->put(new TLabel('Situação Trabalhista'), 20, 291);
  203. $panel1->put(new TLabel('Local Trabalho'), 220, 291);
  204. $panel1->put(new TLabel('Renda Mensal'), 475, 291);
  205. $panel1->put(new TLabel('Renda Complem'), 660, 291);
  206. $panel1->put(new TLabel('Beneficio'), 845, 291);
  207. $panel1->put(new TLabel('Val.Benef'), 20, 346);
  208. $panel1->put(new TLabel('Renda.Tot'), 135, 346);
  209. $panel1->put(new TLabel('Declaração'), 210, 346);
  210. $panel1->put(new TLabel('Sit.Rua'), 285, 346);
  211. $panel1->put(new TLabel('Desist.'), 360, 346);
  212. $panel1->put(new TLabel('Associação de Moradores'), 432, 346);
  213. $panel1->put(new TLabel('Participa'), 820, 346);
  214. ## inserindo campos na pagina 1
  215. $panel1->put(2612, 20, 35);
  216. $panel1->put($nome, 95, 35);
  217. $panel1->put($apelido, 360, 35);
  218. $panel1->put($sexo, 505, 35);
  219. $panel1->put($escolaridade_id, 555, 35);
  220. $panel1->put($cpf, 820, 35);
  221. $panel1->put($nis, 937, 35);
  222. $panel1->put($celular1, 20, 90);
  223. $panel1->put($celular2, 140, 90);
  224. $panel1->put($telefone, 260, 90);
  225. $panel1->put($contato, 370, 90);
  226. $panel1->put($pai, 520, 90);
  227. $panel1->put($mae, 785, 90);
  228. $panel1->put($rg, 20, 145);
  229. $panel1->put($viarg, 165, 145);
  230. $panel1->put($datemisrg, 225, 145);
  231. $panel1->put($orgexprg, 335, 145);
  232. $panel1->put($ufrg, 435, 145);
  233. $panel1->put($datnasc, 495, 145);
  234. $panel1->put($naturalidade, 600, 145);
  235. $panel1->put($cep, 780, 145);
  236. $panel1->put($logradouro_id, 865, 145);
  237. $panel1->put($endereco, 20, 200);
  238. $panel1->put($bairro_id, 230, 200);
  239. $panel1->put($numero, 385, 200);
  240. $panel1->put($complemento, 470, 200);
  241. $panel1->put($pontoref, 565, 200);
  242. $panel1->put($tipo_nec_esp_id, 860, 200);
  243. $panel1->put($qualnecespecial, 20, 255);
  244. $panel1->put($necadap, 205, 255);
  245. $panel1->put($estado_civil_id, 268, 255);
  246. $panel1->put($sitconjugal_id, 372, 255);
  247. $panel1->put($qtdpesres, 477, 255);
  248. $panel1->put($ocupacaoprof_id, 548, 255);
  249. $panel1->put($tempo_trabalho_id,893, 255);
  250. $panel1->put($situacao_trab_id, 20, 310);
  251. $panel1->put($localtrabalho, 220, 310);
  252. $panel1->put($renda_mensal_id, 475, 310);
  253. $panel1->put($renda_comp_id, 660, 310);
  254. $panel1->put($beneficio_id, 845, 310);
  255. $panel1->put($valorbeneficio, 20, 365);
  256. $panel1->put($rendatotal, 100, 365);
  257. $panel1->put($declaracao, 210, 365);
  258. $panel1->put($situacaoderua, 285, 365);
  259. $panel1->put($desistente, 360, 365);
  260. $panel1->put($assocmorador, 432, 365);
  261. $panel1->put($participa, 820, 365);
  262. //-----------------------------------------------------------> fim da view do Titular
  263. //-----------------------------------------------------------> View da Composicao Familiar
  264. // criando os tipos de entrada do formulário
  265. //$compf_nome = new TEntry('compf_nome');
  266. //$compf_Idade = new TSpinner('compf_Idade');
  267. //$compf_renda = new TEntry('compf_renda');
  268. //$compf_rendacomp_id = new TDBCombo('renda_comp_id','permission','RendaCompl','id','tipoderenda');
  269. //$compf_valbenef = new TEntry('compf_valbenef');
  270. //$compf_localtrabalho = new TEntry('compf_localtrabalho');
  271. //$compf_titular_id = new TEntry('compf_titular_id');
  272. //$compf_situacao_trab_id = new TDBCombo('compf_situacaotrab_id','permission','SituacaoTrab','id','situacaotrab');
  273. //$compf_escolaridade_id = new TDBCombo('compf_escolaridade_id','permission','Escolaridade','id','escolaridade');//260
  274. //$compf_ocupacaoprof_id = new TDBCombo('compf_ocupacaoprof_id','permission','Ocupacaoprof','id','descricao'); //260
  275. //$compf_tipo_nec_esp_id = new TDBCombo('tipo_nec_esp_id','permission','TipoNecEsp','id','necespecial');
  276. //$compf_tempo_trabalho_id = new TDBCombo('compf_tempo_trabalho_id','permission','TempoTrabalho','id','TempoTrab');
  277. //$compf_renda_mensal_id = new TDBCombo('compf_renda_mensal_id','permission','RendaMensal','id','renda');
  278. //$compf_renda_compl_id = new TDBCombo('compf_renda_comp_id','permission','RendaCompl','id','tipoderenda');
  279. //$compf_grauparent_id = new TDBCombo('compf_grauparent_id','permission','Grauparent','id','grauparentesco');
  280. //$compf_estado_civil_id = new TDBCombo('compf_estado_civil_id','permission','EstadoCivil','id','estadocivil');
  281. //$compf_sitconjugal_id = new TDBCombo('compf_sitconjugal_id','permission','Sitconjugal','id','sitconjugal');
  282. //$compf_beneficio_id = new TDBCombo('compf_beneficio_id','permission','Beneficio','id','beneficio');
  283. //$compf_qualnecespecial = new TEntry('compf_qualnecespecial');
  284. //validando campo
  285. //$compf_titular_id->addValidation('compf_titular_id', new TRequiredValidator);
  286. //valores para o spinner Qt. Pessoas Resid.
  287. //$compf_Idade->setRange(0,120,1);
  288. // definindo o tamanho dos campos
  289. //2612->setSize(80); //ok
  290. //$compf_nome -> setSize(240);
  291. //$compf_Idade -> setSize(55);
  292. //$compf_renda -> setSize(100);
  293. //$compf_rendacomp_id -> setSize(195);
  294. //$compf_valbenef -> setSize(100);
  295. //$compf_localtrabalho -> setSize(310);
  296. //$compf_titular_id -> setSize(65);
  297. //$compf_situacao_trab_id -> setSize(210);
  298. //$compf_escolaridade_id -> setSize(300);
  299. //$compf_ocupacaoprof_id -> setSize(340);
  300. //$compf_tipo_nec_esp_id -> setSize(180);
  301. //$compf_tempo_trabalho_id -> setSize(151);
  302. //$compf_renda_mensal_id -> setSize(180);
  303. //$compf_renda_compl_id -> setSize(180);
  304. //$compf_grauparent_id -> setSize(150);
  305. //$compf_estado_civil_id -> setSize(100);
  306. //$compf_sitconjugal_id -> setSize(100);
  307. //$compf_beneficio_id -> setSize(120);
  308. //$compf_qualnecespecial -> setSize(200);
  309. //formatação de dinheiro
  310. //$compf_renda->setNumericMask(2, '.', ',');
  311. // add uma linha para o título
  312. //$row = $table_item->addRow();
  313. //$row->class = 'tformtitle'; // CSS class
  314. //$cell = $row->addCell( new TLabel('Tabela de Familiáres'));
  315. //$cell->colspan = 4;
  316. //adicionando os campos no Panel da tabela1
  317. //$panel2->put(new TLabel('Cód.Titular'), 20, 16);
  318. //$panel2->put(new TLabel('Nome'), 92, 16);
  319. //$panel2->put(new TLabel('Idade'), 340, 16);
  320. //$panel2->put(new TLabel('Parentesco'), 403, 16);
  321. //$panel2->put(new TLabel('Estado Civil'), 560, 16);
  322. //$panel2->put(new TLabel('Sit.Conjugal'), 665, 16);
  323. //$panel2->put(new TLabel('Escolaridade'), 770, 16);
  324. //$panel2->put(new TLabel('Tp.Deficiencia'), 20, 71); //305
  325. //$panel2->put(new TLabel('Qual Necessidade'), 205, 71);
  326. //$panel2->put(new TLabel('Ocupação / Profissão'),410, 71);
  327. //$panel2->put(new TLabel('Local do Trabalho'), 755, 71);
  328. //$panel2->put(new TLabel('Situação Trabalhista'), 20,126); //191
  329. //$panel2->put(new TLabel('Tempo de Trabalho'), 239,126);
  330. //$panel2->put(new TLabel('Renda Mensal'), 396,126);
  331. //$panel2->put(new TLabel('Renda Complementar'), 579,126);
  332. //$panel2->put(new TLabel('Renda'), 764,126);
  333. //$panel2->put(new TLabel('Val.Benef'), 870,126);
  334. // criando ação para o botão de adição dos itens
  335. //$buttonAddCompf = new TButton('add');
  336. //$buttonAddCompf->setAction(new TAction(array($this, 'onAddItem')), 'Adicionar');
  337. //$buttonAddCompf->setImage('ico_add.png');
  338. ## inserindo campos na pagina 2
  339. //$panel2->put($compf_titular_id, 20, 35);
  340. //$panel2->put($compf_nome, 92, 35);
  341. //$panel2->put($compf_Idade, 340, 35);
  342. //$panel2->put($compf_grauparent_id, 403, 35); //130
  343. //$panel2->put($compf_estado_civil_id, 560, 35);
  344. //$panel2->put($compf_sitconjugal_id, 665, 35);
  345. //$panel2->put($compf_escolaridade_id, 770, 35);
  346. //$panel2->put($compf_tipo_nec_esp_id, 20, 90);
  347. //$panel2->put($compf_qualnecespecial, 205, 90);
  348. //$panel2->put($compf_ocupacaoprof_id, 410, 90);
  349. //$panel2->put($compf_localtrabalho, 755, 90);
  350. //$panel2->put($compf_situacao_trab_id, 20,145);
  351. //$panel2->put($compf_tempo_trabalho_id, 239,145);
  352. //$panel2->put($compf_renda_mensal_id, 396,145);
  353. //$panel2->put($compf_renda_compl_id, 579,145);
  354. //$panel2->put($compf_renda, 764,145);
  355. //$panel2->put($compf_valbenef, 870,145);
  356. //$panel2->put($buttonAddCompf, 975,145);
  357. // criando os itens do Grid
  358. //$this->cartgrid = new TQuickGrid;
  359. //$this->cartgrid->class = 'tdatagrid_table customized-table';
  360. //$this->cartgrid->makeScrollable();
  361. //$this->cartgrid->setHeight( 120 );
  362. //parent::include_css('app/resources/custom-table.css');
  363. //$this->cartgrid->addQuickColumn('ID', 'compf_titular_id', 'left', 25);
  364. //$this->cartgrid->addQuickColumn('Nome', 'compf_nome', 'left', 100);
  365. //$this->cartgrid->addQuickColumn('Idade', 'compf_Idade', 'left', 50);
  366. //$this->cartgrid->addQuickColumn('Grau Parent.', 'compf_grauparent_id', 'left', 100);
  367. //$this->cartgrid->addQuickColumn('Est.Civil', 'compf_estado_civil_id', 'left', 100);
  368. //$this->cartgrid->addQuickColumn('Sit.Conj', 'compf_sitconjugal_id', 'left', 100);
  369. //$this->cartgrid->addQuickColumn('Escolaridade', 'compf_escolaridade_id', 'left', 100);
  370. //$this->cartgrid->addQuickColumn('Tp.Nec.Esp', 'compf_tipo_nec_esp_id', 'left', 25);
  371. //$this->cartgrid->addQuickColumn('Qual Nec.Esp', 'compf_qualnecespecial', 'left', 25);
  372. //$this->cartgrid->addQuickColumn('Ocup/Prof', 'compf_ocupacaoprof_id', 'left', 25);
  373. //$this->cartgrid->addQuickColumn('Loc.Trabalho', 'compf_localtrabalho', 'left', 25);
  374. //$this->cartgrid->addQuickColumn('Sit.Trab.', 'compf_situacao_trab_id', 'left', 25);
  375. //$this->cartgrid->addQuickColumn('Tempo Trab.', 'compf_tempo_trabalho_id', 'left', 25);
  376. //$this->cartgrid->addQuickColumn('Renda mensal', 'compf_renda_mensal_id', 'left', 25);
  377. //$this->cartgrid->addQuickColumn('Renda Compl.', 'compf_renda_compl_id', 'left', 25);
  378. //$this->cartgrid->addQuickColumn('Renda', 'compf_renda', 'right', 25);
  379. //$this->cartgrid->addQuickColumn('Val.Benef.', 'compf_valbenef', 'right', 25);
  380. //$this->cartgrid->addQuickAction('Delete', new TDataGridAction(array($this, 'onDelete')), 'product_id', 'ico_delete.png');
  381. //$this->cartgrid->createModel();
  382. $this->datagrid = new TDataGrid;
  383. $compf_id = new TDataGridColumn('id','ID','left',80);
  384. $compf_nome = new TDataGridColumn('compf_nome','Nome dos Dependentes','left',300);
  385. $parentesco = new TDataGridColumn('grauparent->grauparentesco','Parentesco','left',100);
  386. $this->datagrid->addColumn( $compf_id );
  387. $this->datagrid->addColumn( $compf_nome );
  388. $this->datagrid->addColumn( $parentesco );
  389. $action1 = new TDataGridAction( array('CompFamForm','onEdit' ) );
  390. $action1->setLabel('Editar');
  391. $action1->setImage('ico_edit.png');
  392. $action1->setField('id');
  393. $this->datagrid->addAction( $action1 );
  394. $this->datagrid->createModel();
  395. $this->pageNavigation = new TPageNavigation;
  396. $this->pageNavigation->setAction(new TAction(array($this, 'onReload')));
  397. $this->pageNavigation->setWidth( $this->datagrid->getWidth() );
  398. $page3->addRowSet($this->datagrid);
  399. $page3->addRowSet($this->pageNavigation);
  400. //-----------------------------------------------------------> Fim da View Composicao Familiar
  401. //adicionando Editor HTML na aba2
  402. $page2->addRowSet($html);
  403. //adicionando butões na página 0
  404. $butpage0_avc = new TButton('action0');
  405. $butpage0_avc->setAction( new TAction( array($this,'onStep2')),'Avançar');
  406. $butpage0_avc->setImage('fa:save.png');
  407. $butpage0_list = new TButton('list');
  408. $butpage0_list->setAction(new TAction(array('TitularList', 'onReload')), 'Consultar');
  409. //adicionando butões na página 1
  410. $butpage1_avc = new TButton('action1');
  411. $butpage1_avc->setAction( new TAction( array($this,'onStep3')),'Avançar');
  412. $butpage1_vlt = new TButton('action2');
  413. $butpage1_vlt->setAction( new TAction( array($this,'onStep1')),'Voltar');
  414. $butpage1_slv = new TButton('action3');
  415. $butpage1_slv->setAction( new TAction( array($this,'onSave')),'Salvar');
  416. $page1->addRowSet( array($butpage0_avc, $butpage0_list));
  417. $page2->addRowSet( array($butpage1_avc, $butpage1_vlt, $butpage1_slv) );
  418. //capturando os campos do formulário
  419. $this->form->setFields(array(2612,$nome,$apelido,$sexo,$escolaridade_id,$cpf,$nis,$celular1,$celular2,$telefone,$contato,$pai,$mae,
  420. $rg,$viarg,$datemisrg,$orgexprg,$ufrg,$datnasc,$naturalidade,$logradouro_id,$cep,$endereco,$bairro_id,
  421. $numero,$complemento,$pontoref,$tipo_nec_esp_id,$qualnecespecial,$necadap,$estado_civil_id,$sitconjugal_id,
  422. $qtdpesres,$ocupacaoprof_id,$tempo_trabalho_id,$situacao_trab_id,$localtrabalho,$renda_mensal_id,
  423. $renda_comp_id,$beneficio_id,$valorbeneficio,$rendatotal,$declaracao,$situacaoderua,$desistente,
  424. $assocmorador,$participa,$butpage0_avc, $butpage0_list,$butpage1_avc,$butpage1_vlt,$butpage1_slv,
  425. $html));
  426. parent::add($this->form);
  427. }
  428. public function onStep2()
  429. {
  430. $data = $this->form->getData();
  431. $this->form->setData($data);
  432. $this->notebook->setCurrentPage( 1 );
  433. }
  434. public function onStep3()
  435. {
  436. $data = $this->form->getData();
  437. $this->form->setData($data);
  438. $this->notebook->setCurrentPage( 2 );
  439. }
  440. public function onStep1()
  441. {
  442. $this->notebook->setCurrentPage( 0 );
  443. $this->form->setData($this->form->getData());
  444. }
  445. public function onSave($param)
  446. {
  447. $this->notebook->setCurrentPage( 1 ); //página atual de salvamento
  448. try
  449. {
  450. TTransaction::open('permission'); // open a transaction
  451. /**
  452. // Enable Debug logger for SQL operations inside the transaction
  453. TTransaction::setLogger(new TLoggerSTD); // standard output
  454. TTransaction::setLogger(new TLoggerTXT('log.txt')); // file
  455. **/
  456. $this->form->validate(); // valida dados do form
  457. $object = new Titular; // cria os objetos em branco
  458. $data = $this->form->getData(); // pega dados do form como array
  459. $object->fromArray( (array) $data); // lê os objetos do array
  460. $object->store(); // salva os objetos
  461. // get the generated id
  462. $data->id = $object->id;
  463. $this->form->setData($data); // preenche o formulário
  464. TTransaction::close(); // fecha a transação
  465. new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
  466. }
  467. catch (Exception $e) // in case of exception
  468. {
  469. new TMessage('error', $e->getMessage()); // mostra os erros de exceção
  470. $this->form->setData( $this->form->getData() ); // continua com os dados
  471. TTransaction::rollback(); // undo all pending operations
  472. }
  473. }
  474. /**
  475. * Load object to form data
  476. * @param $param Request
  477. */
  478. public function onEdit( $param )
  479. {
  480. try
  481. {
  482. if (isset($param['key']))
  483. {
  484. $key = $param['key']; // pega a chave do parametro
  485. TTransaction::open('permission'); // abre a transação
  486. $object = new Titular($key); // instancia o registro
  487. $this->form->setData($object); // preenche o formulário
  488. TTransaction::close(); // fecha a transação
  489. }
  490. else
  491. {
  492. $this->form->clear();
  493. }
  494. }
  495. catch (Exception $e) // in case of exception
  496. {
  497. new TMessage('error', $e->getMessage()); // shows the exception error message
  498. TTransaction::rollback(); // undo all pending operations
  499. }
  500. }
  501. /**
  502. * Add a ComposicaoFamiliar into the cart
  503. */
  504. public function onAddItem()
  505. {
  506. try
  507. {
  508. //$this->form_item->validate(); // validate form data
  509. //
  510. //$items = TSession::getValue('items'); // get items from session
  511. //$item = $this->form_item->getData('CompfItem');
  512. //$items[ $item->product_id ] = $item; // add the item
  513. //TSession::setValue('items', $items); // store back tthe session
  514. //$this->form_item->clear(); // clear form
  515. //$this->onReload(); // reload data
  516. }
  517. catch (Exception $e) // in case of exception
  518. {
  519. new TMessage('error', '<b>Error</b> ' . $e->getMessage());
  520. }
  521. }
  522. /**
  523. * Remove a product from the cart
  524. */
  525. public function onDelete($param)
  526. {
  527. // get the cart objects from session
  528. //$items = TSession::getValue('items');
  529. //unset($items[ $param['key'] ]); // remove the product from the array
  530. //TSession::setValue('items', $items); // put the array back to the session
  531. // reload datagrid
  532. $this->onReload( func_get_arg(0) );
  533. }
  534. // função reoload da Grid
  535. public function onReload( $param ) //$param = NULL
  536. {
  537. try
  538. {
  539. //-------------------------------------------------------------------
  540. //$key = TSession::getValue('id');
  541. //-------------------------------------------------------------------
  542. TTransaction::open('permission');
  543. $repository = new TRepository('CompFam');
  544. $criteria = new TCriteria;
  545. $criteria->setProperties( $param );
  546. $criteria->add(new TFilter('compf_titular_id','=','1'));
  547. $criteria->setProperty('limit',10);
  548. $objects = $repository->load( $criteria );
  549. $this->datagrid->clear();
  550. if($objects)
  551. {
  552. foreach($objects as $object)
  553. {
  554. $this->datagrid->addItem( $object );
  555. }
  556. }
  557. $criteria->resetProperties();
  558. $count = $repository->count( $criteria );
  559. $this->pageNavigation->setCount( $count );
  560. $this->pageNavigation->setProperties( $param );
  561. $this->pageNavigation->setLimit( 10 );
  562. TTransaction::close();
  563. $this->loaded = TRUE; //Grid carregada
  564. }
  565. catch (Exception $e)
  566. {
  567. new TMessage('error', $e->getMessage());
  568. TTransaction::rollback();
  569. }
  570. }
  571. public function show()
  572. {
  573. if ( !$this->loaded ) //se o Grid não foi carregado
  574. {
  575. $this->onReload( func_get_arg(0) ); //primeiro parâmetro vai para o onReload
  576. }
  577. parent::show();
  578. }
  579. }
  580. e nesse trecho, quando eu vou pra outra página que volto com o botão listar, da classe CompFamForm, ele limpa completamente o formulário TitularMestreDetalheForm
  581. $this->form->addQuickAction('Retornar', new TAction(array('TitularMestreDetalheForm', 'onReload')), 'ico_datagrid.png');
  582. código completo:
 
  1. <?php
  2. /**
  3. * CompFamForm Form
  4. * @author <your name here>
  5. */
  6. class CompFamForm extends TPage
  7. {
  8. protected $form; // form
  9. /**
  10. * Form constructor
  11. * @param $param Request
  12. */
  13. public function __construct( $param )
  14. {
  15. parent::__construct();
  16. // creates the form
  17. $this->form = new TQuickForm('form_CompFam');
  18. $this->form->class = 'tform'; // change CSS class
  19. $this->form->style = 'display: table;width:100%'; // change style
  20. // define the form title
  21. $this->form->setFormTitle('Cadastro dos componentes da família');
  22. // create the form fields
  23. 2612 = new TEntry('id');
  24. $compf_nome = new TEntry('compf_nome');
  25. $compf_Idade = new TSpinner('compf_Idade');
  26. $compf_renda = new TEntry('compf_renda');
  27. $compf_valbenef = new TEntry('compf_valbenef');
  28. $compf_localtrabalho = new TEntry('compf_localtrabalho');
  29. $compf_titular_id = new TDBCombo('compf_titular_id','permission','Titular','id','nome');
  30. $compf_renda_comp_id = new TDBCombo('compf_renda_comp_id','permission','RendaCompl','id','tipoderenda');
  31. $compf_situacaotrab_id = new TDBCombo('compf_situacaotrab_id','permission','SituacaoTrab','id','situacaotrab');
  32. $compf_escolaridade_id = new TDBCombo('compf_escolaridade_id','permission','Escolaridade','id','escolaridade');
  33. $compf_ocupacaoprof_id = new TDBCombo('compf_ocupacaoprof_id','permission','Ocupacaoprof','id','descricao');
  34. $compf_tipo_nec_esp_id = new TDBCombo('compf_tipo_nec_esp_id','permission','TipoNecEsp','id','necespecial');
  35. $compf_tempo_trabalho_id = new TDBCombo('compf_tempo_trabalho_id','permission','TempoTrabalho','id','TempoTrab');
  36. $compf_renda_mensal_id = new TDBCombo('compf_renda_mensal_id','permission','RendaMensal','id','renda');
  37. $compf_grauparent_id = new TDBCombo('compf_grauparent_id','permission','Grauparent','id','grauparentesco');
  38. $compf_estado_civil_id = new TDBCombo('compf_estado_civil_id','permission','EstadoCivil','id','estadocivil');
  39. $compf_sitconjugal_id = new TDBCombo('compf_sitconjugal_id','permission','Sitconjugal','id','sitconjugal');
  40. $compf_qualnecespecial = new TEntry('compf_qualnecespecial');
  41. // add the fields
  42. $this->form->addQuickField('Id', 2612, 100 );
  43. $this->form->addQuickField('Cód.Titular', $compf_titular_id, 400 );
  44. $this->form->addQuickField('Nome', $compf_nome, 400 );
  45. $this->form->addQuickField('Idade', $compf_Idade, 100 );
  46. $this->form->addQuickField('Renda', $compf_renda, 100 );
  47. $this->form->addQuickField('Valbenef', $compf_valbenef, 100 );
  48. $this->form->addQuickField('Localtrabalho', $compf_localtrabalho, 300 );
  49. $this->form->addQuickField('Renda Compl.', $compf_renda_comp_id, 300 );
  50. $this->form->addQuickField('Situacao trabalho', $compf_situacaotrab_id, 300 );
  51. $this->form->addQuickField('Escolaridade', $compf_escolaridade_id, 500 );
  52. $this->form->addQuickField('Ocupacao/Prof', $compf_ocupacaoprof_id, 500 );
  53. $this->form->addQuickField('Tp.Nec.Esp', $compf_tipo_nec_esp_id, 300 );
  54. $this->form->addQuickField('Tempo de Trabalho', $compf_tempo_trabalho_id, 300 );
  55. $this->form->addQuickField('Renda Mensal', $compf_renda_mensal_id, 300 );
  56. $this->form->addQuickField('Grau Parentesco', $compf_grauparent_id, 300 );
  57. $this->form->addQuickField('Estado Civil', $compf_estado_civil_id, 300 );
  58. $this->form->addQuickField('Situacao Conjugal', $compf_sitconjugal_id, 300 );
  59. $this->form->addQuickField('Qual nec.especial', $compf_qualnecespecial, 400 );
  60. if (!empty(2612))
  61. {
  62. 2612->setEditable(FALSE);
  63. $compf_titular_id->setEditable(FALSE);
  64. }
  65. //valores para o spinner Qt. Pessoas Resid.
  66. $compf_Idade->setRange(0,120,1);
  67. $compf_titular_id->addValidation('compf_titular_id', new TRequiredValidator);
  68. $compf_renda_comp_id->addValidation('compf_renda_comp_id', new TRequiredValidator);
  69. /** samples
  70. $this->form->addQuickFields('Date', array($date1, new TLabel('to'), $date2)); // side by side fields
  71. $fieldX->addValidation( 'Field X', new TRequiredValidator ); // add validation
  72. $fieldX->setSize( 100, 40 ); // set size
  73. **/
  74. // create the form actions
  75. $this->form->addQuickAction('Salvar', new TAction(array($this, 'onSave')), 'fa:floppy-o');
  76. $this->form->addQuickAction('Novo', new TAction(array($this, 'onClear')), 'bs:plus-sign green');
  77. $this->form->addQuickAction('Retornar', new TAction(array('TitularMestreDetalheForm', 'onReload')), 'ico_datagrid.png');
  78. // vertical box container
  79. $container = new TVBox;
  80. $container->style = 'width: 90%';
  81. $container->add($this->form);
  82. parent::add($container);
  83. }
  84. /**
  85. * Save form data
  86. * @param $param Request
  87. */
  88. public function onSave( $param )
  89. {
  90. try
  91. {
  92. TTransaction::open('permission'); // open a transaction
  93. /**
  94. // Enable Debug logger for SQL operations inside the transaction
  95. TTransaction::setLogger(new TLoggerSTD); // standard output
  96. TTransaction::setLogger(new TLoggerTXT('log.txt')); // file
  97. **/
  98. $this->form->validate(); // validate form data
  99. $object = new CompFam; // create an empty object
  100. $data = $this->form->getData(); // get form data as array
  101. $object->fromArray( (array) $data); // load the object with data
  102. //var_dump($object);
  103. //exit;
  104. $object->store(); // save the object
  105. // get the generated id
  106. $data->id = $object->id;
  107. $this->form->setData($data); // fill form data
  108. TTransaction::close(); // close the transaction
  109. new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
  110. }
  111. catch (Exception $e) // in case of exception
  112. {
  113. new TMessage('error', $e->getMessage()); // shows the exception error message
  114. $this->form->setData( $this->form->getData() ); // keep form data
  115. TTransaction::rollback(); // undo all pending operations
  116. }
  117. }
  118. /**
  119. * Clear form data
  120. * @param $param Request
  121. */
  122. public function onClear( $param )
  123. {
  124. $this->form->clear();
  125. }
  126. /**
  127. * Load object to form data
  128. * @param $param Request
  129. */
  130. public function onEdit( $param )
  131. {
  132. try
  133. {
  134. if (isset($param['key']))
  135. {
  136. $key = $param['key']; // get the parameter $key
  137. TTransaction::open('permission'); // open a transaction
  138. $object = new CompFam($key); // instantiates the Active Record
  139. $this->form->setData($object); // fill the form
  140. TTransaction::close(); // close the transaction
  141. }
  142. else
  143. {
  144. $this->form->clear();
  145. }
  146. }
  147. catch (Exception $e) // in case of exception
  148. {
  149. new TMessage('error', $e->getMessage()); // shows the exception error message
  150. TTransaction::rollback(); // undo all pending operations
  151. }
  152. }
  153. }

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


NR

Marcos, aí depende de como você está trabalhando. O valor do filtro está na sessão ou está vindo por parâmetro?
Por sessão:
 
  1. <?php
  2. $criteria->add(new TFilter('compf_titular_id','=',TSession::getValue('nomedachave')));
  3. ?>

Por parâmetro:
 
  1. <?php
  2. $criteria->add(new TFilter('compf_titular_id','=',$param['nomedachave']));
  3. ?>
MO

Pois é vem por Sessão, porém quando aperto o botão de avançar ele dá erro, e se clico nas abas normal, sem erro, também quando vou nos dependentes(CompFamForm) ele edita direitinho, porém tem um botão List, que é pra retornar ao formulário anteriror(Grid CompList), ele zera a página
NR

Qual o erro que aparece ao clicar no avançar?

Quanto ao botão List zerar a página, ao invés de chamar a onReload tente chamar a onEdit, passando o id em questão como parâmetro.
MO

Amigo, não estou conseguindo desenrolar, quando eu entro pela primeira vez no formulário, ele mostra todos os registros, mas qdo eu aperto o botão avançar
ele não filtra mais e nem reconhece a variável de sessão, tão pouco a variável do parâmetro, já tentei as duas formas


if (isset($param['key']))
{
$key = $param['key'];
//var_dump($key);
//exit;
}
else
{
//$key = TSession::getValue('key');
var_dump(isset($param['key']));
}

//-------------------------------------------------------------------
TTransaction::open('permission');
$repository = new TRepository('CompFam');
$criteria = new TCriteria;
$criteria->setProperties( $param );
//var_dump($param);
//exit;

$criteria->add(new TFilter('compf_titular_id','=',$key));
$criteria->setProperty('limit',10);

$objects = $repository->load( $criteria );
$this->datagrid->clear();

if($objects)
{
foreach($objects as $object)
{
$this->datagrid->addItem( $object );
}
}

$criteria->resetProperties();
//$count = $repository->count( $criteria );
//
//$this->pageNavigation->setCount( $count );
//$this->pageNavigation->setProperties( $param );
//$this->pageNavigation->setLimit( 10 );


TTransaction::close();
$this->loaded = TRUE; //Grid carregada
NR

Para usar a sessão e o método getValue, em algum momento você precisa definir o dado a ser gravado, usando a função setValue. Em que parte do código você está fazendo isso?
MO

public function onStep2()
{
$data = $this->form->getData();
$this->form->setData($data);
$this->notebook->setCurrentPage( 1 );
}

public function onStep3()
{
$data = $this->form->getData();
$this->form->setData($data);
$this->notebook->setCurrentPage( 2 );
}

public function onStep1()
{
$data = $this->form->getData();
$this->form->setData($data);
$this->notebook->setCurrentPage( 0 );

//$this->notebook->setCurrentPage( 0 );
//$this->form->setData($this->form->getData());

}
NR

Me refiro à função TSession::setValue. Parece que você está tentando pegar o valor da sessão pelo TSession::getValue sem ter definido esse valor.
MO

você teria um artigo, ou vídeo qualquer explicação sobre o TSession::getValue e TSession::setValue ?? pra eu entender melhor
NR

Marcos, a classe TSession é só um wrapper para a manipulação da variável superglobal $_SESSION.
Exemplo:
 
  1. <?php
  2. TSession::setValue('compf_titular_id','1'); // estou gravando o valor 1 na sessao, identificado pela chave compf_titular_id, que é equivalente à linha abaixo:
  3. $_SESSION['compf_titular_id'] = '1';
  4. ?>


Após gravarmos os valores na sessão aí sim podemos utilizar a getValue:
 
  1. <?php
  2. $valor = TSession::getValue('compf_titular_id'); // equivalente a
  3. $valor = $_SESSION['compf_titular_id'];
  4. ?>


Ficou claro? Qualquer dúvida posta aí...