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 | /* |