Mundo Web
manuales - recursos - graficos - programación...

Home - ASP -  Curso práctico - Capítulo 5  - 1 - 2 -  3

Curso práctico de ASP (III)
por Luciano Moreno, del departamento de diseño web de BJS Software.


Ejercicio resuelto.-

Como ejercicio resuelto, vamos a ver un ejemplo de aplicación de casi todas las funciones de números y cadenas que hemos visto hasta ahora. La idea es tener un formulario con dos cajas de entrada, en las que el usuario debe introducir una cantidad y un IVA, y nuestro código tiene que comprobar que los datos son correctos y calcular el impuesto a pagar, formateando el resultado en euros. En ejemplo está realizado en código VBScript puro, para que podáis practicar con él en vuestra máquina, sin necesidad de servidor web.

El código de nuestra página es el siguiente:

<%@ Language="VBScript"%>
<!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>

Que podemos ver en funcionamiento en esta ventana.

 

anterior

Home - ASP -  Curso práctico - Capítulo 5  - 1 - 2 -  3