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 | 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 | 2066 | * Lista os dados de agregacao de uma regiao pai |
| 2057 | 2067 | * @param codigo da regiao |
| 2058 | 2068 | */ | ... | ... |
admin/php/metaestat.php
| ... | ... | @@ -1545,7 +1545,19 @@ switch (strtoupper($funcao)) |
| 1545 | 1545 | case "DESCREVECOLUNASTABELA": |
| 1546 | 1546 | $m = new Metaestat(); |
| 1547 | 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 | 1562 | exit; |
| 1551 | 1563 | break; | ... | ... |
ferramentas/navegapostgis/index.js
| ... | ... | @@ -297,6 +297,8 @@ i3GEOF.navegapostgis = { |
| 297 | 297 | i3GEOF.navegapostgis.tabela = tabela; |
| 298 | 298 | var funcao = function(retorno){ |
| 299 | 299 | var ins,n,i, |
| 300 | + ck = "", | |
| 301 | + gidok = false, | |
| 300 | 302 | gid = "ID", |
| 301 | 303 | the_geom = "GEOM", |
| 302 | 304 | nome = $trad('nome',i3GEOF.navegapostgis.dicionario), |
| ... | ... | @@ -317,9 +319,16 @@ i3GEOF.navegapostgis = { |
| 317 | 319 | ins += "<tr><td></td><td></td><td>"+mostra+"</td><td title='' >Todas</td></tr>"; |
| 318 | 320 | |
| 319 | 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 | 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 | 333 | else{ |
| 325 | 334 | the_geom = ""; |
| ... | ... | @@ -330,6 +339,7 @@ i3GEOF.navegapostgis = { |
| 330 | 339 | ins += "</table>"; |
| 331 | 340 | } |
| 332 | 341 | $i("i3GEOFnavegapostgisColunas").innerHTML = ins; |
| 342 | + i3GEOF.navegapostgis.geraSql(); | |
| 333 | 343 | }, |
| 334 | 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 | 345 | cpJSON.call(p,"foo",funcao); | ... | ... |