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 | 186 | <td><div class=aplicar></div></td> |
187 | 187 | <td>Cadastro de fontes de informação</td> |
188 | 188 | </tr> |
189 | - <tr onclick="abre('estat_uploaddados.html')"> | |
189 | + <tr onclick="abre('html/estat_uploaddados.html')"> | |
190 | 190 | <td><div class=aplicar></div></td> |
191 | - <td>Upload e download de dados</td> | |
191 | + <td>Upload de dados</td> | |
192 | 192 | </tr> |
193 | 193 | <tr onclick="abre('html/estat_editor.html')"> |
194 | 194 | <td><div class=aplicar></div></td> | ... | ... |
admin/js/estat_editor.js
... | ... | @@ -86,11 +86,32 @@ i3GEOadmin.editor = { |
86 | 86 | temp += core_comboObjeto(dados,"tabela","tabela"); |
87 | 87 | temp += "</select>"; |
88 | 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 | 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 | 115 | core_carregando("desativa"); |
95 | 116 | $i(i3GEOadmin.editor.coluna.onde).innerHTML = ""; |
96 | 117 | } |
... | ... | @@ -242,7 +263,15 @@ i3GEOadmin.editor = { |
242 | 263 | }, |
243 | 264 | nomeEsquema = $i("i3GEOadminesquema").value; |
244 | 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 | 276 | verificaExiste: function(valor){ |
248 | 277 | var combo = $i("i3GEOadmintabela"), |
... | ... | @@ -268,9 +297,17 @@ i3GEOadmin.editor = { |
268 | 297 | temp += core_comboObjeto(dados,"",""); |
269 | 298 | temp += "</select>"; |
270 | 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 | 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 | 311 | core_carregando("desativa"); |
275 | 312 | } |
276 | 313 | catch(e){core_handleFailure(e,o.responseText);} | ... | ... |
admin/php/classe_metaestat.php
... | ... | @@ -1611,18 +1611,29 @@ class Metaestat{ |
1611 | 1611 | function descreveColunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela){ |
1612 | 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 | 1628 | $linhas = array(); |
1618 | 1629 | foreach($dados as $d){ |
1619 | 1630 | $l = array(); |
1620 | 1631 | foreach($colunas as $c){ |
1621 | - $l[] = $d[$c["field"]]; | |
1632 | + $l[] = $d[$c]; | |
1622 | 1633 | } |
1623 | 1634 | $linhas[] = $l; |
1624 | 1635 | } |
1625 | - return array("colunas"=>$colunas,"linhas"=>$linhas); | |
1636 | + return array("nomescolunas"=>$colunas,"colunas"=>$desccolunas,"linhas"=>$linhas); | |
1626 | 1637 | } |
1627 | 1638 | function relatorioCompleto($codigo_variavel="",$dadosGerenciais="nao"){ |
1628 | 1639 | $dados = array(); | ... | ... |
admin/php/metaestat.php
... | ... | @@ -1326,7 +1326,17 @@ switch (strtoupper($funcao)) |
1326 | 1326 | break; |
1327 | 1327 | case "OBTEMDADOSTABELADB": |
1328 | 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 | 1340 | exit; |
1331 | 1341 | break; |
1332 | 1342 | /* | ... | ... |