Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fabiosc80

[Resolvido] Carrer a mesma função várias vezes no Onclick

Recommended Posts

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á.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei.. precisa ver como você implementou isso.

pq não faz uma unica função que some tudo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nã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"; 
document.getElementById("fechar_pedido").disabled = true
}

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"; 
document.getElementById("fechar_pedido").disabled = true
}

			
}

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>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

<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

Compartilhar este post


Link para o post
Compartilhar em outros sites

<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".

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.