From c2dea8ae31c51d1f57ed3610b99c66c242b58cb4 Mon Sep 17 00:00:00 2001
From: Edmar Moretti
Date: Tue, 28 Aug 2012 14:21:59 +0000
Subject: [PATCH] Inclusão de formulário para seleção de variáveis na interface carto_ol.htm
---
admin/php/classe_metaestat.php | 31 ++++++++++++++++++++++++++++---
admin/php/metaestat.php | 5 +++++
classesjs/classe_cartograma.js | 142 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
classesjs/classe_php.js | 27 +++++++++++++++++++++++++++
classesjs/dicionario.js | 2 +-
interface/carto_ol.htm | 4 ++--
6 files changed, 200 insertions(+), 11 deletions(-)
diff --git a/admin/php/classe_metaestat.php b/admin/php/classe_metaestat.php
index 4ca7a6a..14baffb 100755
--- a/admin/php/classe_metaestat.php
+++ b/admin/php/classe_metaestat.php
@@ -223,7 +223,6 @@ class Metaestat{
else{
$colunageo = $dadosgeo["colunacentroide"];
}
-
if($todasascolunas == 0){
$sql = " SELECT d.".$dados["colunavalor"].",d.".$dados["colunaidgeo"];
if(!empty($agruparpor)){
@@ -240,6 +239,7 @@ class Metaestat{
$sqlgeo .= " FROM ".$dados["esquemadb"].".".$dados["tabela"]." as d,".$dadosgeo["esquemadb"].".".$dadosgeo["tabela"]." as g ";
}
else{
+ $sqlagrupamento = " SELECT d.".$agruparpor." FROM ".$dados["esquemadb"].".".$dados["tabela"]." as d group by ".$agruparpor." order by ".$agruparpor;
$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";
$sql .= " FROM (SELECT sum(".$dados["colunavalor"].") as ".$dados["colunavalor"].",".$dados["colunaidgeo"].",".$agruparpor." FROM ".$dados["esquemadb"].".".$dados["tabela"] ." group by ".$agruparpor.",".$dados["colunaidgeo"].") as d ";
}
@@ -259,7 +259,7 @@ class Metaestat{
//atencao: cuidado ao alterar essa string pois ') as foo' pode ser usado para replace em outras funcoes
$sqlgeo = $colunageo." from ($sqlgeo) as foo using unique ".$dados["colunaidgeo"]." using srid=".$dadosgeo["srid"];
$colunas = $this->colunasTabela($dados["codigo_estat_conexao"],$dados["esquemadb"],$dados["tabela"]);
- return array("sql"=>$sql,"sqlmapserver"=>$sqlgeo,"filtro"=>$filtro,"colunas"=>$colunas);
+ return array("sqlagrupamento"=>$sqlagrupamento,"sql"=>$sql,"sqlmapserver"=>$sqlgeo,"filtro"=>$filtro,"colunas"=>$colunas);
}
function mapfileMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$tipolayer="polygon",$titulolayer="",$id_classificacao="",$agruparpor=""){
if(empty($tipolayer)){
@@ -406,6 +406,21 @@ class Metaestat{
}
return false;
}
+ function valorUnicoMedidaVariavel($id_medida_variavel,$coluna){
+ $sqlf = $this->sqlMedidaVariavel($id_medida_variavel,0,$coluna);
+ $sqlf = $sqlf["sqlagrupamento"];
+ $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel);
+ if(!empty($metaVariavel["codigo_estat_conexao"])){
+ $c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true);
+ $dbhold = $this->dbh;
+ $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]);
+ $this->dbh = $dbh;
+ $res = $this->execSQL($sqlf);
+ $this->dbh = $dbhold;
+ return $res;
+ }
+ return false;
+ }
function sumarioMedidaVariavel($id_medida_variavel,$filtro="",$agruparpor=""){
if(!empty($agruparpor)){
$dados = $this->dadosMedidaVariavel($id_medida_variavel,$filtro,1);
@@ -961,7 +976,17 @@ class Metaestat{
//echo $sql;exit;
return $this->execSQL($sql,$id_parametro_medida);
}
-
+ function listaValoresParametro($id_parametro_medida){
+ $parametro = $this->listaParametro("",$id_parametro_medida);
+ //$medida = $this->listaMedidaVariavel("",$parametro["id_medida_variavel"]);
+ $sm = $this->valorUnicoMedidaVariavel($parametro["id_medida_variavel"],$parametro["coluna"]);
+ $nsm = array();
+ foreach($sm as $s){
+ $nsm[] = $s[$parametro["coluna"]];
+ }
+ return $nsm;
+ exit;
+ }
/*
Function: listaTipoPeriodo
diff --git a/admin/php/metaestat.php b/admin/php/metaestat.php
index 1dc0bf1..aaef0cc 100644
--- a/admin/php/metaestat.php
+++ b/admin/php/metaestat.php
@@ -151,6 +151,11 @@ switch (strtoupper($funcao))
retornaJSON($m->listaParametro($id_medida_variavel,$id_parametro_medida));
exit;
break;
+ case "LISTAVALORESPARAMETRO":
+ $m = new Metaestat();
+ retornaJSON($m->listaValoresParametro($id_parametro_medida));
+ exit;
+ break;
/*
Valor: LISTAUNIDADEMEDIDA
diff --git a/classesjs/classe_cartograma.js b/classesjs/classe_cartograma.js
index 4a618f3..22e784b 100644
--- a/classesjs/classe_cartograma.js
+++ b/classesjs/classe_cartograma.js
@@ -39,8 +39,8 @@ i3GEO.cartograma = {
INTERFACE: "flutuante",
TOP: 50,
LEFT: 100,
- LARGURA: 250,
- ALTURA: 100,
+ LARGURA: 260,
+ ALTURA: 300,
inicia: function(iddiv){
if(!iddiv){
iddiv = "i3geoCartoParametros_corpo";
@@ -58,9 +58,9 @@ i3GEO.cartograma = {
var onde = $i("i3geoCartoVariaveis"),
temp = function(dados){
var n = dados.length,
- ins = "",
+ ins = '
'+$trad("x58")+'
',
i;
- ins = "
' +
'
' +
'
' +
+ '
' +
+ '
' +
+ '
' +
+ '
' +
'';
return ins;
},
diff --git a/classesjs/classe_php.js b/classesjs/classe_php.js
index c78d176..d7a039e 100644
--- a/classesjs/classe_php.js
+++ b/classesjs/classe_php.js
@@ -1429,4 +1429,31 @@ i3GEO.php = {
var p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=listaVariavel&g_sid="+i3GEO.configura.sid;
i3GEO.util.ajaxGet(p,funcao);
},
+ /*
+ Function: listaMedidaVariavel
+
+ Obtém a lista medidas de uma variável do sistema de metadados estatísticos
+ */
+ listaMedidaVariavel: function(codigo_variavel,funcao){
+ var p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=listaMedidaVariavel&codigo_variavel="+codigo_variavel+"&g_sid="+i3GEO.configura.sid;
+ i3GEO.util.ajaxGet(p,funcao);
+ },
+ /*
+ Function: listaParametrosMedidaVariavel
+
+ Obtém a lista de parâmetros de uma medida de uma variável do sistema de metadados estatísticos
+ */
+ listaParametrosMedidaVariavel: function(id_medida_variavel,funcao){
+ var p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=listaParametro&id_medida_variavel="+id_medida_variavel+"&g_sid="+i3GEO.configura.sid;
+ i3GEO.util.ajaxGet(p,funcao);
+ },
+ /*
+ Function: listaValoresParametroMedidaVariavel
+
+ Obtém a lista de valores de um parâmetro de uma medida de uma variável do sistema de metadados estatísticos
+ */
+ listaValoresParametroMedidaVariavel: function(id_parametro_medida,funcao){
+ var p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=listaValoresParametro&id_parametro_medida="+id_parametro_medida+"&g_sid="+i3GEO.configura.sid;
+ i3GEO.util.ajaxGet(p,funcao);
+ }
};
\ No newline at end of file
diff --git a/classesjs/dicionario.js b/classesjs/dicionario.js
index f273a2c..0128dd1 100644
--- a/classesjs/dicionario.js
+++ b/classesjs/dicionario.js
@@ -1943,7 +1943,7 @@ it:""
}],
"x59":[
{
-pt:"",
+pt:"Escolha uma medida da variável",
en:"",
es:"",
it:""
diff --git a/interface/carto_ol.htm b/interface/carto_ol.htm
index b612469..fc8134c 100644
--- a/interface/carto_ol.htm
+++ b/interface/carto_ol.htm
@@ -172,8 +172,8 @@ i3GEO.inicia();
i3GEO.cartograma.INTERFACE = "flutuante";
i3GEO.cartograma.TOP = 50;
i3GEO.cartograma.LEFT = 100;
-i3GEO.cartograma.LARGURA = 250;
-i3GEO.cartograma.ALTURA = 100;
+i3GEO.cartograma.LARGURA = 260;
+i3GEO.cartograma.ALTURA = 300;
i3GEO.cartograma.inicia();