if (typeof (i3GEOF) === 'undefined') {
var i3GEOF = {};
}
/*
* Classe: i3GEOF.tabela
*/
i3GEOF.tabela =
{
/**
* Controla se o evento de atualizacao da lista de registros esta ativo ou nao E utilizado quando os graficos sao recuperados de um
* mapa que foi salvo
*/
LISTAREGATIVO : true,
/**
* Array com os ids das janelas ja criadas
*/
janelas : [],
/**
* Objeto com as propriedades de cada janela. A chave e o id da janela armazenado em i3GEO.tabela.janelas
*/
propJanelas : {},
/**
* Template no formato mustache. E preenchido na carga do javascript com o programa dependencias.php
*/
MUSTACHE : "",
/**
* Susbtitutos para o template
*/
mustacheHash : function(idjanela) {
var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.tabela.dicionario);
dicionario["idjanela"] = idjanela;
dicionario["idjanelaA"] = '"' + idjanela + '"';
dicionario["locaplic"] = i3GEO.configura.locaplic;
dicionario["propriedades"] = $trad('p13');
dicionario["ini"] = $inputText("", "", idjanela + 'i3GEOtabelainicio', "", 5, "1");
dicionario["fim"] = $inputText("", "", idjanela + 'i3GEOtabelafim', "", 5, "20");
return dicionario;
},
/**
* Configura a tabela conforme um objeto contendo parametros. Alguns parametros possuem definicoes padrao, usadas quando o valor nao
* e passado
*
* Qualquer outro campo de formulario pode ter seu valor passado como parametro, desde que use o mesmo ID, excluindo-se do nome do
* ID o prefixo (codigo da janela)
*
* parametros {objeto} com os seguintes elementos:
*
* idjanela - id da tabela. Usado como prefixo para inserir os identificadores dos elementos DOM que fazem parte da interface do
* tabela. Se existir um elemento dom esse id, a tabela sera inserido nesse elemento
*
* tema - codigo do tema existente no mapa e que sera a fonte para os dados
*
* atualiza true|false - a janela sera atualizada na navegacao do mapa ou nao
*
*/
configura : function(parametros) {
var idjanela;
if (!parametros.idjanela) {
idjanela = "tabela" + parseInt(Math.random() * 1000000, 10);
} else {
idjanela = parametros.idjanela;
}
i3GEOF.tabela.janelas.push(idjanela);
if (parametros) {
i3GEOF.tabela.propJanelas[idjanela] = parametros;
} else {
i3GEOF.tabela.propJanelas[idjanela] = {};
}
if (!parametros.tema || parametros.tema == undefined) {
i3GEOF.tabela.propJanelas[idjanela].tema = i3GEO.temaAtivo;
}
if (!parametros.atualiza || parametros.atualiza == undefined) {
i3GEOF.tabela.propJanelas[idjanela].atualiza = true;
}
// guarda para essa tabela alguns valores default obtidos dos
// parametros gerais da ferramenta
if (!parametros.w || parametros.w == undefined) {
i3GEOF.tabela.propJanelas[idjanela].w = i3GEOF.tabela.w;
}
if (!parametros.h || parametros.h == undefined) {
i3GEOF.tabela.propJanelas[idjanela].h = i3GEOF.tabela.h;
}
i3GEOF.tabela.propJanelas[idjanela].colunas = {
"itens" : [],
"alias" : []
};
i3GEOF.tabela.propJanelas[idjanela].registros = [];
return idjanela;
},
/**
* Aplica a tabela os parametros de configuracao definidos para cada interface que controla a tabela. Os parametros de configuracao
* sao obtidos na inicializacao, passados como parametros. Essa funcao deve ser executada apos os elementos html terem sido
* renderizados
*/
aplicaConfig : function(idjanela) {
var config, nomesIds, i, o, n, j;
config = i3GEOF.tabela.propJanelas[idjanela];
nomesIds = i3GEO.util.listaChaves(config);
n = nomesIds.length;
for (j = 0; j < n; j++) {
i = nomesIds[j];
if (config[i]) {
o = $i(i);
if (o && o.type) {
if (o.type.toLowerCase() === "radio" || o.type.toLowerCase() === "checkbox") {
o.checked = config[i];
} else {
o.value = config[i];
}
}
}
}
},
/*
* Function: inicia
*
* Inicia a ferramenta. É chamado por criaJanelaFlutuante
*
* Parametro:
*
* iddiv {String} - id do div que receberá o conteudo HTML da ferramenta
*/
inicia : function(iddiv, idjanela) {
var b, onButtonClick = function(p_sType, p_aArgs, botao) {
var oMenuItem = p_aArgs[1];
if (oMenuItem) {
if (oMenuItem.value != "") {
i3GEO.mapa.ativaTema(oMenuItem.value);
botao.set("label", "" + oMenuItem.cfg.getProperty("text") + " ");
i3GEOF.tabela.propJanelas[idjanela].tema = oMenuItem.value;
$i(idjanela + "_corpo").innerHTML = "";
i3GEOF.tabela.inicia(iddiv, idjanela);
}
}
};
if (!$i(idjanela + "i3GEOFtabelaComboCabecaSel")) {
i3GEO.janela.comboCabecalhoTemas(
idjanela + "i3GEOFtabelaComboCabeca",
idjanela + "i3GEOFtabelaComboCabecaSel",
"tabela",
"ligadosComTabela",
onButtonClick);
}
if (i3GEOF.tabela.propJanelas[idjanela].tema === "") {
$i(iddiv).innerHTML = "";
return;
}
try {
$i(iddiv).innerHTML = i3GEOF.tabela.html(idjanela);
i3GEO.guias.mostraGuiaFerramenta(idjanela + "i3GEOtabelaguia1", idjanela + "i3GEOtabelaguia");
// eventos das guias
$i(idjanela + "i3GEOtabelaguia6").onclick = function() {
i3GEO.guias.mostraGuiaFerramenta(idjanela + "i3GEOtabelaguia6", idjanela + "i3GEOtabelaguia");
};
$i(idjanela + "i3GEOtabelaguia1").onclick = function() {
i3GEO.guias.mostraGuiaFerramenta(idjanela + "i3GEOtabelaguia1", idjanela + "i3GEOtabelaguia");
};
$i(idjanela + "i3GEOtabelaguia3").onclick = function() {
i3GEO.guias.mostraGuiaFerramenta(idjanela + "i3GEOtabelaguia3", idjanela + "i3GEOtabelaguia");
if (!$i(idjanela + "i3GEOtabelaComboItensGuia3")) {
i3GEOF.tabela.comboItensEstat(idjanela);
}
};
// relatorio
$i(idjanela + "i3GEOtabelaguia5").onclick =
function() {
i3GEO.guias.mostraGuiaFerramenta(idjanela + "i3GEOtabelaguia5", idjanela + "i3GEOtabelaguia");
i3GEO.util.checkItensEditaveis(i3GEOF.tabela.propJanelas[idjanela].tema, function(retorno) {
if (retorno.tipo === "dados") {
$i(idjanela + "i3GEOtabelaitensrelatorio").innerHTML = retorno.dados;
}
}, idjanela + "i3GEOtabelaitensrelatorio", "320px", "", "sim");
i3GEO.util.comboItens(idjanela + "i3GEOtabelaagrupaItem", i3GEOF.tabela.propJanelas[idjanela].tema, function(
retorno) {
if (retorno.tipo === "erro") {
$i(idjanela + "i3GEOtabelaagrupamento").innerHTML =
"
" + $trad('erroTemaOrigem', i3GEOF.tabela.dicionario)
+ "
";
} else {
$i(idjanela + "i3GEOtabelaagrupamento").innerHTML = retorno.dados;
}
}, idjanela + "i3GEOtabelaagrupamento", "");
};
b = new YAHOO.widget.Button(idjanela + "i3GEOtabelabotao2", {
onclick : {
fn : function() {
i3GEOF.tabela.ativaSelecao(idjanela);
}
}
});
b.addClass("rodar100");
b = new YAHOO.widget.Button(idjanela + "i3GEOtabelabotao3", {
onclick : {
fn : function() {
i3GEOF.tabela.limpaSelecao(idjanela);
}
}
});
b.addClass("rodar100");
b = new YAHOO.widget.Button(idjanela + "i3GEOtabelabotao6", {
onclick : {
fn : function() {
i3GEOF.tabela.criaNovoTema(idjanela);
}
}
});
b.addClass("rodar100");
b = new YAHOO.widget.Button(idjanela + "i3GEOtabelabotaoLista", {
onclick : {
fn : function() {
i3GEOF.tabela.pegaRegistros(idjanela);
}
}
});
b.addClass("rodar100");
b = new YAHOO.widget.Button(idjanela + "i3GEOtabelaGraficoI", {
onclick : {
fn : function() {
i3GEO.mapa.ativaTema(i3GEOF.tabela.propJanelas[idjanela].tema);
i3GEO.analise.dialogo.graficoInterativo1();
}
}
});
b.addClass("rodar100");
$i(idjanela + "i3GEOtabelabotaoLista-button").style.minHeight = "2em";
$i(idjanela + "i3GEOtabelabotaoLista-button").style.padding = "0px 15px";
$i(idjanela + "i3GEOtabelabotaoLista-button").style.lineHeight = "1.5";
$i(idjanela + "i3GEOtabelabotaoLista").style.position = "relative";
$i(idjanela + "i3GEOtabelabotaoLista").style.top = "2px";
b = new YAHOO.widget.Button(idjanela + "i3GEOtabelabotao4", {
onclick : {
fn : function() {
i3GEOF.tabela.estatistica(idjanela);
}
}
});
b.addClass("abrir");
b = new YAHOO.widget.Button(idjanela + "i3GEOtabelabotao7", {
onclick : {
fn : function() {
i3GEOF.tabela.relatorioTabela(idjanela);
}
}
});
b.addClass("abrir");
b = new YAHOO.widget.Button(idjanela + "i3GEOtabelabotao5", {
onclick : {
fn : function() {
i3GEOF.tabela.relatorioTexto(idjanela);
}
}
});
b.addClass("abrir");
b = new YAHOO.widget.Button(idjanela + "i3GEOtabelabotaoVinculos", {
onclick : {
fn : function() {
i3GEOF.tabela.vinculos.iniciaJanelaFlutuante();
}
}
});
b.addClass("abrir100");
i3GEO.util.mensagemAjuda(idjanela + "i3GEOtabelamen1", $i(idjanela + "i3GEOtabelamen1").innerHTML);
if (i3GEO.parametros.r.toLowerCase() !== "sim") {
$i(idjanela + "i3GEOtabelaguia4obj").innerHTML = $trad("x22");
}
i3GEOF.tabela.pegaRegistros(idjanela);
} catch (erro) {
i3GEO.janela.tempoMsg(erro);
}
i3GEO.guias.ajustaGuiaFerramenta(idjanela, idjanela + "i3GEOtabela");
//
// Apos todos os elementos HTML da ferramenta terem sido renderizados
// aplicam-se os parametros armazenados nas propriedades da janela atual
// Isso e necessario pois os parametros podem ter sido enviados na inicializacao da ferramenta,
// por exemplo, quando um mapa e salvo, os parametros sao armazenados e depois recuperados
//
i3GEOF.tabela.aplicaConfig(idjanela);
if ($i(idjanela)) {
$i(idjanela).style.visibility = "visible";
}
i3GEO.eventos.adicionaEventos("ATUALIZAARVORECAMADAS", [
"i3GEOF.tabela.atualizaCombosCabecalhos()"
]);
},
/*
* Function: html
*
* Gera o código html para apresentação das opções da ferramenta
*
* Retorno:
*
* String com o código html
*/
html : function(idjanela) {
var ins = Mustache.render(i3GEOF.tabela.MUSTACHE, i3GEOF.tabela.mustacheHash(idjanela));
return ins;
},
/*
* Function: criaJanelaFlutuante
*
* Cria a janela flutuante para controle da ferramenta.
*/
iniciaJanelaFlutuante : function(parametros) {
var duplica, minimiza, cabecalho, janela, divid, temp, titulo, id;
if (!parametros) {
parametros = {};
}
//
// configura a tabela baseado no objeto parametros
// se em parametros existir um idjanela, o mesmo e retornado, caso contrario, e criado
//
id = i3GEOF.tabela.configura(parametros);
//
// se existir um elemento HTML com o mesmo ID da janela, a renderizacao ocorrera
// nesse elemento, caso contrario, sera criada uma janela flutuante
//
if (!$i(id) && !$i(id + "_corpo")) {
cabecalho = function() {
i3GEOF.tabela.ativaFoco(id);
};
minimiza = function() {
i3GEO.janela.iconiza(id,120,"i3GEOFtabelaRodape" + id);
};
duplica = function() {
i3GEOF.tabela.iniciaJanelaFlutuante();
};
// cria a janela flutuante
titulo =
""
+ "
" + $trad('colunaLigacao', i3GEOF.tabela.dicionario) + "
" + colunas;
$i("i3GEOFTabelaVinculoT1Colunas").innerHTML = ins;
},
comboColunasT2 : function() {
var colunas =
i3GEOF.tabela
.comboColunas($i("i3GEOFTabelaOpcoesAdicionaVinculoT2").value, "i3GEOFTabelaOpcoesAdicionaVinculoColunaT2"), ins =
"";
ins = "
" + $trad('colunaLigacao', i3GEOF.tabela.dicionario) + "
" + colunas;
$i("i3GEOFTabelaVinculoT2Colunas").innerHTML = ins;
},
lista : function() {
var v = i3GEOF.tabela.vinculos.ligacoes, n = v.length, ins =
"
" + $trad('vinculos', i3GEOF.tabela.dicionario) + "
", i; for (i = 0; i < n; i++) { ins += "
"
+ v[i].t1
+ " "
+ v[i].c1
+ " -> "
+ v[i].t2
+ " "
+ v[i].c2
+ "
";
}
$i("i3GEOFtabelaVinculosLista").innerHTML = ins;
},
excluir : function(i) {
i3GEOF.tabela.vinculos.ligacoes.splice(parseInt(i, 10), 1);
i3GEOF.tabela.vinculos.lista();
},
atualizaVinculos : function(tabelaOrigem, registro, marcado) {
var v = i3GEOF.tabela.vinculos.ligacoes, n = v.length, i, valor;
if (n > 0) {
for (i = 0; i < n; i++) {
// verifica se o vinculo existe
if (v[i].t1 === tabelaOrigem) {
// pega o valor do registro na tabela origem
valor = i3GEOF.tabela.vinculos.pegaValorRegistro(v[i].t1, v[i].c1, registro);
// marca o registro na tabela destino
i3GEOF.tabela.vinculos.registro(v[i].t2, v[i].c2, valor, marcado);
}
if (v[i].t2 === tabelaOrigem) {
// pega o valor do registro na tabela origem
valor = i3GEOF.tabela.vinculos.pegaValorRegistro(v[i].t2, v[i].c2, registro);
// marca o registro na tabela destino
i3GEOF.tabela.vinculos.registro(v[i].t1, v[i].c1, valor, marcado);
}
}
}
},
// verifica qtas colunas devem ser puladas em cada linha
colunasVazias : function(idjanela) {
var tabela = $i(idjanela + "i3GEOtabelatabelai"), linhas = tabela.getElementsByTagName("tr"), pular = 0, colunas, n, i;
colunas = linhas[0].getElementsByTagName("td");
n = colunas.length;
for (i = 0; i < n; i++) {
if (colunas[i].innerHTML == "") {
pular++;
}
}
return pular;
},
// pega o indice de uma coluna em uma tabela buscando no cabecalho
// no valor de title em cada celula
indiceColuna : function(idjanela, t) {
var tabela = $i(idjanela + "i3GEOtabelatabelai"), linhas = tabela.getElementsByTagName("tr"), linha = linhas[0], colunas =
linha.getElementsByTagName("td"), indice = 0, n = colunas.length, i, s;
for (i = 0; i < n; i++) {
s = colunas[i].getElementsByTagName("span");
if (s && s[0] && s[0].title && s[0].title == t) {
return i;
}
}
return indice;
},
// retorna o indice de uma coluna que contem a tag input na tabela
// com a lista de valores
indiceColunaInput : function(idjanela) {
var tabela = $i(idjanela + "i3GEOtabelatabelai"), linhas = tabela.getElementsByTagName("tr"), linha = linhas[1], colunas =
linha.getElementsByTagName("td"), indice = 0, n = colunas.length, i;
for (i = 0; i < n; i++) {
if (colunas[i].getElementsByTagName("input").length > 0) {
return i;
}
}
return indice;
},
// pega o valor da coluna em uma tabela com a lista de valores com
// base no codigo do registro
pegaValorRegistro : function(idjanela, coluna, registro) {
var tabela = $i(idjanela + "i3GEOtabelatabelai"), linhas = tabela.getElementsByTagName("tr"), n = linhas.length, indiceColuna =
i3GEOF.tabela.vinculos.indiceColuna(idjanela, coluna), indiceColunaInput =
i3GEOF.tabela.vinculos.indiceColunaInput(idjanela), i, linha, colunas;
for (i = 1; i < n; i++) {
linha = linhas[i];
colunas = linha.getElementsByTagName("td");
if (colunas[indiceColunaInput].getElementsByTagName("input")[0].name == registro) {
return colunas[indiceColuna].innerHTML;
}
}
return "";
},
registro : function(idjanela, coluna, valor, marcado) {
var tabela = $i(idjanela + "i3GEOtabelatabelai"), linhas = tabela.getElementsByTagName("tr"), n = linhas.length, indiceColuna =
i3GEOF.tabela.vinculos.indiceColuna(idjanela, coluna), indiceColunaInput =
i3GEOF.tabela.vinculos.indiceColunaInput(idjanela), i, linha, colunas, reg;
for (i = 1; i < n; i++) {
linha = linhas[i];
colunas = linha.getElementsByTagName("td");
if (colunas[indiceColuna].innerHTML == valor) {
reg = colunas[indiceColunaInput].getElementsByTagName("input")[0];
reg.checked = marcado;
i3GEOF.tabela.propJanelas[idjanela].registros[reg.name] = marcado;
}
}
},
},
comboJanelas : function(idcombo, funcao, w) {
var i, n = i3GEOF.tabela.janelas.length;
if (!funcao) {
funcao = "";
}
if (!w) {
w = 260;
}
ins =
"" + " ";
return ins;
},
comboColunas : function(idJanela, idcombo, funcao, w) {
var i, c = i3GEOF.tabela.propJanelas[idJanela].colunas, n = c.itens.length;
if (!funcao) {
funcao = "";
}
if (!w) {
w = 250;
}
ins =
"" + " ";
return ins;
},
/*
* Function: ativaAutoAtualiza
*
* Ativa ou desativa a atualização automática da tabela quando o usuário navega no mapa
*/
atualizaListaDeRegistros : function() {
var i, janelas = i3GEOF.tabela.janelas, propJanelas = i3GEOF.tabela.propJanelas, n = janelas.length;
for (i = 0; i < n; i++) {
if (propJanelas[janelas[i]].atualiza === true) {
i3GEOF.tabela.pegaRegistros(janelas[i]);
}
}
},
/*
* Function: pegaRegistros
*
* Pega os registros da tabela de atributos do tema
*
* Veja:
*
* " + nome + ": " + valor + "";
ins +=
"
";
cor = "linha";
n = retorno.data[1].registros.length;
if ($i(idjanela + "i3GEOtabelafim").value === "") {
$i(idjanela + "i3GEOtabelafim").value = n - 1;
}
for (i = 0; i < n; i++) {
ins +=
"";
i3GEOF.tabela.propJanelas[idjanela].colunas = {
"itens" : retorno.data[0].itens,
"alias" : retorno.data[0].alias
};
n = retorno.data[0].itens.length;
for (i = 0; i < n; i++) {
ins +=
" "
+ " ";
}
ins += "
"
+ "
"
+ retorno.data[0].alias[i]
+ " ";
ins += "
";
if (retorno.data[1].registros[i].ext && retorno.data[1].registros[i].ext != "") {
ins +=
" ";
stat = "";
if (retorno.data[1].registros[i].status === "CHECKED") {
stat = "CHECKED";
}
if (registros[retorno.data[1].registros[i].indice]) {
if (registros[retorno.data[1].registros[i].indice] === true) {
stat = "CHECKED";
} else {
stat = "";
}
}
ins +=
"
";
}
ins += "";
if (i3GEOtabelalegenda == true) {
imagem = retorno.data.legenda[retorno.data[1].registros[i].classe["indice"]];
ins += " ";
} else {
ins += "";
}
if (stat === "CHECKED") {
registros[retorno.data[1].registros[i].indice] = true;
}
vals = retorno.data[1].registros[i].valores;
for (j = 0; j < vals.length; j++) {
ins += " " + vals[j].valor + " ";
}
if (cor === "linha") {
cor = "linha1";
} else {
cor = "linha";
}
}
$i(idjanela + "i3GEOtabelaregistros").innerHTML = ins;
}
i3GEOF.tabela.propJanelas[idjanela].aguarde.visibility = "hidden";
},
/*
* Function: mais
*
* Avança o contador de registros para a listagem
*/
mais : function(idjanela) {
if (i3GEOF.tabela.propJanelas[idjanela].aguarde.visibility === "visible") {
return;
}
var i = $i(idjanela + "i3GEOtabelainicio").value * 1, f = $i(idjanela + "i3GEOtabelafim").value * 1, d = f - i;
$i(idjanela + "i3GEOtabelainicio").value = f + 1;
$i(idjanela + "i3GEOtabelafim").value = f + d + 1;
i3GEOF.tabela.pegaRegistros(idjanela);
},
/*
* Function: todos
*
* Avança o contador de registros para o fim da listagem
*/
todos : function(idjanela) {
if (i3GEOF.tabela.propJanelas[idjanela].aguarde.visibility === "visible") {
return;
}
$i(idjanela + "i3GEOtabelainicio").value = 1;
$i(idjanela + "i3GEOtabelafim").value = "";
i3GEOF.tabela.pegaRegistros(idjanela, false, false, false, 1, false);
},
/*
* Function: menos
*
* Retrocede o contador de registros para a listagem
*/
menos : function(idjanela) {
if (i3GEOF.tabela.propJanelas[idjanela].aguarde.visibility === "visible") {
return;
}
var i = $i(idjanela + "i3GEOtabelainicio").value * 1, f = $i(idjanela + "i3GEOtabelafim").value * 1, d = f - i;
$i(idjanela + "i3GEOtabelainicio").value = i - d - 1;
$i(idjanela + "i3GEOtabelafim").value = i - 1;
if ($i(idjanela + "i3GEOtabelainicio").value < 1) {
$i(idjanela + "i3GEOtabelainicio").value = 1;
$i(idjanela + "i3GEOtabelafim").value = 1 + d;
}
i3GEOF.tabela.pegaRegistros(idjanela);
},
/*
* Function: excluiColuna
*
* Exclui uma coluna da visualização da tabela
*/
excluiColuna : function(coluna, cid, idjanela) {
i3GEOF.tabela.propJanelas[idjanela].aguarde.visibility = "visible";
try {
var tabela = $i(idjanela + "i3GEOtabelatabelai"), trs, tds, i, t, nt, ni;
// pega o indice correto
tds = coluna.parentNode.parentNode.getElementsByTagName("td");
nt = tds.length;
for (t = 0; t < nt; t++) {
if (tds[t].accessKey == cid) {
cid = t;
break;
}
}
trs = tabela.getElementsByTagName("tr");
nt = trs.length;
for (t = 0; t < nt; t++) {
i = trs[t];
if (i.getElementsByTagName("td")[cid]) {
ni = i.getElementsByTagName("td")[cid];
i.removeChild(ni);
}
}
i3GEOF.tabela.propJanelas[idjanela].aguarde.visibility = "hidden";
} catch (e) {
i3GEOF.tabela.propJanelas[idjanela].aguarde.visibility = "hidden";
if (typeof (console) !== 'undefined') {
console.error(e);
}
}
},
/*
* Function: ordenaColuna
*
* Ordena uma coluna da tabela
*/
ordenaColuna : function(coluna, cid, idjanela) {
i3GEOF.tabela.propJanelas[idjanela].aguarde.visibility = "visible";
try {
var tabela = $i(idjanela + "i3GEOtabelatabelai"), trs = tabela.getElementsByTagName("tr"), ntrs = trs.length, tds, nt, conta =
0, psort = [], t, psortfim, npsortfim, ins, p, e;
// pega o indice correto
tds = coluna.parentNode.parentNode.getElementsByTagName("td");
nt = tds.length;
for (t = 0; t < nt; t++) {
if (tds[t].accessKey == cid) {
cid = t;
break;
}
}
for (t = 0; t < ntrs; t++) {
if (t < ntrs) {
if (trs[t].childNodes[cid].innerHTML) {
if (trs[t].childNodes[cid].innerHTML !== "undefined") {
psort[conta] = trs[t].childNodes[cid].innerHTML + "+" + conta;
conta = conta + 1;
}
}
}
}
// recosntroi a tabela
psortfim = psort.sort();
ins = "";
npsortfim = psortfim.length;
for (p = 0; p < npsortfim; p++) {
e = psortfim[p].split("+")[1] * 1;
if (trs[e] !== undefined) {
ins += "
";
i3GEOF.tabela.propJanelas[idjanela].aguarde.visibility = "hidden";
} catch (e) {
i3GEOF.tabela.propJanelas[idjanela].aguarde.visibility = "hidden";
if (typeof (console) !== 'undefined') {
console.error(e);
}
}
},
excluiLinha : function(celula) {
var p = celula.parentNode.parentNode;
do {
p.removeChild(p.childNodes[0]);
} while (p.childNodes.length > 0);
p.parentNode.removeChild(p);
},
zoomExt : function(ext, idjanela) {
if (i3GEOF.tabela.propJanelas[idjanela].aguarde.visibility === "visible") {
return;
}
i3GEOF.tabela.propJanelas[idjanela].aguarde.visibility = "visible";
var funcao = function() {
i3GEOF.tabela.propJanelas[idjanela].aguarde.visibility = "hidden";
i3GEOF.tabela.pegaRegistros(idjanela);
i3GEO.atualiza();
};
i3GEO.php.mudaext(funcao, "nenhum", ext);
},
registraLinha : function(linha, idjanela) {
i3GEOF.tabela.propJanelas[idjanela].registros[linha.name] = linha.checked;
i3GEOF.tabela.vinculos.atualizaVinculos(idjanela, linha.name, linha.checked);
},
/*
* Function: listaMarcados
*
* Retorna um array com os índices dos registros que estão marcados.
*/
listaMarcados : function(idjanela) {
var lista = [], registros = i3GEOF.tabela.propJanelas[idjanela].registros, i, n = registros.length;
for (i = 0; i < n; i++) {
if (registros[i] === true) {
lista.push(i);
}
}
return lista;
},
/*
* Function: ativaSelecao
*
* Seleciona no mapa os elementos que estiverem marcados na guia 2
*
* Veja:
*
* " + trs[e].innerHTML + " ";
}
}
$i(idjanela + "i3GEOtabelaregistros").innerHTML = ins + "
" + $trad('erroTemaOrigem2', i3GEOF.tabela.dicionario) + "
";
} else {
$i(idjanela + "i3GEOtabelaitensGuia3").innerHTML = retorno.dados;
}
}, idjanela + "i3GEOtabelaitensGuia3", "");
},
estatistica : function(idjanela) {
if ($i(idjanela + "i3GEOtabelaComboItensGuia3").value === "") {
i3GEO.janela.tempoMsg("Escolha um item!");
return;
}
if (i3GEOF.tabela.propJanelas[idjanela].aguarde.visibility === "visible") {
return;
}
i3GEOF.tabela.propJanelas[idjanela].aguarde.visibility = "visible";
try {
var monta = function(retorno) {
var ins = "", nome, valor, i, n;
if (retorno.data.indices !== undefined) {
if (retorno.data.indices) {
n = retorno.data.indices.length;
for (i = 0; i < n; i++) {
nome = eval("retorno.data.variaveis." + retorno.data.indices[i]);
valor = eval("retorno.data.valores." + retorno.data.indices[i]);
ins += "
";
i3GEOF.tabela.propJanelas[idjanela].aguarde.visibility = "hidden";
}, exclui = "", cp = new cpaint(), p;
if ($i(idjanela + "i3GEOtabelafiltro1").value !== "") {
exclui = $i("i3GEOtabelafiltro1").value;
}
p =
i3GEO.configura.locaplic + "/ferramentas/tabela/exec.php?g_sid="
+ i3GEO.configura.sid
+ "&funcao=estatistica&item="
+ $i(idjanela + "i3GEOtabelaComboItensGuia3").value
+ "&tema="
+ i3GEOF.tabela.propJanelas[idjanela].tema
+ "&exclui="
+ exclui
+ "&ext="
+ i3GEO.parametros.mapexten;
cp.set_response_type("JSON");
cp.call(p, "estatDescritivas", monta);
} catch (e) {
i3GEOF.tabela.propJanelas[idjanela].aguarde.visibility = "hidden";
$i("operacoes").innerHTML = "Ocorreu um erro: " + e;
}
},
tabelaTexto : function() {
},
/*
* Function: relatorioTabela
*
* Monta o relatório padrão em uma nova janela
*/
relatorioTabela : function(idjanela) {
try {
$i(idjanela + "i3GEOtabelatiporelh").value = "";
$i(idjanela + "i3GEOtabelaarearelh").value = $i(idjanela + "i3GEOtabelacalculaarea").checked;
$i(idjanela + "i3GEOtabelastatrelh").value = $i(idjanela + "i3GEOtabelacalculaestat").checked;
$i(idjanela + "i3GEOtabelaexcluirvalorh").value = $i(idjanela + "i3GEOtabelaexcestat").value;
$i(idjanela + "i3GEOtabelatemarelh").value = i3GEOF.tabela.propJanelas[idjanela].tema;
$i(idjanela + "i3GEOtabelag_sidh").value = i3GEO.configura.sid;
$i(idjanela + "i3GEOtabelaitemagruparelh").value = $i(idjanela + "i3GEOtabelaagrupaItem").value;
var inputs = $i(idjanela + "i3GEOtabelaitensrelatorio").getElementsByTagName("input"), listai = [], listaordem = [], listanomes =
[], nome, ordem, i, temp, n = inputs.length;
for (i = 0; i < n; i++) {
if (inputs[i].type === "checkbox" && inputs[i].checked == true) {
listai.push(inputs[i].id + "|" + inputs[i].name);
nome = $i(inputs[i].id + inputs[i].name).value;
listanomes.push(nome);
ordem = $i("ordem_" + inputs[i].id + inputs[i].name).value;
if (ordem === "") {
ordem = 0;
}
listaordem.push(ordem);
}
}
$i(idjanela + "i3GEOtabelaordemrel").value = listaordem;
$i(idjanela + "i3GEOtabelanomesrelh").value = listanomes;
$i(idjanela + "i3GEOtabelaitensrelh").value = listai;
temp = $i(idjanela + "i3GEOtabelarelatorio").action;
$i(idjanela + "i3GEOtabelarelatorio").action += "?ext=" + i3GEO.parametros.mapexten;
$i(idjanela + "i3GEOtabelarelatorio").submit();
$i(idjanela + "i3GEOtabelarelatorio").action = temp;
} catch (e) {
i3GEO.janela.tempoMsg(e);
}
},
/*
* Function: relatorioTexto
*
* Gera o relatório no formato CSV
*/
relatorioTexto : function(idjanela) {
$i(idjanela + "i3GEOtabelaarearelh").value = $i(idjanela + "i3GEOtabelacalculaarea").checked;
$i(idjanela + "i3GEOtabelastatrelh").value = $i(idjanela + "i3GEOtabelacalculaestat").checked;
$i(idjanela + "i3GEOtabelaexcluirvalorh").value = $i(idjanela + "i3GEOtabelaexcestat").value;
$i(idjanela + "i3GEOtabelatemarelh").value = i3GEOF.tabela.propJanelas[idjanela].tema;
$i(idjanela + "i3GEOtabelag_sidh").value = i3GEO.configura.sid;
$i(idjanela + "i3GEOtabelaitemagruparelh").value = $i(idjanela + "i3GEOtabelaagrupaItem").value;
$i(idjanela + "i3GEOtabelatiporelh").value = "csv";
var inputs = $i(idjanela + "i3GEOtabelaitensrelatorio").getElementsByTagName("input"), listai = [], listanomes = [], nome, i, temp, n =
inputs.length;
for (i = 0; i < n; i++) {
if (inputs[i].checked === true) {
listai.push(inputs[i].id + "|" + inputs[i].name);
nome = $i(inputs[i].id + inputs[i].name).value;
listanomes.push(nome);
}
}
$i(idjanela + "i3GEOtabelanomesrelh").value = listanomes;
$i(idjanela + "i3GEOtabelaitensrelh").value = listai;
temp = $i(idjanela + "i3GEOtabelarelatorio").action;
$i(idjanela + "i3GEOtabelarelatorio").action += "?ext=" + i3GEO.parametros.mapexten;
$i(idjanela + "i3GEOtabelarelatorio").submit();
$i(idjanela + "i3GEOtabelarelatorio").action = temp;
}
};