Commit b9947e7f5860621a3aa7410d24560838876bfb28
1 parent
ec78cdac
Exists in
master
and in
7 other branches
--no commit message
Showing
7 changed files
with
104 additions
and
56 deletions
Show diff stats
admin/js/core.js
... | ... | @@ -77,8 +77,8 @@ function cabecalhoMetaestat(id,excluir){ |
77 | 77 | {id:"conexao",titulo:"Conexões",link:"estat_conexao.html"}, |
78 | 78 | {id:"tipo_regiao",titulo:"Regiões",link:"estat_tipo_regiao.html"}, |
79 | 79 | {id:"fonteinfo",titulo:"Fonte",link:"estat_fonteinfo.html"}, |
80 | - {id:"editor",titulo:"Editor",link:"estat_editor.html"}, | |
81 | - {id:"uploaddados",titulo:"Upload",link:"estat_uploaddados.html"}, | |
80 | + {id:"editor",titulo:"Gerenciador BD/Upload",link:"estat_editor.html"}, | |
81 | + //{id:"uploaddados",titulo:"Upload",link:"estat_uploaddados.html"}, | |
82 | 82 | {id:"mapa",titulo:"Publicador",link:"estat_mapa.html"}, |
83 | 83 | {id:"login",titulo:"Login",js:"i3GEO.login.dialogo.abreLogin()"} |
84 | 84 | ]; | ... | ... |
admin/js/estat_tipo_regiao.js
... | ... | @@ -264,8 +264,9 @@ function montaEditorAgregacoes(dados,id,recordid){ |
264 | 264 | { label: "Cancela", value: "CANCEL", checked: false } |
265 | 265 | ]); |
266 | 266 | editorBotoes.on("checkedButtonChange", on_editorCheckBoxChange); |
267 | - YAHOO.admin.container.panelEditor2 = new YAHOO.widget.Panel("janela_editor2", { fixedcenter:true,close:false,width:"400px", height:"280px",overflow:"auto", visible:false,constraintoviewport:true } ); | |
267 | + YAHOO.admin.container.panelEditor2 = new YAHOO.widget.Panel("janela_editor2", { modal: true,fixedcenter:true,close:false,width:"400px", height:"280px",overflow:"auto", visible:false,constraintoviewport:true } ); | |
268 | 268 | YAHOO.admin.container.panelEditor2.render(); |
269 | + YAHOO.i3GEO.janela.manager.register(YAHOO.admin.container.panelEditor2); | |
269 | 270 | } |
270 | 271 | YAHOO.admin.container.panelEditor2.show(); |
271 | 272 | $i("editor_bd2").innerHTML = montaDivAgregacoes(dados); |
... | ... | @@ -479,4 +480,4 @@ function selColuna(idEleValue,idEleCodigoConexao,idEleNomeEsquema,idEleNomeTabel |
479 | 480 | core_makeRequest(i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=colunasTabela&tipo="+tipo+"&formato=json&codigo_estat_conexao="+eleCodigoConexao.value+"&nome_esquema="+eleNomeEsquema.value+"&nome_tabela="+eleNomeTabela.value,callback); |
480 | 481 | } |
481 | 482 | |
482 | -//YAHOO.util.Event.addListener(window, "load", initMenu); | |
483 | 483 | \ No newline at end of file |
484 | +//YAHOO.util.Event.addListener(window, "load", initMenu); | ... | ... |
admin/js/estat_variavel.js
... | ... | @@ -587,8 +587,8 @@ i3GEOadmin.variaveis = { |
587 | 587 | //ins += "<br><br><br>"; |
588 | 588 | //o input hidden recebe a cor da janela de selecao interativa e executa o preenchimento dos campos rgb |
589 | 589 | |
590 | - $i("editor_bd").innerHTML = ins+"<input type=hidden value='' id='inputEventoCor' onchange='i3GEOadmin.variaveis.classes.preencheCores(\"inputEventoCor\",\"E\")' />"; | |
591 | - $i("editor_bd").innerHTML = ins+"<input type=hidden value='' id='inputEventoOutlineCor' onchange='i3GEOadmin.variaveis.classes.preencheCores(\"inputEventoOutlineCor\",\"Eo\")' />"; | |
590 | + $i("editor_bd").innerHTML = ins+"<input type=hidden value='' id='inputEventoCor' onchange='i3GEOadmin.variaveis.classes.preencheCores(\"inputEventoCor\",\"E\")' />" + | |
591 | + "<input type=hidden value='' id='inputEventoOutlineCor' onchange='i3GEOadmin.variaveis.classes.preencheCores(\"inputEventoOutlineCor\",\"Eo\")' />"; | |
592 | 592 | |
593 | 593 | }, |
594 | 594 | preencheCores: function(id,prefixo){ | ... | ... |
admin/php/classe_metaestat.php
... | ... | @@ -341,7 +341,6 @@ class Metaestat{ |
341 | 341 | $sql = " SELECT d.".$dados["colunavalor"].",d.".$dados["colunaidgeo"]; |
342 | 342 | } |
343 | 343 | |
344 | - //$sql = " SELECT d.".$dados["colunavalor"].",d.".$dados["colunaidgeo"]; | |
345 | 344 | $colunas[] = $dados["colunavalor"]; |
346 | 345 | $colunas[] = $dados["colunaidgeo"]; |
347 | 346 | if(!empty($agruparpor)){ |
... | ... | @@ -429,14 +428,6 @@ class Metaestat{ |
429 | 428 | else{ |
430 | 429 | $sqlgeo .= " FROM (SELECT * FROM ".$dados["esquemadb"].".".$dados["tabela"] ." __dadosfiltro__ ) as d, ".$dadosgeo["esquemadb"].".".$dadosgeo["tabela"]." as g"; |
431 | 430 | $parametrosMedida = ""; |
432 | - /* | |
433 | - if(count($parametrosMedida) > 0){ | |
434 | - $parametrosMedida = implode(",",$parametrosMedida).","; | |
435 | - } | |
436 | - else{ | |
437 | - $parametrosMedida = ""; | |
438 | - } | |
439 | - */ | |
440 | 431 | //o campo deve ser convertido para data |
441 | 432 | if($suportaWMST == true){ |
442 | 433 | $parametrosMedida = $this->listaParametroTempo2CampoData($id_medida_variavel)." as dimtempo,"; |
... | ... | @@ -642,7 +633,9 @@ class Metaestat{ |
642 | 633 | //var_dump($classe);exit; |
643 | 634 | $dados[] = ' CLASS'; |
644 | 635 | $dados[] = ' NAME "'.mb_convert_encoding($classe["titulo"],"ISO-8859-1",mb_detect_encoding($classe["titulo"])).'"'; |
645 | - $dados[] = ' EXPRESSION '.$classe["expressao"]; | |
636 | + if($classe["expressao"] != ""){ | |
637 | + $dados[] = ' EXPRESSION '.$classe["expressao"]; | |
638 | + } | |
646 | 639 | $dados[] = ' STYLE'; |
647 | 640 | $dados[] = ' COLOR '.$classe["vermelho"].' '.$classe["verde"].' '.$classe["azul"]; |
648 | 641 | if(!empty($classe["tamanho"])){ |
... | ... | @@ -909,7 +902,12 @@ class Metaestat{ |
909 | 902 | $sqlf = explode("/*SE*/",$sqlf); |
910 | 903 | $sqlf = explode("/*SG*/",$sqlf[1]); |
911 | 904 | $sqlf = $sqlf[0]." ".$sqlf[2]; |
912 | - $sqlf = str_replace("__filtro__"," AND ".$filtro,$sqlf); | |
905 | + if($filtro != ""){ | |
906 | + $sqlf = str_replace("__filtro__"," AND ".$filtro,$sqlf); | |
907 | + } | |
908 | + else{ | |
909 | + $sqlf = str_replace("__filtro__"," ",$sqlf); | |
910 | + } | |
913 | 911 | /* |
914 | 912 | if($sql["filtro"] == true){ |
915 | 913 | if(!empty($filtro)){ | ... | ... |
admin/php/metaestat.php
... | ... | @@ -355,11 +355,11 @@ switch (strtoupper($funcao)) |
355 | 355 | if($codigo_tipo_periodo < 5 && $esquemadb == "i3geo_metaestat" && $colunaidgeo == "codigoregiao" && $tabela = "dados_medidas"){ |
356 | 356 | $default = true; |
357 | 357 | } |
358 | - | |
359 | 358 | if(empty($id_medida_variavel)){ |
360 | 359 | //isso ira criar um novo registro |
361 | 360 | $id_medida_variavel = $m->alteraMedidaVariavel($codigo_variavel); |
362 | 361 | //o filtro e necessario para permitir a selecao dos registros apenas do que pertence a medida da variavel escolhida |
362 | + //se a tabela nao for a default, o filtro nao se aplica | |
363 | 363 | if($default == true && $filtro == ""){ |
364 | 364 | $filtro = " id_medida_variavel = $id_medida_variavel "; |
365 | 365 | } |
... | ... | @@ -374,6 +374,9 @@ switch (strtoupper($funcao)) |
374 | 374 | } |
375 | 375 | $m->alteraMedidaVariavel("",$id_medida_variavel,$codigo_unidade_medida,$codigo_tipo_periodo,$codigo_tipo_regiao,$codigo_estat_conexao,$esquemadb,$tabela,$colunavalor,$colunaidgeo,$colunaidunico,$filtro,$nomemedida); |
376 | 376 | } |
377 | + if(!empty($colunaAno) || !empty($colunaMes) || !empty($colunaDia) || !empty($colunaHora)){ | |
378 | + $default = true; | |
379 | + } | |
377 | 380 | //adiciona os parametros de tempo conforme o tipo de periodo escolhido |
378 | 381 | // |
379 | 382 | //se os nomes das colunas com os parametros de tempo forem definidas |
... | ... | @@ -385,38 +388,38 @@ switch (strtoupper($funcao)) |
385 | 388 | $id_pai = 0; |
386 | 389 | //anual |
387 | 390 | if($codigo_tipo_periodo >= 1){ |
388 | - if(empty($nomeAno)){ | |
389 | - $nomeAno = "ano"; | |
391 | + if(empty($colunaAno)){ | |
392 | + $colunaAno = "ano"; | |
390 | 393 | } |
391 | 394 | $id_parametro_medida = $m->alteraParametroMedida($id_medida_variavel,"","","","","",""); |
392 | - $m->alteraParametroMedida($id_medida_variavel,$id_parametro_medida,"Ano","",$nomeAno,$id_pai,1); | |
395 | + $m->alteraParametroMedida($id_medida_variavel,$id_parametro_medida,"Ano","",$colunaAno,$id_pai,1); | |
393 | 396 | $id_pai = $id_parametro_medida; |
394 | 397 | } |
395 | 398 | //mensal |
396 | 399 | if($codigo_tipo_periodo >= 2){ |
397 | 400 | $id_parametro_medida = $m->alteraParametroMedida($id_medida_variavel,"","","","","",""); |
398 | - if(empty($nomeMes)){ | |
399 | - $nomeMes = "mes"; | |
401 | + if(empty($colunaMes)){ | |
402 | + $colunaMes = "mes"; | |
400 | 403 | } |
401 | - $m->alteraParametroMedida($id_medida_variavel,$id_parametro_medida,"Mes","",$nomeMes,$id_pai,2); | |
404 | + $m->alteraParametroMedida($id_medida_variavel,$id_parametro_medida,"Mes","",$colunaMes,$id_pai,2); | |
402 | 405 | $id_pai = $id_parametro_medida; |
403 | 406 | } |
404 | 407 | //diario |
405 | 408 | if($codigo_tipo_periodo >= 3){ |
406 | 409 | $id_parametro_medida = $m->alteraParametroMedida($id_medida_variavel,"","","","","",""); |
407 | - if(empty($nomeDia)){ | |
408 | - $nomeDia = "dia"; | |
410 | + if(empty($colunaDia)){ | |
411 | + $colunaDia = "dia"; | |
409 | 412 | } |
410 | - $m->alteraParametroMedida($id_medida_variavel,$id_parametro_medida,"Dia","",$nomeDia,$id_pai,3); | |
413 | + $m->alteraParametroMedida($id_medida_variavel,$id_parametro_medida,"Dia","",$colunaDia,$id_pai,3); | |
411 | 414 | $id_pai = $id_parametro_medida; |
412 | 415 | } |
413 | 416 | //horario |
414 | 417 | if($codigo_tipo_periodo == 4){ |
415 | 418 | $id_parametro_medida = $m->alteraParametroMedida($id_medida_variavel,"","","","","",""); |
416 | - if(empty($nomeHora)){ | |
417 | - $nomeHora = "hora"; | |
419 | + if(empty($colunaHora)){ | |
420 | + $colunaHora = "hora"; | |
418 | 421 | } |
419 | - $m->alteraParametroMedida($id_medida_variavel,$id_parametro_medida,"Hora","",$nomeHora,$id_pai,4); | |
422 | + $m->alteraParametroMedida($id_medida_variavel,$id_parametro_medida,"Hora","",$colunaHora,$id_pai,4); | |
420 | 423 | } |
421 | 424 | } |
422 | 425 | retornaJSON($m->listaMedidaVariavel("",$id_medida_variavel)); | ... | ... |
admin/php/metaestat_uploadshp_submit.php
... | ... | @@ -126,7 +126,9 @@ if (isset($_FILES['i3GEOuploadshp']['name'])){ |
126 | 126 | //encoding do banco de dados |
127 | 127 | $sql = "SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = '".$conexao["bancodedados"]."'"; |
128 | 128 | $res = $dbh->query($sql,PDO::FETCH_ASSOC); |
129 | - $encodingdb = $res->fetchAll()[0]["pg_encoding_to_char"]; | |
129 | + $encodingdb = $res->fetchAll(); | |
130 | + $encodingdb = $encodingdb[0]; | |
131 | + $encodingdb = $encodingdb["pg_encoding_to_char"]; | |
130 | 132 | if($encodingdb == "UTF8"){ |
131 | 133 | $encodingdb = "UTF-8"; |
132 | 134 | } | ... | ... |
ferramentas/metaestat/index.js
... | ... | @@ -327,6 +327,33 @@ i3GEOF.metaestat = { |
327 | 327 | i3GEO.util.dialogoFerramenta("i3GEO.tema.dialogo.toponimia()","toponimia","toponimia","index.js","i3GEOF.metaestat.analise.abreToponimia()"); |
328 | 328 | }, |
329 | 329 | /** |
330 | + * Obtem os parametros necessarios ao funcionamento de i3GEOF.metaestat.analise.toponimia() | |
331 | + * Abre a janela de opcoes de i3GEOF.toponimia.iniciaJanelaFlutuante() | |
332 | + */ | |
333 | + abreToponimia: function(){ | |
334 | + if(typeof(i3GEOF.toponimia.dicionario) === 'undefined'){ | |
335 | + i3GEO.util.scriptTag( | |
336 | + i3GEO.configura.locaplic+"/ferramentas/toponimia/dicionario.js", | |
337 | + "i3GEOF.metaestat.analise.janelaToponimia()", | |
338 | + "i3GEOF.toponimia.dicionario_script" | |
339 | + ); | |
340 | + } | |
341 | + else{ | |
342 | + i3GEOF.metaestat.analise.janelaToponimia(); | |
343 | + } | |
344 | + }, | |
345 | + janelaToponimia: function(){ | |
346 | + var p = i3GEO.configura.locaplic+"/ferramentas/metaestat/analise.php?g_sid="+i3GEO.configura.sid + | |
347 | + "&funcao=pegaDadosTME&tema="+i3GEO.temaAtivo, | |
348 | + temp = function(retorno){ | |
349 | + i3GEO.janela.fechaAguarde("aguardeAnalise"); | |
350 | + i3GEOF.toponimia.ATIVAITEM = retorno.data.itemDados; | |
351 | + i3GEOF.toponimia.iniciaJanelaFlutuante(); | |
352 | + }; | |
353 | + i3GEO.janela.abreAguarde("aguardeAnalise","Aguarde..."); | |
354 | + i3GEO.util.ajaxGet(p,temp); | |
355 | + }, | |
356 | + /** | |
330 | 357 | * Junta camadas em uma nova, contendo as colunas das medidas |
331 | 358 | */ |
332 | 359 | juntaMedidasVariaveis: { |
... | ... | @@ -458,21 +485,7 @@ i3GEOF.metaestat = { |
458 | 485 | cpJSON.call(p,"foo",atualiza,ps); |
459 | 486 | } |
460 | 487 | }, |
461 | - /** | |
462 | - * Obtem os parametros necessarios ao funcionamento de i3GEOF.metaestat.analise.toponimia() | |
463 | - * Abre a janela de opcoes de i3GEOF.toponimia.iniciaJanelaFlutuante() | |
464 | - */ | |
465 | - abreToponimia: function(){ | |
466 | - var p = i3GEO.configura.locaplic+"/ferramentas/metaestat/analise.php?g_sid="+i3GEO.configura.sid + | |
467 | - "&funcao=pegaDadosTME&tema="+i3GEO.temaAtivo, | |
468 | - temp = function(retorno){ | |
469 | - i3GEO.janela.fechaAguarde("aguardeAnalise"); | |
470 | - i3GEOF.toponimia.ATIVAITEM = retorno.data.itemDados; | |
471 | - i3GEOF.toponimia.iniciaJanelaFlutuante(); | |
472 | - }; | |
473 | - i3GEO.janela.abreAguarde("aguardeAnalise","Aguarde..."); | |
474 | - i3GEO.util.ajaxGet(p,temp); | |
475 | - }, | |
488 | + | |
476 | 489 | /** |
477 | 490 | * Ativa a ferramenta que permite a modificacao do tipo de representacao da camada |
478 | 491 | * Executa i3GEOF.alterarep.iniciaJanelaFlutuante(); |
... | ... | @@ -563,11 +576,6 @@ i3GEOF.metaestat = { |
563 | 576 | * Executa i3GEO.tema.dialogo.tme() com a funcao i3GEOF.metaestat.analise.abreTme() |
564 | 577 | */ |
565 | 578 | ativaTme: function(){ |
566 | - if($i("i3geoCartoAnaliseCamadasCombo").value == ""){ | |
567 | - i3GEO.janela.tempoMsg("Ative uma camada primeiro"); | |
568 | - return; | |
569 | - } | |
570 | - i3GEO.mapa.ativaTema($i("i3geoCartoAnaliseCamadasCombo").value); | |
571 | 579 | i3GEO.util.dialogoFerramenta("i3GEO.tema.dialogo.tme()","tme","tme","index.js","i3GEOF.metaestat.analise.abreTme()"); |
572 | 580 | }, |
573 | 581 | /** |
... | ... | @@ -575,7 +583,23 @@ i3GEOF.metaestat = { |
575 | 583 | * Executa i3GEOF.tme.iniciaJanelaFlutuante(); |
576 | 584 | */ |
577 | 585 | abreTme: function(){ |
578 | - //i3GEOF.tme.ITEMNOMEREGIOES | |
586 | + if($i("i3geoCartoAnaliseCamadasCombo").value == ""){ | |
587 | + i3GEO.janela.tempoMsg("Ative uma camada primeiro"); | |
588 | + return; | |
589 | + } | |
590 | + i3GEO.mapa.ativaTema($i("i3geoCartoAnaliseCamadasCombo").value); | |
591 | + if(typeof(i3GEOF.tme.dicionario) === 'undefined'){ | |
592 | + i3GEO.util.scriptTag( | |
593 | + i3GEO.configura.locaplic+"/ferramentas/tme/dicionario.js", | |
594 | + "i3GEOF.metaestat.analise.janelaTme()", | |
595 | + "i3GEOF.tme.dicionario_script" | |
596 | + ); | |
597 | + } | |
598 | + else{ | |
599 | + i3GEOF.metaestat.analise.janelaTme(); | |
600 | + } | |
601 | + }, | |
602 | + janelaTme: function(){ | |
579 | 603 | var p = i3GEO.configura.locaplic+"/ferramentas/metaestat/analise.php?g_sid="+i3GEO.configura.sid + |
580 | 604 | "&funcao=pegaDadosTME&tema="+i3GEO.temaAtivo, |
581 | 605 | temp = function(retorno){ |
... | ... | @@ -585,7 +609,7 @@ i3GEOF.metaestat = { |
585 | 609 | i3GEOF.tme.iniciaJanelaFlutuante(); |
586 | 610 | }; |
587 | 611 | i3GEO.janela.abreAguarde("aguardeAnalise","Aguarde..."); |
588 | - i3GEO.util.ajaxGet(p,temp); | |
612 | + i3GEO.util.ajaxGet(p,temp); | |
589 | 613 | }, |
590 | 614 | /** |
591 | 615 | * Abre a ferramenta que mostra um relatorio com sumario estatistico dos dados |
... | ... | @@ -689,6 +713,19 @@ i3GEOF.metaestat = { |
689 | 713 | return; |
690 | 714 | } |
691 | 715 | i3GEO.mapa.ativaTema($i("i3geoCartoAnaliseCamadasCombo").value); |
716 | + | |
717 | + if(typeof(i3GEOF.legenda.dicionario) === 'undefined'){ | |
718 | + i3GEO.util.scriptTag( | |
719 | + i3GEO.configura.locaplic+"/ferramentas/legenda/dicionario.js", | |
720 | + "i3GEOF.metaestat.analise.janelaEditorLegenda()", | |
721 | + "i3GEOF.legenda.dicionario_script" | |
722 | + ); | |
723 | + } | |
724 | + else{ | |
725 | + i3GEOF.metaestat.analise.janelaEditorLegenda(); | |
726 | + } | |
727 | + }, | |
728 | + janelaEditorLegenda: function(){ | |
692 | 729 | i3GEOF.legenda.iniciaJanelaFlutuante(); |
693 | 730 | i3GEO.guias.mostraGuiaFerramenta('i3GEOlegendaguia2','i3GEOlegendaguia'); |
694 | 731 | //desmarca a opcao que considera apenas os elementos visiveis |
... | ... | @@ -699,7 +736,7 @@ i3GEOF.metaestat = { |
699 | 736 | $i("i3GEOFlegendaClassesOpcionais").style.display = "none"; |
700 | 737 | } |
701 | 738 | var temp = $i("i3GEOF.legenda_corpo"); |
702 | - temp.getElementsByTagName("div")[0].style.display = "none"; | |
739 | + temp.getElementsByTagName("div")[0].style.display = "none"; | |
703 | 740 | }, |
704 | 741 | /** |
705 | 742 | * Ativa a ferramenta que permite editar os simbolos utilizados em uma classe da legenda |
... | ... | @@ -1873,7 +1910,7 @@ i3GEOF.metaestat = { |
1873 | 1910 | var ins = "<p class='paragrafo' >" + $trad(2,i3GEOF.metaestat.dicionario1) + |
1874 | 1911 | "<br><br><p><input id=i3GEOFmetaestatEditorBotaot01 type='button' value='"+$trad(3,i3GEOF.metaestat.dicionario1)+"' />" + |
1875 | 1912 | " <input id=i3GEOFmetaestatEditorBotaot02 type='button' value='"+$trad(4,i3GEOF.metaestat.dicionario1)+"' />" + |
1876 | - " <input id=i3GEOFmetaestatEditorBotaot03 type='button' value='Upload CSV' />"; | |
1913 | + " <input id=i3GEOFmetaestatEditorBotaotUp type='button' value='Gerenciador BD/Upload' />"; | |
1877 | 1914 | i3GEO.util.proximoAnterior("","i3GEOF.metaestat.editor.t1()",ins,"i3GEOF.metaestat.editor.t0","i3GEOFmetaestatEditor"); |
1878 | 1915 | new YAHOO.widget.Button( |
1879 | 1916 | "i3GEOFmetaestatEditorBotaot01", |
... | ... | @@ -1886,7 +1923,14 @@ i3GEOF.metaestat = { |
1886 | 1923 | window.open(i3GEO.configura.locaplic+"/ferramentas/metaestat/editorlimites.php"); |
1887 | 1924 | }}} |
1888 | 1925 | ); |
1889 | - i3GEOF.metaestat.editor.botaoUpload("i3GEOFmetaestatEditorBotaot03"); | |
1926 | + new YAHOO.widget.Button( | |
1927 | + "i3GEOFmetaestatEditorBotaotUp", | |
1928 | + {onclick:{fn: function(){ | |
1929 | + i3GEO.janela.tempoMsg($trad(15,i3GEOF.metaestat.dicionario1)); | |
1930 | + window.open(i3GEO.configura.locaplic+"/admin/html/estat_editor.html"); | |
1931 | + }}} | |
1932 | + ); | |
1933 | + //i3GEOF.metaestat.editor.botaoUpload("i3GEOFmetaestatEditorBotaot03"); | |
1890 | 1934 | }, |
1891 | 1935 | /** |
1892 | 1936 | * Opcoes para escolha ou edicao/criacao de uma variavel | ... | ... |