HTMLWeb. ASP. Curso práctico. Código del Ejercicio resuelto 5.

resuelto_5.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
  <title>HTMLWeb. Curso Práctico de ASP. Ejercicio resuelto 5</title>
  <style type="text/css">
    td,imput{font-size:12px;font-family:Verdana,Helvetica;}
  </style>
</head>
<body bgcolor="#ffff99">
<script language="VBScript">
  //Declaramos las variables de la página
  Dim numero, numeroAnt, iva, ivaAnt, subtotal, depaso, total
  Dim longnumero1, formato1, reverso, ciclos, resto1, pasos()
  Dim i, previo(), resultado, miTemp1, miTemp2, resto2, retorno
  //Función principal de cálculo
  Function calcula()
    //Recogemos los datos de las cajas del formulario
    numeroAnt = document.forms.ejemplo.cantidad.value
    ivaAnt = document.forms.ejemplo.iva.value
    miTemp1=IsNumeric(numeroAnt)
    miTemp2=IsNumeric(ivaAnt)
    //Comprobamos que los datos introducidos son numéricos
    If (miTemp1=false OR miTemp2=false OR numeroAnt="" OR ivaAnt="") Then
      MsgBox "Debes introducir valores numéricos correctos. Prueba de nuevo"
    Else
      //Quitamos espacios en blanco de los datos
      numero = Trim(Replace(numeroAnt, " ", ""))
      iva = Trim(Replace(ivaAnt, " ", ""))
      //Calculamos el resultado
      subtotal = (numero*iva)/100
      //Formateamos el resultado
      total = FormatNumber(subtotal, 2, -1, 0, 0)
      formato1 = Replace(total, ".", ",")
      depaso = Split(formato1, ",")
      //Parte entera del resultado
      reverso=StrReverse(depaso(0))
      longnumero1=Len(reverso)
      //Calculamos los grupos de 3 dígitos de la parte entera y lo que queda suelto
      ciclos=Fix(longnumero1/3)
      resto1=longnumero1 Mod 3
      Redim pasos(ciclos)
      Redim previo(ciclos)
      i=1
      //Obtenemos el orden de los grupos y les damos la vuelta
      For n=1 To ciclos
        pasos(n) =  Mid( reverso, i, 3)
        i=i+3
        previo(ciclos-n+1)=StrReverse(pasos(n))
      Next
      //Parte decimal del resultado
      resto2=Left(depaso(0),resto1)
      //Si no hay parte entera suelta
      If resto2="" Then
        retorno = (Mid(Join(previo, "."),2)) & "," & depaso(1) & " €"
      //Si la hay
      Else
        retorno=resto2 & Join(previo, ".") & "," & depaso(1) & " €"
      End If
      //Mandamos el resultado a la caja del formulario
      document.forms.ejemplo.resultado.value=retorno
    End If
  End Function
</script>
<form name="ejemplo">
<table cellpadding="0" cellspacing="0" border="0" align="center">
  <tr>
    <td width="150">Introduce una catidad:</td>
    <td><input type="text" name="cantidad" size="15"></td>
  </tr>
  <tr>
    <td>Introduce el IVA:</td>
    <td><input type="text" name="iva" size="15"></td>
  </tr>
  <tr>
    <td colspan="2" height="15">&nbsp;</td>
  </tr>
  <tr>
    <td width="150">El resultado es:</td>
    <td><input type="text" name="resultado" size="15" readonly></td>
  </tr>
  <tr>
    <td colspan="2" height="15">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="button" value="calcular" onclick="calcula()"></td>
  </tr>
</table>
</form>
</body>
</html>