Commit c2dea8ae31c51d1f57ed3610b99c66c242b58cb4
1 parent
3892bacd
Exists in
master
and in
7 other branches
Inclusão de formulário para seleção de variáveis na interface carto_ol.htm
Showing
6 changed files
with
200 additions
and
11 deletions
Show diff stats
admin/php/classe_metaestat.php
| @@ -223,7 +223,6 @@ class Metaestat{ | @@ -223,7 +223,6 @@ class Metaestat{ | ||
| 223 | else{ | 223 | else{ |
| 224 | $colunageo = $dadosgeo["colunacentroide"]; | 224 | $colunageo = $dadosgeo["colunacentroide"]; |
| 225 | } | 225 | } |
| 226 | - | ||
| 227 | if($todasascolunas == 0){ | 226 | if($todasascolunas == 0){ |
| 228 | $sql = " SELECT d.".$dados["colunavalor"].",d.".$dados["colunaidgeo"]; | 227 | $sql = " SELECT d.".$dados["colunavalor"].",d.".$dados["colunaidgeo"]; |
| 229 | if(!empty($agruparpor)){ | 228 | if(!empty($agruparpor)){ |
| @@ -240,6 +239,7 @@ class Metaestat{ | @@ -240,6 +239,7 @@ class Metaestat{ | ||
| 240 | $sqlgeo .= " FROM ".$dados["esquemadb"].".".$dados["tabela"]." as d,".$dadosgeo["esquemadb"].".".$dadosgeo["tabela"]." as g "; | 239 | $sqlgeo .= " FROM ".$dados["esquemadb"].".".$dados["tabela"]." as d,".$dadosgeo["esquemadb"].".".$dadosgeo["tabela"]." as g "; |
| 241 | } | 240 | } |
| 242 | else{ | 241 | else{ |
| 242 | + $sqlagrupamento = " SELECT d.".$agruparpor." FROM ".$dados["esquemadb"].".".$dados["tabela"]." as d group by ".$agruparpor." order by ".$agruparpor; | ||
| 243 | $sqlgeo .= " FROM (SELECT sum(".$dados["colunavalor"].") as ".$dados["colunavalor"].",".$dados["colunaidgeo"].",".$agruparpor." FROM ".$dados["esquemadb"].".".$dados["tabela"] ." group by ".$agruparpor.",".$dados["colunaidgeo"].") as d, ".$dadosgeo["esquemadb"].".".$dadosgeo["tabela"]." as g"; | 243 | $sqlgeo .= " FROM (SELECT sum(".$dados["colunavalor"].") as ".$dados["colunavalor"].",".$dados["colunaidgeo"].",".$agruparpor." FROM ".$dados["esquemadb"].".".$dados["tabela"] ." group by ".$agruparpor.",".$dados["colunaidgeo"].") as d, ".$dadosgeo["esquemadb"].".".$dadosgeo["tabela"]." as g"; |
| 244 | $sql .= " FROM (SELECT sum(".$dados["colunavalor"].") as ".$dados["colunavalor"].",".$dados["colunaidgeo"].",".$agruparpor." FROM ".$dados["esquemadb"].".".$dados["tabela"] ." group by ".$agruparpor.",".$dados["colunaidgeo"].") as d "; | 244 | $sql .= " FROM (SELECT sum(".$dados["colunavalor"].") as ".$dados["colunavalor"].",".$dados["colunaidgeo"].",".$agruparpor." FROM ".$dados["esquemadb"].".".$dados["tabela"] ." group by ".$agruparpor.",".$dados["colunaidgeo"].") as d "; |
| 245 | } | 245 | } |
| @@ -259,7 +259,7 @@ class Metaestat{ | @@ -259,7 +259,7 @@ class Metaestat{ | ||
| 259 | //atencao: cuidado ao alterar essa string pois ') as foo' pode ser usado para replace em outras funcoes | 259 | //atencao: cuidado ao alterar essa string pois ') as foo' pode ser usado para replace em outras funcoes |
| 260 | $sqlgeo = $colunageo." from ($sqlgeo) as foo using unique ".$dados["colunaidgeo"]." using srid=".$dadosgeo["srid"]; | 260 | $sqlgeo = $colunageo." from ($sqlgeo) as foo using unique ".$dados["colunaidgeo"]." using srid=".$dadosgeo["srid"]; |
| 261 | $colunas = $this->colunasTabela($dados["codigo_estat_conexao"],$dados["esquemadb"],$dados["tabela"]); | 261 | $colunas = $this->colunasTabela($dados["codigo_estat_conexao"],$dados["esquemadb"],$dados["tabela"]); |
| 262 | - return array("sql"=>$sql,"sqlmapserver"=>$sqlgeo,"filtro"=>$filtro,"colunas"=>$colunas); | 262 | + return array("sqlagrupamento"=>$sqlagrupamento,"sql"=>$sql,"sqlmapserver"=>$sqlgeo,"filtro"=>$filtro,"colunas"=>$colunas); |
| 263 | } | 263 | } |
| 264 | function mapfileMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$tipolayer="polygon",$titulolayer="",$id_classificacao="",$agruparpor=""){ | 264 | function mapfileMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$tipolayer="polygon",$titulolayer="",$id_classificacao="",$agruparpor=""){ |
| 265 | if(empty($tipolayer)){ | 265 | if(empty($tipolayer)){ |
| @@ -406,6 +406,21 @@ class Metaestat{ | @@ -406,6 +406,21 @@ class Metaestat{ | ||
| 406 | } | 406 | } |
| 407 | return false; | 407 | return false; |
| 408 | } | 408 | } |
| 409 | + function valorUnicoMedidaVariavel($id_medida_variavel,$coluna){ | ||
| 410 | + $sqlf = $this->sqlMedidaVariavel($id_medida_variavel,0,$coluna); | ||
| 411 | + $sqlf = $sqlf["sqlagrupamento"]; | ||
| 412 | + $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); | ||
| 413 | + if(!empty($metaVariavel["codigo_estat_conexao"])){ | ||
| 414 | + $c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true); | ||
| 415 | + $dbhold = $this->dbh; | ||
| 416 | + $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | ||
| 417 | + $this->dbh = $dbh; | ||
| 418 | + $res = $this->execSQL($sqlf); | ||
| 419 | + $this->dbh = $dbhold; | ||
| 420 | + return $res; | ||
| 421 | + } | ||
| 422 | + return false; | ||
| 423 | + } | ||
| 409 | function sumarioMedidaVariavel($id_medida_variavel,$filtro="",$agruparpor=""){ | 424 | function sumarioMedidaVariavel($id_medida_variavel,$filtro="",$agruparpor=""){ |
| 410 | if(!empty($agruparpor)){ | 425 | if(!empty($agruparpor)){ |
| 411 | $dados = $this->dadosMedidaVariavel($id_medida_variavel,$filtro,1); | 426 | $dados = $this->dadosMedidaVariavel($id_medida_variavel,$filtro,1); |
| @@ -961,7 +976,17 @@ class Metaestat{ | @@ -961,7 +976,17 @@ class Metaestat{ | ||
| 961 | //echo $sql;exit; | 976 | //echo $sql;exit; |
| 962 | return $this->execSQL($sql,$id_parametro_medida); | 977 | return $this->execSQL($sql,$id_parametro_medida); |
| 963 | } | 978 | } |
| 964 | - | 979 | + function listaValoresParametro($id_parametro_medida){ |
| 980 | + $parametro = $this->listaParametro("",$id_parametro_medida); | ||
| 981 | + //$medida = $this->listaMedidaVariavel("",$parametro["id_medida_variavel"]); | ||
| 982 | + $sm = $this->valorUnicoMedidaVariavel($parametro["id_medida_variavel"],$parametro["coluna"]); | ||
| 983 | + $nsm = array(); | ||
| 984 | + foreach($sm as $s){ | ||
| 985 | + $nsm[] = $s[$parametro["coluna"]]; | ||
| 986 | + } | ||
| 987 | + return $nsm; | ||
| 988 | + exit; | ||
| 989 | + } | ||
| 965 | /* | 990 | /* |
| 966 | Function: listaTipoPeriodo | 991 | Function: listaTipoPeriodo |
| 967 | 992 |
admin/php/metaestat.php
| @@ -151,6 +151,11 @@ switch (strtoupper($funcao)) | @@ -151,6 +151,11 @@ switch (strtoupper($funcao)) | ||
| 151 | retornaJSON($m->listaParametro($id_medida_variavel,$id_parametro_medida)); | 151 | retornaJSON($m->listaParametro($id_medida_variavel,$id_parametro_medida)); |
| 152 | exit; | 152 | exit; |
| 153 | break; | 153 | break; |
| 154 | + case "LISTAVALORESPARAMETRO": | ||
| 155 | + $m = new Metaestat(); | ||
| 156 | + retornaJSON($m->listaValoresParametro($id_parametro_medida)); | ||
| 157 | + exit; | ||
| 158 | + break; | ||
| 154 | /* | 159 | /* |
| 155 | Valor: LISTAUNIDADEMEDIDA | 160 | Valor: LISTAUNIDADEMEDIDA |
| 156 | 161 |
classesjs/classe_cartograma.js
| @@ -39,8 +39,8 @@ i3GEO.cartograma = { | @@ -39,8 +39,8 @@ i3GEO.cartograma = { | ||
| 39 | INTERFACE: "flutuante", | 39 | INTERFACE: "flutuante", |
| 40 | TOP: 50, | 40 | TOP: 50, |
| 41 | LEFT: 100, | 41 | LEFT: 100, |
| 42 | - LARGURA: 250, | ||
| 43 | - ALTURA: 100, | 42 | + LARGURA: 260, |
| 43 | + ALTURA: 300, | ||
| 44 | inicia: function(iddiv){ | 44 | inicia: function(iddiv){ |
| 45 | if(!iddiv){ | 45 | if(!iddiv){ |
| 46 | iddiv = "i3geoCartoParametros_corpo"; | 46 | iddiv = "i3geoCartoParametros_corpo"; |
| @@ -58,9 +58,9 @@ i3GEO.cartograma = { | @@ -58,9 +58,9 @@ i3GEO.cartograma = { | ||
| 58 | var onde = $i("i3geoCartoVariaveis"), | 58 | var onde = $i("i3geoCartoVariaveis"), |
| 59 | temp = function(dados){ | 59 | temp = function(dados){ |
| 60 | var n = dados.length, | 60 | var n = dados.length, |
| 61 | - ins = "", | 61 | + ins = '<p class="paragrafo" >'+$trad("x58")+'</p>', |
| 62 | i; | 62 | i; |
| 63 | - ins = "<select style='width:"+(i3GEO.cartograma.LARGURA - 10)+"px' onchange=''><option value=''>---</option>"; | 63 | + ins += "<select style='width:"+(i3GEO.cartograma.LARGURA - 20)+"px' onchange='i3GEO.cartograma.comboVariaveisOnchange(this)'><option value=''>---</option>"; |
| 64 | for(i=0;i<n;i++){ | 64 | for(i=0;i<n;i++){ |
| 65 | ins += "<option title='"+dados[i].descricao+"' value='"+dados[i].codigo_variavel+"'>"+dados[i].nome+"</option>"; | 65 | ins += "<option title='"+dados[i].descricao+"' value='"+dados[i].codigo_variavel+"'>"+dados[i].nome+"</option>"; |
| 66 | } | 66 | } |
| @@ -73,11 +73,143 @@ i3GEO.cartograma = { | @@ -73,11 +73,143 @@ i3GEO.cartograma = { | ||
| 73 | i3GEO.cartograma.aguarde(onde); | 73 | i3GEO.cartograma.aguarde(onde); |
| 74 | i3GEO.php.listaVariavel(temp); | 74 | i3GEO.php.listaVariavel(temp); |
| 75 | }, | 75 | }, |
| 76 | + comboVariaveisOnchange: function(combo){ | ||
| 77 | + if(combo.value != ""){ | ||
| 78 | + i3GEO.cartograma.comboMedidasVariavel(combo.value); | ||
| 79 | + } | ||
| 80 | + else{ | ||
| 81 | + $i("i3geoCartoMedidasVariavel").innerHTML = ""; | ||
| 82 | + $i("i3geoCartoParametrosMedidasVariavel").innerHTML = ""; | ||
| 83 | + } | ||
| 84 | + }, | ||
| 85 | + comboMedidasVariavel: function(codigo_variavel){ | ||
| 86 | + var onde = $i("i3geoCartoMedidasVariavel"), | ||
| 87 | + temp = function(dados){ | ||
| 88 | + var n = dados.length, | ||
| 89 | + ins = '<p class="paragrafo" >'+$trad("x59")+'</p>', | ||
| 90 | + i; | ||
| 91 | + ins += "<select style='width:"+(i3GEO.cartograma.LARGURA - 20)+"px' onchange='i3GEO.cartograma.comboMedidaVariavelOnchange(this)'><option value=''>---</option>"; | ||
| 92 | + for(i=0;i<n;i++){ | ||
| 93 | + ins += "<option value='"+dados[i].id_medida_variavel+"'>"+dados[i].nomemedida+"</option>"; | ||
| 94 | + } | ||
| 95 | + ins += "</select>"; | ||
| 96 | + if(onde){ | ||
| 97 | + onde.innerHTML = ins; | ||
| 98 | + } | ||
| 99 | + return ins; | ||
| 100 | + }; | ||
| 101 | + i3GEO.cartograma.aguarde(onde); | ||
| 102 | + i3GEO.php.listaMedidaVariavel(codigo_variavel,temp); | ||
| 103 | + }, | ||
| 104 | + comboMedidaVariavelOnchange: function(combo){ | ||
| 105 | + if(combo.value != ""){ | ||
| 106 | + i3GEO.cartograma.parametros.lista(combo.value); | ||
| 107 | + } | ||
| 108 | + else{ | ||
| 109 | + $i("i3geoCartoParametrosMedidasVariavel").innerHTML = ""; | ||
| 110 | + } | ||
| 111 | + }, | ||
| 112 | + parametros: { | ||
| 113 | + //guarda a lista de parametros | ||
| 114 | + dados: [], | ||
| 115 | + //obtem a lista com os parametros da medida | ||
| 116 | + //cria os combos para os parametros que sao pai de todos | ||
| 117 | + lista: function(id_medida_variavel){ | ||
| 118 | + var temp = function(dados){ | ||
| 119 | + i3GEO.cartograma.parametros.dados = dados; | ||
| 120 | + i3GEO.cartograma.parametros.combos("0"); | ||
| 121 | + }; | ||
| 122 | + i3GEO.php.listaParametrosMedidaVariavel(id_medida_variavel,temp); | ||
| 123 | + }, | ||
| 124 | + //cria um combo para escolher os valores de um parametro | ||
| 125 | + combos: function(nivel){ | ||
| 126 | + var dados = i3GEO.cartograma.parametros.dados, | ||
| 127 | + n = dados.length, | ||
| 128 | + onde = $i("i3geoCartoParametrosMedidasVariavel"), | ||
| 129 | + idpar,idcombo,i,novoel,teste; | ||
| 130 | + //cria o combo para o parametro cujo id_pai for do nivel escolhido | ||
| 131 | + for(i=0;i<n;i++){ | ||
| 132 | + if(dados[i].id_pai == nivel){ | ||
| 133 | + idpar = "parametro_"+dados[i].id_parametro_medida; | ||
| 134 | + idcombo = "parametro_"+dados[i].id_parametro_medida+"_"+nivel; | ||
| 135 | + teste = i3GEO.cartograma.parametros.retornaIdPai(dados[i].id_parametro_medida); | ||
| 136 | + if(teste != false){ | ||
| 137 | + idpar = "parametro_"+teste; | ||
| 138 | + } | ||
| 139 | + if(!$i(idpar)){ | ||
| 140 | + novoel = document.createElement("div"); | ||
| 141 | + novoel.id = idpar; | ||
| 142 | + novoel.className = "paragrafo"; | ||
| 143 | + onde.appendChild(novoel); | ||
| 144 | + onde = novoel; | ||
| 145 | + } | ||
| 146 | + onde = $i(idpar); | ||
| 147 | + if(!$i(idcombo)){ | ||
| 148 | + novoel = document.createElement("div"); | ||
| 149 | + novoel.id = idcombo; | ||
| 150 | + novoel.className = "paragrafo"; | ||
| 151 | + onde.appendChild(novoel); | ||
| 152 | + i3GEO.cartograma.parametros.valoresCombo(dados[i].id_parametro_medida,dados[i].nome,nivel,onde); | ||
| 153 | + } | ||
| 154 | + } | ||
| 155 | + } | ||
| 156 | + }, | ||
| 157 | + valoresCombo: function(id_parametro_medida,titulo,nivel,onde){ | ||
| 158 | + var temp = function(dados){ | ||
| 159 | + var n = dados.length, | ||
| 160 | + ins = "", | ||
| 161 | + oc = "'i3GEO.cartograma.parametros.combos(\""+id_parametro_medida+"\")'", | ||
| 162 | + filho = i3GEO.cartograma.parametros.retornaIdFilho(id_parametro_medida), | ||
| 163 | + i,novoel; | ||
| 164 | + if(filho == false){ | ||
| 165 | + oc = ""; | ||
| 166 | + } | ||
| 167 | + ins = "<p class=paragrafo >"+titulo+"</p>"; | ||
| 168 | + ins += "<select style='background:beige;width:"+(i3GEO.cartograma.LARGURA - 20)+"px' onchange="+oc+" ><option value=''>---</option>"; | ||
| 169 | + for(i=0;i<n;i++){ | ||
| 170 | + ins += "<option value='"+dados[i]+"'>"+dados[i]+"</option>"; | ||
| 171 | + } | ||
| 172 | + ins += "</select>"; | ||
| 173 | + novoel = document.createElement("div"); | ||
| 174 | + novoel.className = "paragrafo"; | ||
| 175 | + novoel.innerHTML = ins; | ||
| 176 | + onde.appendChild(novoel); | ||
| 177 | + }; | ||
| 178 | + i3GEO.php.listaValoresParametroMedidaVariavel(id_parametro_medida,temp); | ||
| 179 | + }, | ||
| 180 | + //retorna o id do parametro que e filho de um outro parametro | ||
| 181 | + retornaIdFilho:function(pai){ | ||
| 182 | + var dados = i3GEO.cartograma.parametros.dados, | ||
| 183 | + n = dados.length, | ||
| 184 | + i; | ||
| 185 | + for(i=0;i<n;i++){ | ||
| 186 | + if(dados[i].id_pai == pai){ | ||
| 187 | + return dados[i].id_parametro_medida; | ||
| 188 | + } | ||
| 189 | + } | ||
| 190 | + return false; | ||
| 191 | + }, | ||
| 192 | + //retorna o id do parametro que e pai de um outro parametro | ||
| 193 | + retornaIdPai:function(filho){ | ||
| 194 | + var dados = i3GEO.cartograma.parametros.dados, | ||
| 195 | + n = dados.length, | ||
| 196 | + i; | ||
| 197 | + for(i=0;i<n;i++){ | ||
| 198 | + if(dados[i].id_parametro_medida == filho){ | ||
| 199 | + return dados[i].id_pai; | ||
| 200 | + } | ||
| 201 | + } | ||
| 202 | + return false; | ||
| 203 | + } | ||
| 204 | + }, | ||
| 76 | html: function(){ | 205 | html: function(){ |
| 77 | var ins = '<div id="i3geoCartoVariaveisContainer" >' + | 206 | var ins = '<div id="i3geoCartoVariaveisContainer" >' + |
| 78 | - '<p class="paragrafo" >'+$trad("x58")+'</p>' + | ||
| 79 | '<div class="paragrafo" id="i3geoCartoVariaveis" >' + | 207 | '<div class="paragrafo" id="i3geoCartoVariaveis" >' + |
| 80 | '</div>' + | 208 | '</div>' + |
| 209 | + '<div class="paragrafo" id="i3geoCartoMedidasVariavel" >' + | ||
| 210 | + '</div>' + | ||
| 211 | + '<div class="paragrafo" id="i3geoCartoParametrosMedidasVariavel" >' + | ||
| 212 | + '</div>' + | ||
| 81 | '</div>'; | 213 | '</div>'; |
| 82 | return ins; | 214 | return ins; |
| 83 | }, | 215 | }, |
classesjs/classe_php.js
| @@ -1429,4 +1429,31 @@ i3GEO.php = { | @@ -1429,4 +1429,31 @@ i3GEO.php = { | ||
| 1429 | var p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=listaVariavel&g_sid="+i3GEO.configura.sid; | 1429 | var p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=listaVariavel&g_sid="+i3GEO.configura.sid; |
| 1430 | i3GEO.util.ajaxGet(p,funcao); | 1430 | i3GEO.util.ajaxGet(p,funcao); |
| 1431 | }, | 1431 | }, |
| 1432 | + /* | ||
| 1433 | + Function: listaMedidaVariavel | ||
| 1434 | + | ||
| 1435 | + Obtém a lista medidas de uma variável do sistema de metadados estatísticos | ||
| 1436 | + */ | ||
| 1437 | + listaMedidaVariavel: function(codigo_variavel,funcao){ | ||
| 1438 | + var p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=listaMedidaVariavel&codigo_variavel="+codigo_variavel+"&g_sid="+i3GEO.configura.sid; | ||
| 1439 | + i3GEO.util.ajaxGet(p,funcao); | ||
| 1440 | + }, | ||
| 1441 | + /* | ||
| 1442 | + Function: listaParametrosMedidaVariavel | ||
| 1443 | + | ||
| 1444 | + Obtém a lista de parâmetros de uma medida de uma variável do sistema de metadados estatísticos | ||
| 1445 | + */ | ||
| 1446 | + listaParametrosMedidaVariavel: function(id_medida_variavel,funcao){ | ||
| 1447 | + var p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=listaParametro&id_medida_variavel="+id_medida_variavel+"&g_sid="+i3GEO.configura.sid; | ||
| 1448 | + i3GEO.util.ajaxGet(p,funcao); | ||
| 1449 | + }, | ||
| 1450 | + /* | ||
| 1451 | + Function: listaValoresParametroMedidaVariavel | ||
| 1452 | + | ||
| 1453 | + Obtém a lista de valores de um parâmetro de uma medida de uma variável do sistema de metadados estatísticos | ||
| 1454 | + */ | ||
| 1455 | + listaValoresParametroMedidaVariavel: function(id_parametro_medida,funcao){ | ||
| 1456 | + var p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=listaValoresParametro&id_parametro_medida="+id_parametro_medida+"&g_sid="+i3GEO.configura.sid; | ||
| 1457 | + i3GEO.util.ajaxGet(p,funcao); | ||
| 1458 | + } | ||
| 1432 | }; | 1459 | }; |
| 1433 | \ No newline at end of file | 1460 | \ No newline at end of file |
classesjs/dicionario.js
interface/carto_ol.htm
| @@ -172,8 +172,8 @@ i3GEO.inicia(); | @@ -172,8 +172,8 @@ i3GEO.inicia(); | ||
| 172 | i3GEO.cartograma.INTERFACE = "flutuante"; | 172 | i3GEO.cartograma.INTERFACE = "flutuante"; |
| 173 | i3GEO.cartograma.TOP = 50; | 173 | i3GEO.cartograma.TOP = 50; |
| 174 | i3GEO.cartograma.LEFT = 100; | 174 | i3GEO.cartograma.LEFT = 100; |
| 175 | -i3GEO.cartograma.LARGURA = 250; | ||
| 176 | -i3GEO.cartograma.ALTURA = 100; | 175 | +i3GEO.cartograma.LARGURA = 260; |
| 176 | +i3GEO.cartograma.ALTURA = 300; | ||
| 177 | i3GEO.cartograma.inicia(); | 177 | i3GEO.cartograma.inicia(); |
| 178 | </script> | 178 | </script> |
| 179 | </body> | 179 | </body> |