Home - ASP - Capítulo 2 - 1 - 2 - 3 - 4 - 5 - 6
Curso práctico de ASP (II). Subprogramas.
por Luciano Moreno, webmater de HTMLWeb.
La función MsgBox
Vamos a introducir en este punto una función propia del lenguaje VBScript, muy útil en todos aquellos desarrollos de código en cliente y que nos va a servir para construir algunos ejemplos. Como función que es, devuelve siempre un resultado, que podemos recoger y operar con él.
Nos estamos refiriendo a la función MsgBox, que puede lanzar distintos tipos de cuadros de confirmación, mensajes o preguntas al usuario, cada uno de los cuales posee diferentes botones que pueden ser pulsados por el usuario.
La sintaxis más simple de la función MsgBox es del tipo:
MsgBox ("mensaje")
Que se limita a lanzar una ventana del sistema, análoga a la ventana simple creada con el método alert de JavaScript, conteniendo el mensaje especificado y un botón "Aceptar", por lo que es un caso especial de función que no retorna valor alguno.
El valor mensaje no tiene porqué ser un literal (valor fijo), sino que puede ser pasado a la función como argumento.
Ejemplo:
<script language="VBScript"
type="text/vbscript">
Function
MsgBox1(mensaje)
MsgBox (mensaje)
End Function
</script>
...
<a href="#"
onclick="MsgBox1('Ejemplo de MsgBox simple')">Ejemplo</a>
Que nos lanza la siguiente ventana del sistema:

Y cuyo resultado práctico tenéis en esta ventana.
Como observáis, la ventana anterior no tiene título alguno, sólo el mensaje "VBScript". Caso de querer que aparezca con título, la sintaxis a usar será la general de la función MsgBox, que es:
Call MsgBox ("mensaje", tipo_ventana, "titulo_ventana")
Donde:
En el caso concreto de una ventana simple con título, el código necesario será:
Call MsgBox ("mensaje", VBOKONLY, "titulo_ventana")
Donde vemos que hemos llamado a la función MsgBox como si fuera un procedimiento, usando la palabra reservada Call. El valor VBOKONLY (Ventana con OK sólo) va a especificar el tipo de ventana del sistema simple.
Los valores de mensaje y titulo no tienen porqué ser literales, pudiendo ser pasados como argumentos.
Ejemplo:
<script language="VBScript"
type="text/vbscript">
Function MsgBox2(mensaje, tipo,
titulo)
Call MsgBox (mensaje, tipo, titulo)
End
Function
</script>
...
<a href="#" onclick="MsgBox2'Ejemplo de
MsgBox con título', VBOKONLY, 'MsgBox VBOKONLY'">Ejemplo</a>
Que nos lanza la siguiente ventana del sistema:

Y cuyo resultado práctico tenéis en esta ventana.
En el lenguaje JavaScript existe un tipo especial de ventana del sistema que permite lanzar un mensaje y presentar al usuario dos botones diferentes, uno con el texto "Aceptar” y otro con el texto "Cancelar". Nos estamos refiriendo a las ventanas creadas con el método Confirm.
VBScript permite lanzar también ventanas de este tipo por medio de la función MsgBox, con tan sólo indicar que sea del tipo VBOKCANCEL (Ventana con OK y Cancel). Pero, además, tendremos ahora que recoger el valor del botón pulsado por el usuario en una variable, que valdrá 1 en caso de haber pulsado "Aceptar” y 2 en caso de "Cancelar".
En el siguiente ejemplo vamos a lanzar una ventana que haga al usuario una pregunta, recogiendo en una variable el valor del botón pulsado, lanzando otra ventana luego que muestre el valor almacenado en la variable:
<script language="VBScript"
type="text/vbscript">
Dim boton
Function
MsgBox3()
boton = MsgBox ("¿Estás aprendiendo con el
curso?", VBOKCANCEL, "Pregunta al estudiante")
Call MsgBox
("El resultado almacenado en la variable boton es " & boton, VBOKONLY,
"Resultado de la pregunta")
End
Function
</script>
...
<a href="#"
onclick="MsgBox3()">Ejemplo</a>
La ventana de pregunta resultante tiene el aspecto siguiente:

Y el ejemplo completo lo tenéis funcionando en esta ventana.
Otro tipo de ventana posible es aquella que presenta al usuarios un mensaje y tres botones, "Si", "No" y "Cancelar". Es el tipo de ventana VBYESNOCANCEL, que puede devolver para la variable de recogida los valores 6 (Si), 7 (No) y 2 (Cancelar).
Ejemplo:
<script language="VBScript"
type="text/vbscript">
Dim boton
Function
MsgBox4()
boton = MsgBox ("¿Tienes más de 25 años?",
VBYESNOCANCEL, "Pregunta sobre tu edad")
Call MsgBox ("El
resultado almacenado en la variable boton es " & boton, VBOKONLY, "Resultado
de la pregunta")
End Function
</script>
...
<a
href="#" onclick="MsgBox4()">Ejemplo</a>
La ventana conseguida es del tipo siguiente:

Y el ejemplo funcionando está en esta ventana.
Otros tipos de ventanas posibles son:
Siendo los valores retornados por la pulsación de los diferentes botones los de la siguiente tabla:
| botón | valor |
| Aceptar | 1 |
| Cancelar | 2 |
| Anular | 3 |
| Reintentar | 4 |
| Ignorar | 5 |
| Sí | 6 |
| No | 7 |
NOTA: Este tema forma parte del curso "Curso Práctico de Programación en ASP 3.0", cuyos temarios han sido desarrollados exclusivamente por HTMLWeb, que también se encarga de las tutorías del mismo. Un curso práctico, de calidad y económico, con un 10% de descuento para los usuarios de HTMLWeb.