function montaTabelaFluxoDeCaixa(){
//Preenchendo a tabela de Fluxo de Caixa
var div;
var tabela;
var pont;
div = document.getElementById('fluxodecaixa');
tabela = "<table border='0' width='960' cellpadding='0' cellspacing='0' style='border-collapse:"
tabela = tabela + " collapse;' >"
pont = contasFluxoDeCaixa.next();
while(pont!=null){
//Valores calculados de cada conta
var valorContaFCB1=formataValor(achaValorCalculado(pont.value().cdContaContabilMonitor,arrayFormula[1],arrayBalancoConta[1]));
var valorContaFCB2=formataValor(achaValorCalculado(pont.value().cdContaContabilMonitor,arrayFormula[2],arrayBalancoConta[2]));
var valorContaFCB3=formataValor(achaValorCalculado(pont.value().cdContaContabilMonitor,arrayFormula[3],arrayBalancoConta[3]));
var valorContaFCB4=formataValor(achaValorCalculado(pont.value().cdContaContabilMonitor,arrayFormula[4],arrayBalancoConta[4]));
var pcContaFCB1=formataValor(achaValorCalculado(pont.value().cdContaContabilMonitor,arrayFormulaPorcent[0],null));
var pcContaFCB2=formataValor(achaValorCalculado(pont.value().cdContaContabilMonitor,arrayFormulaPorcent[1],null));
var pcContaFCB3=formataValor(achaValorCalculado(pont.value().cdContaContabilMonitor,arrayFormulaPorcent[2],null));
var pcContaFCB4=formataValor(achaValorCalculado(pont.value().cdContaContabilMonitor,arrayFormulaPorcent[3],null));
//escolhe o estilo de acordo com o nivelConta
if(pont.value().nuNivelConta==1){
estilo="tdbalancoTitulo";
}else if(pont.value().nuNivelConta==2){
estilo="tdbalancoTotal";
}else if(pont.value().nuNivelConta==3){
estilo="tdbalancoDestaque";
}else estilo="tdbalancoEdicao";
//monta a linha sendo editavel, gravavel ou não dependendo do tipo de edição
var naoGravavel="";
if(pont.value().tpEdicaoConta==3) naoGravavel="_NG";
if(pont.value().tpEdicaoConta!=2){
tabela = tabela + "<tr><td width='319' class='" + estilo + "'>" + pont.value().dsConta + "</td>";
tabela = tabela + "<td width='1' class='space'> </td>";
tabela = tabela + "<td width='100' class='" + estilo + "'><input style='width:95;' type='text' id='FC_valorConta_b1_" + pont.value().cdContaContabilMonitor + naoGravavel + "' name='FC_valorConta_b1_" + pont.value().cdContaContabilMonitor + naoGravavel + "' value='" + valorContaFCB1 + "' ";
tabela += " onkeypress='onlyNumber(event);' ";
tabela += " style='text-align:right'";
tabela += " maxlength='15'";
tabela += " onblur='recalcular(this);'";
tabela += " class='campoValor' /> </td>";
tabela = tabela + "<td width='60' class='" + estilo + "'><input style='width:55;' type='text' id='FC_porcentagemConta_b1_" + pont.value().cdContaContabilMonitor + naoGravavel + "' name='FC_porcentagemConta_b1_" + pont.value().cdContaContabilMonitor + naoGravavel + "' value='" + pcContaFCB1 + "' readonly></td>";
tabela = tabela + "<td width='100' class='" + estilo + "'><input style='width:95;' type='text' id='FC_valorConta_b2_" + pont.value().cdContaContabilMonitor + naoGravavel + "' name='FC_valorConta_b2_" + pont.value().cdContaContabilMonitor + naoGravavel + "' value='" + valorContaFCB2 + "' ";
tabela += " onkeypress='onlyNumber(event);' ";
tabela += " style='text-align:right'";
tabela += " maxlength='15'";
tabela += " onblur='recalcular(this);'";
tabela += " class='campoValor' /> </td>";
tabela = tabela + "<td width='60' class='" + estilo + "'><input style='width:55;' type='text' id='FC_porcentagemConta_b2_" + pont.value().cdContaContabilMonitor + naoGravavel + "' name='FC_porcentagemConta_b2_" + pont.value().cdContaContabilMonitor + naoGravavel + "' value='" + pcContaFCB2 + "' readonly></td>";
tabela = tabela + "<td width='100' class='" + estilo + "'><input style='width:95;' type='text' id='FC_valorConta_b3_" + pont.value().cdContaContabilMonitor + naoGravavel + "' name='FC_valorConta_b3_" + pont.value().cdContaContabilMonitor + naoGravavel + "' value='" + valorContaFCB3 + "' ";
tabela += " onkeypress='onlyNumber(event);' ";
tabela += " style='text-align:right'";
tabela += " maxlength='15'";
tabela += " onblur='recalcular(this);'";
tabela += " class='campoValor' /> </td>";
tabela = tabela + "<td width='60' class='" + estilo + "'><input style='width:55;' type='text' id='FC_porcentagemConta_b3_" + pont.value().cdContaContabilMonitor + naoGravavel + "' name='FC_porcentagemConta_b3_" + pont.value().cdContaContabilMonitor + naoGravavel + "' value='" + pcContaFCB3 + "' readonly></td>";
tabela = tabela + "<td width='100' class='" + estilo + "'><input style='width:95;' type='text' id='FC_valorConta_b4_" + pont.value().cdContaContabilMonitor + naoGravavel + "' name='FC_valorConta_b4_" + pont.value().cdContaContabilMonitor + naoGravavel + "' value='" + valorContaFCB4 + "' ";
tabela += " onkeypress='onlyNumber(event);' ";
tabela += " style='text-align:right'";
tabela += " maxlength='15'";
tabela += " onblur='recalcular(this);'";
tabela += " class='campoValor' /> </td>";
tabela = tabela + "<td width='60' class='" + estilo + "'><input style='width:55;' type='text' id='FC_porcentagemConta_b4_" + pont.value().cdContaContabilMonitor + naoGravavel + "' name='FC_porcentagemConta_b4_" + pont.value().cdContaContabilMonitor + "' value='" + pcContaFCB4 + "' readonly></td></tr>";
}else{
tabela = tabela + "<tr><td width='319' class='" + estilo + "'>" + pont.value().dsConta + "</td>";
tabela = tabela + "<td width='1' class='space'> </td>";
tabela = tabela + "<td width='100' class='" + estilo + "' id='FC_valorConta_b1_" + pont.value().cdContaContabilMonitor + naoGravavel + "_td'><input type='hidden' id='FC_valorConta_b1_" + pont.value().cdContaContabilMonitor + naoGravavel + "' name='FC_valorConta_b1_" + pont.value().cdContaContabilMonitor + naoGravavel + "' value='" + valorContaFCB1 + "'>" + valorContaFCB1 + "</td>";
tabela = tabela + "<td width='60' class='" + estilo + "' id='FC_porcentagemConta_b1_" + pont.value().cdContaContabilMonitor + naoGravavel + "_td'><input type='hidden' id='FC_porcentagemConta_b1_" + pont.value().cdContaContabilMonitor + naoGravavel + "' name='FC_porcentagemConta_b1_" + pont.value().cdContaContabilMonitor + naoGravavel + "' value='" + pcContaFCB1 + "'>" + pcContaFCB1 + "</td>";
tabela = tabela + "<td width='100' class='" + estilo + "' id='FC_valorConta_b2_" + pont.value().cdContaContabilMonitor + naoGravavel + "_td'><input type='hidden' id='FC_valorConta_b2_" + pont.value().cdContaContabilMonitor + naoGravavel + "' name='FC_valorConta_b2_" + pont.value().cdContaContabilMonitor + naoGravavel + "' value='" + valorContaFCB2 + "'>" + valorContaFCB2 + "</td>";
tabela = tabela + "<td width='60' class='" + estilo + "' id='FC_porcentagemConta_b2_" + pont.value().cdContaContabilMonitor + naoGravavel + "_td'><input type='hidden' id='FC_porcentagemConta_b2_" + pont.value().cdContaContabilMonitor + naoGravavel + "' name='FC_porcentagemConta_b2_" + pont.value().cdContaContabilMonitor + naoGravavel + "' value='" + pcContaFCB2 + "'>" + pcContaFCB2 + "</td>";
tabela = tabela + "<td width='100' class='" + estilo + "' id='FC_valorConta_b3_" + pont.value().cdContaContabilMonitor + naoGravavel + "_td'><input type='hidden' id='FC_valorConta_b3_" + pont.value().cdContaContabilMonitor + naoGravavel + "' name='FC_valorConta_b3_" + pont.value().cdContaContabilMonitor + naoGravavel + "' value='" + valorContaFCB3 + "'>" + valorContaFCB3 + "</td>";
tabela = tabela + "<td width='60' class='" + estilo + "' id='FC_porcentagemConta_b3_" + pont.value().cdContaContabilMonitor + naoGravavel + "_td'><input type='hidden' id='FC_porcentagemConta_b3_" + pont.value().cdContaContabilMonitor + naoGravavel + "' name='FC_porcentagemConta_b3_" + pont.value().cdContaContabilMonitor + naoGravavel + "' value='" + pcContaFCB3 + "'>" + pcContaFCB3 + "</td>";
tabela = tabela + "<td width='100' class='" + estilo + "' id='FC_valorConta_b4_" + pont.value().cdContaContabilMonitor + naoGravavel + "_td'><input type='hidden' id='FC_valorConta_b4_" + pont.value().cdContaContabilMonitor + naoGravavel + "' name='FC_valorConta_b4_" + pont.value().cdContaContabilMonitor + naoGravavel + "' value='" + valorContaFCB4 + "'>" + valorContaFCB4 + "</td>";
tabela = tabela + "<td width='60' class='" + estilo + "' id='FC_porcentagemConta_b4_" + pont.value().cdContaContabilMonitor + naoGravavel + "_td'><input type='hidden' id='FC_porcentagemConta_b4_" + pont.value().cdContaContabilMonitor + naoGravavel + "' name='FC_porcentagemConta_b4_" + pont.value().cdContaContabilMonitor + naoGravavel + "' value='" + pcContaFCB4 + "'>" + pcContaFCB4 + "</td></tr>";
}
pont=pont.next();
}
tabela = tabela + " </table>"
div.innerHTML=tabela;
}
No Firefox estou obtendo um tempo de execução deste método de 16 milessegundos
Já no IE o mesmo script demora 29425 milessegundos
hehehe... alguma explicação??
melhor, alguma idéia para otimizar para o IE?
OBS: esse contas fluxo caixa pode ser considerado uma lista ligada, não é elea que causa a lentidão, ctzz.
Grato.