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"> </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"> </td>
</tr>
<tr>
<td> </td>
<td><input
type="button" value="calcular" onclick="calcula()"></td>
</tr>
</table>
</form>
</body>
</html>
Que podemos ver en funcionamiento en esta ventana.
Home - ASP - Curso práctico - Capítulo 5 - 1 - 2 - 3