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); | ... | ... |