Commit f3ef944ab47a395bc5a0c225c4b4b5500878ed0c
1 parent
ff76483d
Exists in
master
and in
7 other branches
Inclusão de função que tenta identificar a coluna com id único
Showing
3 changed files
with
35 additions
and
3 deletions
Show diff stats
admin/php/classe_metaestat.php
@@ -2053,6 +2053,16 @@ class Metaestat{ | @@ -2053,6 +2053,16 @@ class Metaestat{ | ||
2053 | return $colunas["coluna"]; | 2053 | return $colunas["coluna"]; |
2054 | } | 2054 | } |
2055 | /** | 2055 | /** |
2056 | + * Obtem de uma tabela a coluna do tipo serial | ||
2057 | + * @param codigo do tipo de regiao | ||
2058 | + */ | ||
2059 | + function listaTabelaSerial($codigo_estat_conexao,$nome_esquema,$nome_tabela){ | ||
2060 | + $sql = "SELECT a.attname as coluna FROM pg_class s JOIN pg_depend d ON d.objid = s.oid JOIN pg_class t ON d.objid = s.oid AND d.refobjid = t.oid JOIN pg_attribute a ON (d.refobjid, d.refobjsubid) = (a.attrelid, a.attnum) JOIN pg_namespace n ON n.oid = s.relnamespace WHERE s.relkind = 'S' AND n.nspname = '$nome_esquema' AND t.relname = '$nome_tabela'"; | ||
2061 | + $colunas = $this->execSQLDB($codigo_estat_conexao,$sql); | ||
2062 | + $colunas = $colunas[0]; | ||
2063 | + return $colunas["coluna"]; | ||
2064 | + } | ||
2065 | + /** | ||
2056 | * Lista os dados de agregacao de uma regiao pai | 2066 | * Lista os dados de agregacao de uma regiao pai |
2057 | * @param codigo da regiao | 2067 | * @param codigo da regiao |
2058 | */ | 2068 | */ |
admin/php/metaestat.php
@@ -1545,7 +1545,19 @@ switch (strtoupper($funcao)) | @@ -1545,7 +1545,19 @@ switch (strtoupper($funcao)) | ||
1545 | case "DESCREVECOLUNASTABELA": | 1545 | case "DESCREVECOLUNASTABELA": |
1546 | $m = new Metaestat(); | 1546 | $m = new Metaestat(); |
1547 | if($formato == "json"){ | 1547 | if($formato == "json"){ |
1548 | - retornaJSON($m->descreveColunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela)); | 1548 | + $c = $m->descreveColunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela); |
1549 | + $s = $m->listaTabelaSerial($codigo_estat_conexao,$nome_esquema,$nome_tabela); | ||
1550 | + for($i=0;$i<count($c);$i++){ | ||
1551 | + if($c[$i]["field"] == $s){ | ||
1552 | + $c[$i]["serial"] = true; | ||
1553 | + } | ||
1554 | + else{ | ||
1555 | + $c[$i]["serial"] = false; | ||
1556 | + } | ||
1557 | + } | ||
1558 | + retornaJSON($c); | ||
1559 | + | ||
1560 | + | ||
1549 | } | 1561 | } |
1550 | exit; | 1562 | exit; |
1551 | break; | 1563 | break; |
ferramentas/navegapostgis/index.js
@@ -297,6 +297,8 @@ i3GEOF.navegapostgis = { | @@ -297,6 +297,8 @@ i3GEOF.navegapostgis = { | ||
297 | i3GEOF.navegapostgis.tabela = tabela; | 297 | i3GEOF.navegapostgis.tabela = tabela; |
298 | var funcao = function(retorno){ | 298 | var funcao = function(retorno){ |
299 | var ins,n,i, | 299 | var ins,n,i, |
300 | + ck = "", | ||
301 | + gidok = false, | ||
300 | gid = "ID", | 302 | gid = "ID", |
301 | the_geom = "GEOM", | 303 | the_geom = "GEOM", |
302 | nome = $trad('nome',i3GEOF.navegapostgis.dicionario), | 304 | nome = $trad('nome',i3GEOF.navegapostgis.dicionario), |
@@ -317,9 +319,16 @@ i3GEOF.navegapostgis = { | @@ -317,9 +319,16 @@ i3GEOF.navegapostgis = { | ||
317 | ins += "<tr><td></td><td></td><td>"+mostra+"</td><td title='' >Todas</td></tr>"; | 319 | ins += "<tr><td></td><td></td><td>"+mostra+"</td><td title='' >Todas</td></tr>"; |
318 | 320 | ||
319 | for(i=0;i<n;i++){ | 321 | for(i=0;i<n;i++){ |
320 | - gid = "<input onclick='i3GEOF.navegapostgis.geraSql()' style=cursor:pointer type=radio name='i3GEOFnavegapostgisGid' value='"+retorno[i].field+"' />"; | 322 | + ck = ""; |
323 | + if(retorno[i].serial === true){ | ||
324 | + ck = "checked"; | ||
325 | + gidok = true; | ||
326 | + }else if(retorno[i].notnull === true && gidok === false){ | ||
327 | + ck = "checked"; | ||
328 | + } | ||
329 | + gid = "<input "+ ck +" onclick='i3GEOF.navegapostgis.geraSql()' style=cursor:pointer type=radio name='i3GEOFnavegapostgisGid' value='"+retorno[i].field+"' />"; | ||
321 | if(retorno[i].type == "line" || retorno[i].type == "polygon" || retorno[i].type == "point" || retorno[i].type == "geometry"){ | 330 | if(retorno[i].type == "line" || retorno[i].type == "polygon" || retorno[i].type == "point" || retorno[i].type == "geometry"){ |
322 | - the_geom = "<input onclick='i3GEOF.navegapostgis.geraSql()' style=cursor:pointer type=radio name='i3GEOFnavegapostgisTheGeom' value='"+retorno[i].field+"' />"; | 331 | + the_geom = "<input checked onclick='i3GEOF.navegapostgis.geraSql()' style=cursor:pointer type=radio name='i3GEOFnavegapostgisTheGeom' value='"+retorno[i].field+"' />"; |
323 | } | 332 | } |
324 | else{ | 333 | else{ |
325 | the_geom = ""; | 334 | the_geom = ""; |
@@ -330,6 +339,7 @@ i3GEOF.navegapostgis = { | @@ -330,6 +339,7 @@ i3GEOF.navegapostgis = { | ||
330 | ins += "</table>"; | 339 | ins += "</table>"; |
331 | } | 340 | } |
332 | $i("i3GEOFnavegapostgisColunas").innerHTML = ins; | 341 | $i("i3GEOFnavegapostgisColunas").innerHTML = ins; |
342 | + i3GEOF.navegapostgis.geraSql(); | ||
333 | }, | 343 | }, |
334 | p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=descreveColunasTabela&formato=json&nome_tabela="+tabela+"&nome_esquema="+i3GEOF.navegapostgis.esquema+"&codigo_estat_conexao="+i3GEOF.navegapostgis.conexao; | 344 | p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=descreveColunasTabela&formato=json&nome_tabela="+tabela+"&nome_esquema="+i3GEOF.navegapostgis.esquema+"&codigo_estat_conexao="+i3GEOF.navegapostgis.conexao; |
335 | cpJSON.call(p,"foo",funcao); | 345 | cpJSON.call(p,"foo",funcao); |