Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Experts!
Tô quebrando a cabeça desde cedo com esse negócio, já fucei tudo o q pudia pra encontrar a solução mas não consegui.
Tá acontecendo o seguinte:
Eu tenho uma página pra inserir dados num banco MySql. Nesta página os campos do form são preenchidos por um while, em função do numero da página q a pessoa quer registrar (é um relatório eletrônico...)
Cada linha da tabela é um registro da "peça". Essa peça tem uma medida especificada, uma tolerancia superior e uma inferior. Depois essa peça tem um valor encontrado, nesse caso, o menor valor e o maior.
Sendo assim, eu quero fazer o calculo automatico do desvio. No desvio inferior, ele pega o valor especificado, subtrai a tolerancia inferior, e depois esse valor é subtraido do menor vaslor encontrado. Pro desvio superior é a mesma coisa só q ao contrario... (parece complicado, mas funciona...)
Consegui gerar tudo, inclusive o JS da soma dos campos, o q acontece é q o JS tá dando um resultado errado quando eu uso casas decimais (separadas por ponto). Por exemplo, se eu digito 2.33 no especificado, quando eu digito 0.1 na tolerancia inferior e 2.29 no menor valor encontrado, o resultado dá 0.06000000000000005.
Não consegui por nada do mundo tirar isso! Tentei colocar Number(), Parsefloat(), new Number(), e trocentas coisas q achei por aí..
O q pode estar acontecendo???
Obrigado desde já!
Segue meu codigo:
<?
include ("config_sistema.php");
$pagina = $_POST['nova_pagina_rai'];
$num_rai = $_POST['num_rai'];
$pag_calc = $pagina;
$consulta = mysql_query("SELECT * FROM registro WHERE num_rai = '$num_rai'");
$linhas = mysql_fetch_object($consulta);
$id_registro = $linhas->ID;
$id_prod_consulta = $linhas->codigo;
$consulta2 = mysql_query("SELECT * FROM produto WHERE ID = '$id_prod_consulta'");
?><html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<?
switch($pag_calc){
case "1":
$i = 1;
break;
case "2":
$i = 31;
break;
case "3":
$i = 61;
break;
case "4":
$i = 91;
break;
case "5":
$i = 121;
break;
}
?>
<script language="javascript" type="text/javascript">
<?
while($i<=30*$pag_calc){
?>
function calcula_<? echo $i; ?>() var espec_<? echo $i; ?> = new Number(document.getElementById("espec_item_<? echo $i; ?>").value); //campo encontrado
var tol_inf_<? echo $i; ?> = new Number(document.getElementById("tol_inf_item_<? echo $i; ?>").value); //campo tole inferior
var tol_sup_<? echo $i; ?> = new Number(document.getElementById("tol_sup_item_<? echo $i; ?>").value); //campo tole superior
var e_sup_<? echo $i; ?> = new Number(document.getElementById("e_sup_item_<? echo $i; ?>").value); //campo encontrado inferior
var e_inf_<? echo $i; ?> = new Number(document.getElementById("e_inf_item_<? echo $i; ?>").value); //campo encontrado superior
var primeira_soma_<? echo $i; ?> = espec_<? echo $i; ?> - tol_inf_<? echo $i; ?>;
var segunda_soma_<? echo $i; ?> = espec_<? echo $i; ?> + parseFloat(tol_sup_<? echo $i; ?>);
//campo que vai conter o resultado
document.getElementById("desvio_sup_item_<? echo $i; ?>").value = parseFloat(segunda_soma_<? echo $i; ?>) - e_sup_<? echo $i; ?>;
document.getElementById("desvio_inf_item_<? echo $i; ?>").value = e_inf_<? echo $i; ?> - primeira_soma_<? echo $i; ?>;
}$i++;
}
?>
</script>
</head>
<body>$linhas2 = mysql_fetch_object($consulta2);
?>
<table width="80%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="4%" height="25"> </td>
<td colspan="6">Produto: <? echo $linhas2->produto; ?></td>
<td colspan="4">Código: <? echo $linhas2->codigo; ?></td>
</tr>
<tr>
<td height="25"> </td>
<td colspan="6">Fornecedor: <? echo $linhas->fornecedor; ?></td>
<td colspan="4">Quantidade: <? echo $linhas->quantidade; ?></td>
</tr>
<tr>
<td> </td>
<td width="20%">Tipo: <?
if($linhas->tipo == "novo_produto"){
echo "Novo Produto";
} else {
echo "Alteração de Produto";
}
?>
</td>
<td width="20%"> </td>
<td width="3%"> </td>
<td width="3%"> </td>
<td width="3%"> </td>
<td width="3%"> </td>
<td width="17%"> </td>
<td width="4%"> </td>
<td width="4%"> </td>
<td width="19%"> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td width="3%"> </td>
<td width="3%"> </td>
<td width="3%"> </td>
<td width="3%"> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>Status: <?
if($linhas->status == ""){
echo "Status ainda não definido";
} else {
echo $linhas->status;
}
?></td>
<td> </td>
<td colspan="5"> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td width="3%"> </td>
<td width="3%"> </td>
<td width="3%"> </td>
<td width="3%"> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
<table border="1" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="7%" rowspan="2" align="center">Item</td>
<td width="18%" height="18" rowspan="2" align="center">Especificado</td>
<td width="18%" rowspan="2" align="center">Encontrado</td>
<td colspan="4" align="center">caract. especiais </td>
<td width="18%" rowspan="2" align="center">Desvio</td>
<td width="5%" rowspan="2" align="center">A/C </td>
<td width="5%" rowspan="2" align="center">Rej</td>
<td width="23%" rowspan="2" align="center">Corrigir</td>
</tr>
<tr>
<td width="3%" align="center">S</td>
<td width="3%" align="center">C</td>
<td width="3%" align="center">M</td>
<td width="3%" align="center">m</td>
</tr>
<?
switch($pagina){
case "1":
$i = 1;
break;
case "2":
$i = 31;
break;
case "3":
$i = 61;
break;
case "4":
$i = 91;
break;
case "5":
$i = 121;
break;
}
while($i<=30*$pagina){
?>
<form name="inserir_dados_rai" action="grava_dados_rai.php" method="post" />
<tr>
<td align="center"><? echo $i; ?></td>
<td height="18" align="center"><input type="text" size="10" id="espec_item_<? echo $i; ?>" name="espec_item_<? echo $i; ?>" onchange="java script:calcula_<? echo $i; ?>()"/><input type="text" size="3" id="tol_inf_item_<? echo $i; ?>" name="tol_inf_item_<? echo $i; ?>" onchange="java script:calcula_<? echo $i; ?>()"/><input type="text" size="3" id="tol_sup_item_<? echo $i; ?>" name="tol_sup_item_<? echo $i; ?>" onchange="java script:calcula_<? echo $i; ?>()"/></td>
<td align="center"><input type="text" size="10" id="e_inf_item_<? echo $i; ?>" name="e_inf_item_<? echo $i; ?>" onchange="java script:calcula_<? echo $i; ?>()"/><input type="text" size="10" name="e_sup_item_<? echo $i; ?>" onchange="java script:calcula_<? echo $i; ?>()"/></td>
<td align="center"><input type="radio" name="caract_especial_item_<? echo $i; ?>" value="seguranca"/></td>
<td align="center"><input type="radio" name="caract_especial_item_<? echo $i; ?>" value="critica"/></td>
<td align="center"><input type="radio" name="caract_especial_item_<? echo $i; ?>" value="maior"/></td>
<td align="center"><input type="radio" name="caract_especial_item_<? echo $i; ?>" value="menor"/></td>
<td align="center"><input type="text" id="desvio_inf_item_<? echo $i; ?>" name="desvio_inf_item_<? echo $i; ?>" size="10" onfocus="java script:calcula_<? echo $i; ?>()" />
<input type="text" id="desvio_sup_item_<? echo $i; ?>" name="desvio_sup_item_<? echo $i; ?>" size="10" /></td>
<td align="center"><input type="checkbox" name="ac_item_<? echo $i; ?>" value="ac" /></td>
<td align="center"><input type="checkbox" name="rej_item_<? echo $i; ?>" value="rej" /></td>
<td align="center"> </td>
</tr>
<?
$i++;
}
?>
</table>
<input type="hidden" name="pagina" value="<? echo $pagina; ?>" />
<input type="hidden" name="num_rai" value="<? echo $num_rai; ?>" />
<input type="hidden" name="id_registro" value="<? echo $id_registro; ?>" />
<input type="submit" value="Registrar" /> <input type="reset" value="Limpar Dados" />
</form>
</body>
</html>Carregando comentários...