Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Procurei aqui e no google e não encontrei.
Tenho que fazer uma coisa mas não faço idéia de como fazer.
Senho uma função chamada "Soma" que atualiza linhas de um grid em ASP CLASSIC.
Porem tenho que ao clicar em um botão atualizar essa função atualize todas as linhas do grid.
Estou chamando assim:
onclick="soma(1);soma(2);soma(3);"
e por ai vai.
porem ele só me atualiza a linha 1 que é a primeira vez que lista o soma no onclick.
Alguem sabe oque fazer nesse caso para atualizar todas as linhas?
Agradeço quem puder me ajudar nessa dúvida desde já.
Ja fiz Bruno,
Porem por ser grid ele só atualiza linha a linha.
Preciso saber se é possível chamar a função no onclck para todas as linhas.
E se sim como poderia ser feito isso.
Da forma que você fez está correta a chamada do onclick.
Porém é preciso que eu veja como você implementou essa função e o HTML correspondente, se não fica impossível sugerir algo mais aprofundado.
Mostre o código. ^_^
Para economizar "tempo", tenta algo assim:
element.onclick = function(){
for(var i = 1; i < 10; i++){
soma(x);
}
};
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gifNão entendi aonde coloco sua função.
segue o código.
function somar(el)
{
var objItem = document.getElementById("sel"+el);
var Cliente = document.getElementById("cliente");
var objPedido = document.getElementById("pedido");
var objVPedido = document.getElementById("valor_pedido");
var objCreditoSoma = document.getElementById("valor_oculto");
var objQtde = document.getElementById("qtde"+el);
var objVunit = document.getElementById("vUnit"+el);
var objdescricao = document.getElementById("desc"+el);
var objCliente = document.getElementById("vCliente"+el);
var objVtot = document.getElementById("vTot"+el);
var objPrazo = document.getElementById("prazo"+el);
var SubTot = document.getElementById("subTotal"+el);
var objUfICMS = document.getElementById("uficms"+el);
var objICMS = document.getElementById("icms"+el);
var objFrete = document.getElementById("frete"+el);
var objDesc = document.getElementById("decapagem"+el);
var objTotal = document.getElementById("total"+el);
var objCredito = document.getElementById("credito"+el);
var objMargem = document.getElementById("margem"+el);
var calcCredito3 = 0;
for (iC = 1; iC<=totalCampos; iC++) {
calcCredito3 += parseFloat(document.getElementById("qtde"+iC).value);
}
<%Set Obj_Conta_Corrente_RS = Conn.Execute("SELECT * FROM ju_te_cc where codigo_usuario="&session("id_usuario")&"")%>
<%saldo_total = Obj_Conta_Corrente_RS("Credito_Total")%>
<%Set Obj_Produtos_RS = Conn.Execute("SELECT * from ju_te_produtos")%>
<%Set Obj_Variaveis_RS = Conn.Execute("SELECT * from ju_te_variaveis")%>
<%
Do while not Obj_Produtos_RS.eof
%>
if (objItem.value ==<%=Obj_Produtos_RS("codigo_produto")%>){
if ((calcCredito3 >= parseFloat(1)) && (calcCredito3 <= parseFloat(<%=Obj_Variaveis_RS("Faixa_A")%>))){
parseFloat(objVunit.value).toFixed(2);
objVunit.value = parseFloat("<%=Obj_Produtos_RS("valor")%>");
var valor_credito = parseFloat(<%=Obj_Produtos_RS("Faixa_A")%>);
}else if ((calcCredito3 >= parseFloat(<%=Obj_Variaveis_RS("Faixa_A")%>)) && (calcCredito3 < parseFloat(<%=Obj_Variaveis_RS("Faixa_B")%>))){
parseFloat(objVunit.value).toFixed(2);
objVunit.value = parseFloat("<%=Obj_Produtos_RS("valor")%>") - parseFloat(<%=Obj_Produtos_RS("Faixa_A")%>);
var valor_credito = parseFloat(<%=Obj_Produtos_RS("Faixa_A")%>);
}else if ((calcCredito3 >= parseFloat(<%=Obj_Variaveis_RS("Faixa_B")%>)) && (calcCredito3 <= parseFloat(<%=Obj_Variaveis_RS("Faixa_C")%>))){
parseFloat(objVunit.value).toFixed(2);
objVunit.value = parseFloat("<%=Obj_Produtos_RS("valor")%>") - parseFloat(<%=Obj_Produtos_RS("Faixa_B")%>);
var valor_credito = parseFloat(<%=Obj_Produtos_RS("Faixa_B")%>);
}else if (calcCredito3 > parseFloat(<%=Obj_Variaveis_RS("Faixa_C")%>)){
parseFloat(objVunit.value).toFixed(2);
objVunit.value = parseFloat("<%=Obj_Produtos_RS("valor")%>") - parseFloat(<%=Obj_Produtos_RS("Faixa_C")%>);
var valor_credito = parseFloat(<%=Obj_Produtos_RS("Faixa_C")%>);
}
if (objVunit.value == ""){
parseFloat(objVunit.value).toFixed(2);
objVunit.value = "0"
objVtot.value = "0";
}
if (objVunit.value == "0"){
objFrete.value = "50";
<%if Obj_Produtos_RS("flg_corte") = 1 then%>
objDesc.value = "0";
<%else%>
objDesc.value = "35";
<%end if%>
objPrazo.value = "45";
}
}
// Formula A início //////////////////////////////////////////////////////////////////
if (objItem.value != "") {
/*Retira do valor de tabela o frete e o processo (decapagem + corte) e coloca os juros e o imposto(ICMS). todos esses valores são recuperados da tabela de variavels*/
var total = ((parseFloat(objVunit.value))+(parseFloat(objFrete.value) - parseFloat(<%=Obj_Variaveis_RS("Frete")%>)));
<%if Obj_Produtos_RS("flg_corte") = 1 then%>
total = parseFloat(total);
<%else%>
total = ((parseFloat(total))+(parseFloat(objDesc.value) - parseFloat(<%=Obj_Variaveis_RS("Corte")%>)));
<%end if%>
dias = (parseFloat(objPrazo.value) - parseFloat(<%=Obj_Variaveis_RS("Prazo")%>))
juros = (<%=Obj_Variaveis_RS("juros")%>/100)
calculo_juros = (dias/30 * juros)
total = (total * (1+(calculo_juros)))
calculo_icms_divisao = 1-(parseFloat(objICMS.value)/100)
calculo_icms_divisao = calculo_icms_divisao
icms = 0.82/calculo_icms_divisao
total = total*parseFloat(icms)
/*Exibe o valor calculado em crédito*/
total = ((Math.round(total/10))*10);
objVtot.value = total
// Formula A FIM //////////////////////////////////////////////////////////////////
// Formula B início //////////////////////////////////////////////////////////////////
credito_prod = (parseFloat(objCliente.value) - (parseFloat(objFrete.value) + parseFloat(objDesc.value)));
juros_credito = (1-(parseFloat(objPrazo.value)/30));
icms_credito = (1-(parseFloat(objICMS.value)/100));
icms_credito = icms_credito.toFixed(2);
credito_prod = ((credito_prod * juros_credito) * icms_credito);
juros_tabela = (parseFloat(objPrazo.value) / 30 * <%=Obj_Variaveis_RS("juros")%>/100);
resultado = (((parseFloat(objCliente.value) - (parseFloat(objFrete.value) + parseFloat(objDesc.value))) * (1 - ((parseFloat(objPrazo.value) * (parseFloat(<%=Obj_Variaveis_RS("juros")%>) / 100)) / 30))) * (1 - (parseFloat(objICMS.value) / 100))) - ((parseFloat(objVunit.value) - (parseFloat(<%=Obj_Variaveis_RS("Frete")%>) + parseFloat(<%=Obj_Variaveis_RS("Corte")%>))) * (1 - ((parseFloat(<%=Obj_Variaveis_RS("Prazo")%>) * (<%=Obj_Variaveis_RS("juros")%> / 100)) / 30)) * 0.82);
resultado2 = ((((parseFloat(objCliente.value) - (parseFloat(objFrete.value) + parseFloat(objDesc.value))) * (1 - ((parseFloat(objPrazo.value) * (parseFloat(<%=Obj_Variaveis_RS("juros")%>) / 100)) / 30))) * (1 - (parseFloat(objICMS.value) / 100))) / (((parseFloat(objVunit.value) - (parseFloat(<%=Obj_Variaveis_RS("Frete")%>) + parseFloat(<%=Obj_Variaveis_RS("Corte")%>))) * (1 - ((parseFloat(<%=Obj_Variaveis_RS("Prazo")%>) * (<%=Obj_Variaveis_RS("juros")%> / 100)) / 30)) * 0.82))-1)*100;
resultado = resultado * objQtde.value;
objCredito.value = resultado.toFixed(2);
objMargem.value = resultado2.toFixed(2);
}else{
objVunit.value = "0.00";
objVtot.value = "0.00";
}
// Formula B Fim ///////////////////////////////////////////////////////////////////
<%Obj_Produtos_RS.Movenext
loop%>
var valor3=0
var calcCredito = 0;
var calcCredito2 = 0;
for (iC = 1; iC<=totalCampos; iC++) {
calcCredito += parseFloat(document.getElementById("credito"+iC).value);
calcCredito2 += parseFloat(document.getElementById("margem"+iC).value);
document.negociacao.cred.value = calcCredito.toFixed(2);
document.getElementById("credito_soma_final").value = calcCredito.toFixed(2);
//var valor1 = parseInt(rodape_vendedores.document.transferencia.saldo_vendedor.value)
//var valor2 = parseInt(document.negociacao.credito.value)
//valor3 = valor2 + (valor1)
if (document.negociacao.credito.value < 0 || document.negociacao.credito.value >= 0)
{
valor1=(parseFloat(rodape_vendedores.document.transferencia.saldo_vendedor.value));
valor2=(parseFloat(document.negociacao.credito.value));
valor3 = (parseFloat(<%=saldo_total%>) + (parseFloat(calcCredito)))
//document.getElementById("valor_oculto").value = valor3.toFixed(2)
rodape_vendedores.document.transferencia.saldo_vendedor.value = valor3.toFixed(2);
document.negociacao.credito.value = calcCredito.toFixed(2)
}
if (calcCredito <= 0 && rodape_vendedores.document.transferencia.saldo_vendedor.value >=0)
{
document.getElementById("fechar_pedido").disabled = false
}else if (document.negociacao.credito.value >= 0)
{
document.negociacao.texto.value = "Aprovado"
document.negociacao.texto.style.color="green";
document.getElementById("fechar_pedido").disabled = false
}
else
{
document.negociacao.texto.value = "Negado";
document.negociacao.texto.style.color="#F00F00";
document.getElementById("fechar_pedido").disabled = true
}
if (calcCredito2 >= -5)
{
document.negociacao.texto.value = "Aprovado"
document.negociacao.texto.style.color="green";
document.getElementById("fechar_pedido").disabled = false
}
else
{
document.negociacao.texto.value = "Negado";
document.negociacao.texto.style.color="#F00F00";if (rodape_vendedores.document.transferencia.saldo_vendedor.value < 0)
{
document.negociacao.credito.value = calcCredito.toFixed(2)
}else{
document.negociacao.credito.value = calcCredito.toFixed(2)
}
if (calcCredito <= 0 && rodape_vendedores.document.transferencia.saldo_vendedor.value >=0)
{
document.getElementById("fechar_pedido").disabled = false
}else if (calcCredito > 0 && calcCredito2 > parseFloat(-5.00))
{
document.negociacao.texto.value = "Aprovado"
document.negociacao.texto.style.color="green";
document.getElementById("fechar_pedido").disabled = false
}
else
{
document.negociacao.texto.value = "Negado";
document.negociacao.texto.style.color="#F00F00";}
SubTot.value = calcSubTotal.toFixed(2);
calcTotal = (calcSubTotal);
objTotal.value = calcTotal.toFixed(2);
objVunit.value = calcSubTotal.toFixed(2);
}
</script>
</head>
<body>
<form name="form1" action="corpo_vendedores2.asp" method="post">
<input type="hidden" name="cliente" id="cliente" value="" />
<input type="hidden" name="pedido" id="pedido" value="" />
<input type="hidden" name="credito_soma_final" id="credito_soma_final" value="" />
<script type="text/javascript">
var linha2 = "";
linha2 += "<table width='980' border='0'>";
linha2 += "<tr>";
linha2 += "<td width='80px' class='texto_preto_10' align=left>Produto</td>";
linha2 += "<td width='260px' class='texto_preto_10' align=left>Descrição</td>";
linha2 += "<td width='40px' class='texto_preto_10' align=left>Qtde</td>";
linha2 += "<td width='40px' align=left class='texto_preto_10'>UF</td>";
linha2 += "<td width='40px' align=left class='texto_preto_10'>ICMS</td>";
linha2 += "<td width='50px' align=left class='texto_preto_10'>Prazo</td>";
linha2 += "<td width='45px' align=left class='texto_preto_10'>Frete</td>";
linha2 += "<td width='65px' align=left class='texto_preto_10'>Corte + Dec</td>";
linha2 += "<td width='100px' align=left class='texto_preto_10'>Preço de Tabela</td>";
linha2 += "<td width='95px' align=left class='texto_preto_10'>Preço do Cliente</td>";
linha2 += "<td width='75px' align=left class='texto_preto_10'>Crédito Item</td>";
linha2 += "<td width='75px' align=left class='texto_preto_10'>Margem</td>";
linha2 += "<td width='35px'></td>";
linha2 += "</tr>";
linha2 += "</table>";
document.write (linha2);
</script>
<script type="text/javascript">
//Escrevendo o código-fonte HTML e ocultando os campos criados:
for (iLoop = 1; iLoop <= totalCampos; iLoop++) {
var linha = "";
if (iLoop <=1) {
visualizar = "";
} else {
visualizar = "none";
}
<%Set Obj_Variaveis_RS = Conn.Execute("SELECT * from ju_te_variaveis")%>
<%Set Obj_Aliquotas_RS = Conn.Execute("SELECT * from ju_te_aliquotas")%>
linha += "<table width='980' border='0' align=left>";
linha += "<tr id='linha"+iLoop+"' style='display:"+visualizar+"'>";
linha += "<td width='80px'>";
linha += "<select id='sel"+iLoop+"' name='sel"+iLoop+"' onchange='carregar("+iLoop+");'>";
<%Set Obj_Produtos_RS = Conn.Execute("SELECT * from ju_te_produtos order by produto")%>
linha += "<option checked value=''>---</option>";
<%
Do while not Obj_Produtos_RS.eof
%>
linha += "<option value='<%=Obj_Produtos_RS("Codigo_Produto")%>'><%=Obj_Produtos_RS("Produto")%></option>";
<%Obj_Produtos_RS.Movenext
loop%>
linha += "</select>";
linha += "</td>";
linha += "<td width='260px' align=left><input type='text' id='desc"+iLoop+"' onchange='somar("+iLoop+")' name='desc"+iLoop+"' onkeyup='somar("+iLoop+");' size='30' value=''>";
linha += "</td>";
linha += "<td width='40px' align=left><input type='text' id='qtde"+iLoop+"' name='qtde"+iLoop+"' onfocus='somar("+iLoop+");' onkeyup='somar("+iLoop+");' size='1' value='0'>";
linha += "</td>";
linha += "<td width='80px'>";
linha += "<select id='uficms"+iLoop+"' name='uficms"+iLoop+"' onchange='carrega_aliquota("+iLoop+")'>";
<%Set Obj_Produtos_RS = Conn.Execute("SELECT * from ju_te_aliquotas order by uf")%>
<%
Do while not Obj_Produtos_RS.eof
%>
linha += "<option value='<%=Obj_Produtos_RS("ID_ALIQUOTA")%>'><%=Obj_Produtos_RS("uf")%></option>";
<%Obj_Produtos_RS.Movenext
loop%>
linha += "</select>";
linha += "</td>";
linha += "<td width='80px'>";
linha += "<select id='icms"+iLoop+"' name='icms"+iLoop+"' onchange='somar("+iLoop+")'>";
<%Set Obj_Produtos_RS = Conn.Execute("SELECT distinct(aliquota) from ju_te_aliquotas order by aliquota")%>
<%
Do while not Obj_Produtos_RS.eof
%>
linha += "<option value='<%=Obj_Produtos_RS("aliquota")%>'><%=Obj_Produtos_RS("aliquota")%></option>";
<%Obj_Produtos_RS.Movenext
loop%>
linha += "</select>";
linha += "</td>";
linha += "<td width='50px' align='left'><input type='text' size='2' name='prazo"+iLoop+"' onchange='somar("+iLoop+")' id='prazo"+iLoop+"' value='' onkeyup='somar("+iLoop+")'></td>";
linha += "<td width='45px' align=left><input type='text' size='2' name='frete"+iLoop+"' onchange='somar("+iLoop+")' id='frete"+iLoop+"' value='' onkeyup='somar("+iLoop+")'></td>";
linha += "<td width='65px' align=left><input type='text' size='5' name='decapagem"+iLoop+"' onchange='somar("+iLoop+")' id='decapagem"+iLoop+"' value='' onkeyup='somar("+iLoop+")'></td>";
linha += "<td width='100px' align=left><input type='text' size='9' id='vTot"+iLoop+"' name='vTot"+iLoop+"' readonly='readonly' value='0'>";
linha += "</td>";
linha += "<td width='95px' align=left><input style='background-color:#EEEB66' type='text' size='9' id='vCliente"+iLoop+"' onchange='somar("+iLoop+")' name='vCliente"+iLoop+"' onkeyup='somar("+iLoop+")' onchange='somar("+iLoop+")' value='0'>";
linha += "</td>";
linha += "<td width='75px' align=left><input type='text' size='6' id='credito"+iLoop+"' onchange='somar("+iLoop+")' name='credito"+iLoop+"' value='0.00'>";
linha += "</td>";
linha += "<td width='75px' align=left><input type='text' size='6' id='margem"+iLoop+"' onchange='somar("+iLoop+")' name='margem"+iLoop+"' value='0.00'>";
linha += "</td>";
linha += "<td width='35px'><input type='button' value='A' onclick='somar("+iLoop+")'></td>";
linha += "</tr>";
linha += "<input type='hidden' size='7' id='vUnit"+iLoop+"' name='vUnit"+iLoop+"' value='0'>";
linha += "<input type='hidden' name='valoroculto"+iLoop+"' id='valoroculto"+iLoop+"' value="+totalCampos+">";
linha += "</table>";
document.write (linha);
}
function RemoverCampos(id) {
//Criando ponteiro para hidden1:
var hidden1 = document.getElementById("linha"+id);
//Pegar o valor do campo que será excluído:
var campoValor = document.getElementById("linha"+id).value;
//Se o campo não tiver nenhum valor, atribuir a string: vazio:
if (campoValor == "") {
campoValor = "vazio";
}
{
document.getElementById("linha"+id).style.display = "none"; iCount--;
//Removendo o valor de hidden1:
if (hidden1.value.indexOf(",linha"+id) != -1) {
hidden1.value = hidden1.value.replace(",linha"+id,"");
objQtde.value='0'
}else if (hidden1.value.indexOf("linha"+id+",") == 0) {
hidden1.value = hidden1.value.replace("linha"+id+",","");
}else{
hidden1.value = "";
}
}
}
AddCampos()
</script>
<br><br>
<input type="button" style="background-color:#000000; color:#FFFFFF" value="Adicionar Item ao Pedido" onClick="AddCampos()">
<input type="hidden" name="hidden2" id="hidden2">
<input type="hidden" name="valor_oculto" id="valor_oculto">
<input type="button" style="background-color:#000000; color:#FFFFFF" value="Recarregar" onClick="calculando()">
<input name="fechar_pedido" id="fechar_pedido" onClick="return pedido_novo()" style="background-color:#000000; color:#FFFFFF" type="submit" value="Fechar Negócio"/>
</form>Nossa, cara... Entendi nada do teu código. o.O Muito bagunçado.
Quais parâmetros você quer passar? Em quais eventos? onlick, onchange, onfocus, etc.
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Ta esse monstro pois peguei com ele mais da metade feito já.
Tem que ser no onclick do botão recarregar.
ele tem que atualizar todas as linhas do grid (vai a 30) com o valor correto do banco (caso mude a faixa de preço alterando a quantidade).
Ele tem que reprocessar a função "Somar()" para as 30 linhas.
E ele aqui fazendo só atualiza a primeira quando clico no botao recarregar.
Bem, a única linha de código que eu vi com a função que você quer é essa:
linha += "<td width='35px'><input type='button' value='A' onclick='somar("+iLoop+")'></td>";
Mas aí vai sempre chamar o iLoop que eu não entendi o que ele faz... o.O
Em fim, se quiser chamar a função 30 vezes, faz assim:
linha += "<td width='35px'><input type='button' value='A' onclick='for(var i = 0; i < 30; i++){somar("+iLoop+")}'></td>";
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gifOlha no fim do código, tem um botao "Recarregar"
Não está no Linha ta depois dela la na penultima linha ou antepenultima.
Testei tambem oque voce sugeriu e nao funcionou.
<input type="button" style="background-color:#000000; color:#FFFFFF" value="Recarregar" onclick="calculando()">
Esse aí?
Cara, não entendi mesmo é o seu objetivo final com o código. O que é aquele iLoop? Por que está lá?
A lógica do que eu disse para tentar é essa:
function teste(x){ document.write("O número é: " + x + " <br />"); }
for(var i = 1; i < 10; i++){
teste(i);
}
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif>
<input type="button" style="background-color:#000000; color:#FFFFFF" value="Recarregar" onclick="calculando()">
Esse aí?
Cara, não entendi mesmo é o seu objetivo final com o código. O que é aquele iLoop? Por que está lá?
A lógica do que eu disse para tentar é essa:
function teste(x){ document.write("O número é: " + x + " <br />"); }
for(var i = 1; i < 10; i++){
teste(i);
}
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
O iLoop é apenas um contador que serve para adicionar e registrar novas linhas ao grid.
Oque eu preciso é que agora quando for mudada a quantidade ele altere o valor de preço cliente de todas linhas do grid de acordo com o que vem do banco.
Eu consegui fazer atualizar a linha 1 mas a linha 2 nao atualiza e assim por diante.
Aquele calculando pode esquecer ele. O botão Recarregar pode considerar mas tenho que fazer ao clifcar nele recalcular todas as linhas do grid atravé da função "somar".
Problema resolvido pessoal, podem fechar o tópico.
O Ivan de Brasília me auxiliou pelo MSN e chegamos na solução;
Posta aí a solução. Pode ajudar outras pessoas.
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
A solução foi criar essa função aqui:
function x(){
for (var i = 1; i < iCount; i++)
{
somar( i, 0 );
}
}
e chamar ela no onclick do botão recarregar, dai ele reprocessa a funcao somar para todas as linhas do grid.
Teve que alterar a função somar(), né? Pois inicialmente ela só recebia um parâmetro...
Em fim, foi o que eu falei para fazer, com for, só não estava entendendo o iCount ali. :P
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Na verdade eu só alterei a função somar para passar um parametro qualquer para poder limpar os campos do grid pois senão não precisaria alterar a função.
Não sei.. precisa ver como você implementou isso.
pq não faz uma unica função que some tudo ?