Commit 6af0c9999500ceb0641c93223282192e85ab2280
1 parent
c235e40e
Exists in
master
and in
7 other branches
Inclusão de opções de download de dados em CSV
Showing
4 changed files
with
73 additions
and
15 deletions
Show diff stats
admin/index.html
| @@ -186,9 +186,9 @@ | @@ -186,9 +186,9 @@ | ||
| 186 | <td><div class=aplicar></div></td> | 186 | <td><div class=aplicar></div></td> |
| 187 | <td>Cadastro de fontes de informação</td> | 187 | <td>Cadastro de fontes de informação</td> |
| 188 | </tr> | 188 | </tr> |
| 189 | - <tr onclick="abre('estat_uploaddados.html')"> | 189 | + <tr onclick="abre('html/estat_uploaddados.html')"> |
| 190 | <td><div class=aplicar></div></td> | 190 | <td><div class=aplicar></div></td> |
| 191 | - <td>Upload e download de dados</td> | 191 | + <td>Upload de dados</td> |
| 192 | </tr> | 192 | </tr> |
| 193 | <tr onclick="abre('html/estat_editor.html')"> | 193 | <tr onclick="abre('html/estat_editor.html')"> |
| 194 | <td><div class=aplicar></div></td> | 194 | <td><div class=aplicar></div></td> |
admin/js/estat_editor.js
| @@ -86,11 +86,32 @@ i3GEOadmin.editor = { | @@ -86,11 +86,32 @@ i3GEOadmin.editor = { | ||
| 86 | temp += core_comboObjeto(dados,"tabela","tabela"); | 86 | temp += core_comboObjeto(dados,"tabela","tabela"); |
| 87 | temp += "</select>"; | 87 | temp += "</select>"; |
| 88 | temp += "" + | 88 | temp += "" + |
| 89 | - "<p><input type=button value='Mostrar os dados' id='i3GEOadmintabelaMostrar' onclick='i3GEOadmin.editor.tabela.mostrar()'/>" + | ||
| 90 | - "<input type=button value='Criar uma nova tabela' id='i3GEOadmintabelaCriar' onclick='i3GEOadmin.editor.tabela.criar()'/>" + | ||
| 91 | - "<input type=button value='Alterar nome atual' id='i3GEOadmintabelaAlterarNome' onclick='i3GEOadmin.editor.tabela.alterarNome()'/>" + | ||
| 92 | - "<input type=button value='Copiar para' id='i3GEOadmintabelaCopiar' onclick='i3GEOadmin.editor.tabela.copiar()'/>"; | 89 | + "<p><input type=button value='Relatório' id='i3GEOadmintabelaMostrar' />" + |
| 90 | + "<input type=button value='CSV' id='i3GEOadmintabelaCsv'/>" + | ||
| 91 | + "<input type=button value='Criar uma nova tabela' id='i3GEOadmintabelaCriar' />" + | ||
| 92 | + "<input type=button value='Alterar nome atual' id='i3GEOadmintabelaAlterarNome' />" + | ||
| 93 | + "<input type=button value='Copiar para' id='i3GEOadmintabelaCopiar' />"; | ||
| 93 | $i(i3GEOadmin.editor.tabela.onde).innerHTML = temp+"</fieldset>"; | 94 | $i(i3GEOadmin.editor.tabela.onde).innerHTML = temp+"</fieldset>"; |
| 95 | + new YAHOO.widget.Button( | ||
| 96 | + "i3GEOadmintabelaMostrar", | ||
| 97 | + {onclick:{fn: i3GEOadmin.editor.tabela.mostrar}} | ||
| 98 | + ); | ||
| 99 | + new YAHOO.widget.Button( | ||
| 100 | + "i3GEOadmintabelaCsv", | ||
| 101 | + {onclick:{fn: i3GEOadmin.editor.tabela.csv}} | ||
| 102 | + ); | ||
| 103 | + new YAHOO.widget.Button( | ||
| 104 | + "i3GEOadmintabelaCriar", | ||
| 105 | + {onclick:{fn: i3GEOadmin.editor.tabela.criar}} | ||
| 106 | + ); | ||
| 107 | + new YAHOO.widget.Button( | ||
| 108 | + "i3GEOadmintabelaAlterarNome", | ||
| 109 | + {onclick:{fn: i3GEOadmin.editor.tabela.alterarNome }} | ||
| 110 | + ); | ||
| 111 | + new YAHOO.widget.Button( | ||
| 112 | + "i3GEOadmintabelaCopiar", | ||
| 113 | + {onclick:{fn: i3GEOadmin.editor.tabela.copiar }} | ||
| 114 | + ); | ||
| 94 | core_carregando("desativa"); | 115 | core_carregando("desativa"); |
| 95 | $i(i3GEOadmin.editor.coluna.onde).innerHTML = ""; | 116 | $i(i3GEOadmin.editor.coluna.onde).innerHTML = ""; |
| 96 | } | 117 | } |
| @@ -242,7 +263,15 @@ i3GEOadmin.editor = { | @@ -242,7 +263,15 @@ i3GEOadmin.editor = { | ||
| 242 | }, | 263 | }, |
| 243 | nomeEsquema = $i("i3GEOadminesquema").value; | 264 | nomeEsquema = $i("i3GEOadminesquema").value; |
| 244 | core_carregando("obtendo dados..."); | 265 | core_carregando("obtendo dados..."); |
| 245 | - core_makeRequest("../php/metaestat.php?funcao=obtemDadosTabelaDB&formato=json&nome_tabela="+$i("i3GEOadmintabela").value+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback); | 266 | + core_makeRequest("../php/metaestat.php?funcao=obtemDadosTabelaDB&geo=nao&formato=json&nome_tabela="+$i("i3GEOadmintabela").value+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback); |
| 267 | + }, | ||
| 268 | + csv: function(){ | ||
| 269 | + if($i("i3GEOadmintabela").value == ""){ | ||
| 270 | + alert("Escolha a tabela"); | ||
| 271 | + return; | ||
| 272 | + } | ||
| 273 | + nomeEsquema = $i("i3GEOadminesquema").value; | ||
| 274 | + window.open("../php/metaestat.php?funcao=obtemDadosTabelaDB&geo=nao&formato=csv&nome_tabela="+$i("i3GEOadmintabela").value+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value); | ||
| 246 | }, | 275 | }, |
| 247 | verificaExiste: function(valor){ | 276 | verificaExiste: function(valor){ |
| 248 | var combo = $i("i3GEOadmintabela"), | 277 | var combo = $i("i3GEOadmintabela"), |
| @@ -268,9 +297,17 @@ i3GEOadmin.editor = { | @@ -268,9 +297,17 @@ i3GEOadmin.editor = { | ||
| 268 | temp += core_comboObjeto(dados,"",""); | 297 | temp += core_comboObjeto(dados,"",""); |
| 269 | temp += "</select>"; | 298 | temp += "</select>"; |
| 270 | temp += "" + | 299 | temp += "" + |
| 271 | - "<p><input type=button value='Adicionar uma nova coluna' id='i3GEOadmincolunaCriar' onclick='i3GEOadmin.editor.coluna.criar()'/>" + | ||
| 272 | - "<input type=button value='Alterar o nome atual' id='i3GEOadmincolunaAlterarNome' onclick='i3GEOadmin.editor.coluna.alterarNome()'/>"; | 300 | + "<p><input type=button value='Adicionar uma nova coluna' id='i3GEOadmincolunaCriar' />" + |
| 301 | + "<input type=button value='Alterar o nome atual' id='i3GEOadmincolunaAlterarNome' />"; | ||
| 273 | $i(i3GEOadmin.editor.coluna.onde).innerHTML = temp+"</fieldset>"; | 302 | $i(i3GEOadmin.editor.coluna.onde).innerHTML = temp+"</fieldset>"; |
| 303 | + new YAHOO.widget.Button( | ||
| 304 | + "i3GEOadmincolunaCriar", | ||
| 305 | + {onclick:{fn: i3GEOadmin.editor.coluna.criar}} | ||
| 306 | + ); | ||
| 307 | + new YAHOO.widget.Button( | ||
| 308 | + "i3GEOadmincolunaAlterarNome", | ||
| 309 | + {onclick:{fn: i3GEOadmin.editor.coluna.alterarNome}} | ||
| 310 | + ); | ||
| 274 | core_carregando("desativa"); | 311 | core_carregando("desativa"); |
| 275 | } | 312 | } |
| 276 | catch(e){core_handleFailure(e,o.responseText);} | 313 | catch(e){core_handleFailure(e,o.responseText);} |
admin/php/classe_metaestat.php
| @@ -1611,18 +1611,29 @@ class Metaestat{ | @@ -1611,18 +1611,29 @@ class Metaestat{ | ||
| 1611 | function descreveColunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela){ | 1611 | function descreveColunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela){ |
| 1612 | return $this->execSQLDB($codigo_estat_conexao,"SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull,p.nspname as esquema FROM pg_class c,pg_attribute a,pg_type t,pg_namespace p WHERE c.relname = '$nome_tabela' and p.nspname = '$nome_esquema' and a.attnum > 0 and a.attrelid = c.oid and a.atttypid = t.oid and c.relnamespace = p.oid ORDER BY a.attname"); | 1612 | return $this->execSQLDB($codigo_estat_conexao,"SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull,p.nspname as esquema FROM pg_class c,pg_attribute a,pg_type t,pg_namespace p WHERE c.relname = '$nome_tabela' and p.nspname = '$nome_esquema' and a.attnum > 0 and a.attrelid = c.oid and a.atttypid = t.oid and c.relnamespace = p.oid ORDER BY a.attname"); |
| 1613 | } | 1613 | } |
| 1614 | - function obtemDadosTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela){ | ||
| 1615 | - $colunas = $this->descreveColunasTabela($codigo_estat_conexao, $nome_esquema, $nome_tabela); | ||
| 1616 | - $dados = $this->execSQLDB($codigo_estat_conexao,"SELECT * from ".$nome_esquema.".".$nome_tabela ); | 1614 | + function obtemDadosTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$geo="nao"){ |
| 1615 | + $desccolunas = $this->descreveColunasTabela($codigo_estat_conexao, $nome_esquema, $nome_tabela); | ||
| 1616 | + $colunas = array(); | ||
| 1617 | + foreach($desccolunas as $d){ | ||
| 1618 | + if($geo == "sim"){ | ||
| 1619 | + $colunas[] = $d["field"]; | ||
| 1620 | + } | ||
| 1621 | + else{ | ||
| 1622 | + if($d["type"] != "geometry" && $d["type"] != "geography"){ | ||
| 1623 | + $colunas[] = $d["field"]; | ||
| 1624 | + } | ||
| 1625 | + } | ||
| 1626 | + } | ||
| 1627 | + $dados = $this->execSQLDB($codigo_estat_conexao,"SELECT ".implode(",",$colunas)." from ".$nome_esquema.".".$nome_tabela ); | ||
| 1617 | $linhas = array(); | 1628 | $linhas = array(); |
| 1618 | foreach($dados as $d){ | 1629 | foreach($dados as $d){ |
| 1619 | $l = array(); | 1630 | $l = array(); |
| 1620 | foreach($colunas as $c){ | 1631 | foreach($colunas as $c){ |
| 1621 | - $l[] = $d[$c["field"]]; | 1632 | + $l[] = $d[$c]; |
| 1622 | } | 1633 | } |
| 1623 | $linhas[] = $l; | 1634 | $linhas[] = $l; |
| 1624 | } | 1635 | } |
| 1625 | - return array("colunas"=>$colunas,"linhas"=>$linhas); | 1636 | + return array("nomescolunas"=>$colunas,"colunas"=>$desccolunas,"linhas"=>$linhas); |
| 1626 | } | 1637 | } |
| 1627 | function relatorioCompleto($codigo_variavel="",$dadosGerenciais="nao"){ | 1638 | function relatorioCompleto($codigo_variavel="",$dadosGerenciais="nao"){ |
| 1628 | $dados = array(); | 1639 | $dados = array(); |
admin/php/metaestat.php
| @@ -1326,7 +1326,17 @@ switch (strtoupper($funcao)) | @@ -1326,7 +1326,17 @@ switch (strtoupper($funcao)) | ||
| 1326 | break; | 1326 | break; |
| 1327 | case "OBTEMDADOSTABELADB": | 1327 | case "OBTEMDADOSTABELADB": |
| 1328 | $m = new Metaestat(); | 1328 | $m = new Metaestat(); |
| 1329 | - retornaJSON($m->obtemDadosTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela)); | 1329 | + if($formato == "json"){ |
| 1330 | + retornaJSON($m->obtemDadosTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$geo)); | ||
| 1331 | + } | ||
| 1332 | + if($formato == "csv"){ | ||
| 1333 | + $dados = $m->obtemDadosTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$geo); | ||
| 1334 | + require_once(__DIR__."/../../pacotes/parsecsv/parsecsv.lib.php"); | ||
| 1335 | + $csv = new parseCSV(); | ||
| 1336 | + //$csv->encoding('UTF-16', 'UTF-8'); | ||
| 1337 | + $csv->titles = $dados["nomescolunas"]; | ||
| 1338 | + $csv->output(true, 'mvar'.$nome_tabela.'_'.date('dmY').'.csv', $dados["linhas"]); | ||
| 1339 | + } | ||
| 1330 | exit; | 1340 | exit; |
| 1331 | break; | 1341 | break; |
| 1332 | /* | 1342 | /* |