Commit f3ef944ab47a395bc5a0c225c4b4b5500878ed0c

Authored by Edmar Moretti
1 parent ff76483d

Inclusão de função que tenta identificar a coluna com id único

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