Está en la página 1de 74

Creando Sitios de Comercio Electrónico

1
Creando Sitios de Comercio Electrónico

Edición 1.0

Prohibida la reproducción total o parcial


Sin nuestro consentimiento
Derechos de copia reservados
www.LibrosDigitales.NET

2
Creando Sitios de Comercio Electrónico

Presentación del Caso a Desarrollar


Objetivos
En este primer módulo se desarrollaran los siguientes puntos:

ü Presentación del escenario de trabajo.


ü El modelo de la base de datos.
ü Tipos de archivo que compone el Proyecto.
ü Sectorizando
ü Hojas de Estilo
ü Tecnologías disponibles
ü ASP vs. PHP

3
Creando Sitios de Comercio Electrónico

Presentación del escenario de trabajo

Peru Adventure & Trips

Antecedentes
Peru Adventure Trips, es una empresa dedicada a la venta de paquetes turisticos
con cede en la capital. En la actualidad elabora y vende paquetes turisticos en
sociedad con empresas amigas (socios de negocio) en las principales ciudades del
Pais. Sus principales clientes son extranjeros y una minoria nacionales.

Sus contactos en otras ciudades del mundo se encargan de promocionar sus


paquetes turisticos.

Las operaciones de reserva, información y contactos lo realizan de forma


convencioinal usando un telefono.

El dueño de la empresa, don Guino Castillo, conocer de las ventajas del uso de las
tecnologias, decide cambiar a su Gerente General: Edgard Campos y decide
contratar a Cesar Suarez, un joven profesional desarrollador de Sites de Comercio
Electronico, quien a su vez sugiere contratar a una Profesional en Marketing y
Diseño Grafico: Tamara Fernandez.

El dueño le manifiesta, que por la recesion economica del Pais, el presupuesto


destinado a la promocion de los paquetes turisticos, asi como la cuenta por el uso
de telefono se debe reducir. Asi mismo le comenta que las comisiones obtenidas
por los contactos con sus socios en el extranjero es muy reducido y que tiene
intensiones de ser el mismo quien establezca contacto directo con los turistas.
Tamara sugiere cambiar los distintivos de la empresa, plantea elaborar una pagina
en Internet que refleje el espiritu de la empresa, usando el nombre de la empresa
como dominio (www.PeruAdventure.com) y asignar cuentas de correo con dicho
dominio a todos los empleados (Tamara@PeruAdventure.com,
Cesar@PeruAdventure.com), además para aplicar el Marketing directo y el realizar
las campañas de Mailing, señala que se requiere una conexión permanente a
Internet.

4
Creando Sitios de Comercio Electrónico

El presupuesto
Cesar, indica que puede iniciarse comprando el dominio PeruAdventure.com y
creando el Sitio en Internet y publicando en ella una Pagina Estatica presencial,
mientras se elabore la solucion final.

La inversion para la solucion en la parte tecnologica, asciende:

Acceso a Internet, 128 Kb de ancho de banda, las 24 horas del dia US$ 65 mes
Compra de Dominio en GrapPeru.com, incluye mantenimiento US$ 20 año
Servicio en Hosting en GrapPeru.com, 60 Mb US$ 180 año
soporte para ASP y Access o SQL Server
25 cuentas de correo POP3

La inversion por todo el año asciente a 980 dolares, lo que equivale a la mitad de
uno de los recibos de telefono que suele llegar a la empresa (llamadas
internacionales).

Cesar, propone que se debe crear una pagina que no solamente muestre una lista
de paquetes turisticos, sino un lugar inteligente que permita discretamente
almacenar el perfil de cada visitante y asi preparar paquetes turisticos
personalizados. Por ejemplo a muchos les agrada realizar canotaje, parapente, es
decir les agrada la aventura, otros prefieren algo mas conservador como visitar los
diversos centros arqueologicos y actividades culturales como el arte, la musica y las
danzas autoctonas. EN cambio otros buscan la parte mistica. Cesar dice que tratar
a todos los visitantes de la misma forma no seria conveniente, debemos buscar
tratar a cada visitante de una forma muy personalizada y tener para ellos paquetes
que vayan de acuerdo a sus gustos y preferencias (el pilar del CRM)

El Sitio a diseñar deberá cumplir con las condiciones señaladas, la información de


cada visitante deberá guardarse en una Base de Datos, en este caso usaremos
Access, la dinamicidad de la pagina la conseguiremos mediante ASP.

5
Creando Sitios de Comercio Electrónico

Descripción general

Peru Adventure & Trips

El Sitio a desarrollar debe ser capaz de:

• Registrar a cada visitante

Se debe almacenar como minimo su nombre, apellido, correo electronico y pais,


puede consignarse informacion adicional como fecha de nacimiento, y algunos
datos de su preferencia.

• Catalogo de Paquetes turisticos

Deberá mostrarse un catalogo general de paquetes turisticos organizado por


categorias, por ejemplo Turismo de aventura, Turismo ecologico, Turismo
mistico, etc. Posteriormente de acuerdo a las preferencias del visitante, la
pagina podria priorizar un catalogo de acuerdo a su perfil.

• Registrar una solicitud de reserva

Se deberá crear un modulo de reserva, por un determinado tiempo, con


posibilidad de reconfirmar o anular una reserva.

• Disponer de una pasarela de pago

Se dispondrá de una pasarela de pago, de manera que el visitante usando su


tarjeta de credito pueda cancelar el importe del paquete turistico.

• Disponer de un modulo de administracion del sitio

Para la empresa será necesario contar con un modulo de administracion del Sitio web, por
ejemplo para dar de alta a nuevos paquetes turisticos, para remover reservas, etc.

6
Creando Sitios de Comercio Electrónico

La Base de Datos

Descripcion de las tablas


Tabla: DESTINO
La tabla contiene la relacion de ciudades

Llave primaria: IdDestino


El Id del destino es un numero correlativo.

IDDESTINO Entero 4
CIUDAD Carácter 20

Tabla: PAQUETE
La tabla paquete contiene la descripcion de un paquete turistico, su costo, el inicio
y termino, la cantidad de cupos.

Llave primaria: IdPaquete


El Id del paquete tiene un prefijo “P” seguido de un numero correlativo, por
ejemplo: P0001, P0002.
Llave foránea: IdDestino

IDPAQUETE Carácter 5
IDDESTINO Entero 4
TIPO Carácter 1
NOMBRE Carácter 100
PRECIOCOSTO Monetario 8 4
PRECIOVENTA Monetario 8 4
FECHAINICIO DateTime 8
FECHATERMINO DateTime 8
CATEGORIA Carácter 1
FECHACONFIRMACION DateTime 8
CUPOS Entero 4
VIGENTE Entero 4

Tabla: ACTIVIDAD
Contiene las actividades que compone un paquete turistico: recojo del aeropuerto,
hospedaje, visitas guiadas, etc., para cada actividad habrá un proveedor.

Llave primaria: IdActividad


El Id de la actividad es un numero correlativo
Llaves foránea: IdProveedor, IdPaquete

IDACTIVIDAD Entero 4
IDPROVEEDOR Entero 4
IDPAQUETE Carácter 5
NOMBRE Carácter 100
PRECIOCOSTO Monetario 8 4
FECHA DateTime 8

7
Creando Sitios de Comercio Electrónico

Tabla: PROVEEDOR
Contiene la relacion de proveedores

Llave primaria: IdProveedor


El Id del proveedor es un numero correlativo

IDPROVEEDOR Entero 4
NOMBRE Carácter 50
CIUDAD Carácter 20
TIPO Carácter 2
EMAIL Carácter 40
URL Carácter 80

Tabla: CLIENTE
Contiene la lista de clientes suscritos

Llave primaria: IdCliente


El Id del cliente consta de un prefijo “C” y un numero correlativo, por ejemplo:
C0001, C0002

IDCLIENTE Carácter 5
APELLIDO Carácter 40
NOMBRE Carácter 40
EMAIL Carácter 40
CLAVE Carácter 20
FECHANAC DateTime 8
SEXO Carácter 1
PAIS Carácter 20
CIUDAD Carácter 20
TIPOS Carácter 10

Tabla: RESERVA
Contiene la reserva de paquete efectuado por un determinado cliente

Llave primaria: IdReserva


El Id de la reserva consta de un prefijo “R” y un numero correlativo, por ejemplo:
R0001, R0002

IDRESERVA Carácter 5
IDCLIENTE Carácter 5
IDPAQUETE Carácter 5
FECHA DateTime 8
CANTIDAD Entero 4
TIPOPAGO Carácter 1
TOTALVENTA Monetario 8 4
DESCUENTO Monetario 8 4
TOTALNETO Monetario 8 4
CONFIRMADO Lógico 1
ANULADO Lógico 1

8
Creando Sitios de Comercio Electrónico

Tabla: PARAMETRO
Contiene el ultimo numero correlativo usado en los Ids de las tablas.
El Campo CAMPO, contiene el nombre del campo y VALOR el ultimo numero usado

CAMPO Carácter 20
VALOR Carácter 20

J La BD en Access se adjunta al libro, en la siguiente edición se ampliará el tema de Base de Datos.


La aplicación PeruAdventure, lo hallará en:

www.LibrosDigitales.NET/PeruAdventure

9
Creando Sitios de Comercio Electrónico

Tipos de archivos que compone un


proyecto
Una aplicación web está compuesta por distintos tipos de archivos, los que pueden
ser:

.htm o .html Paginas HTML, pueden contener formularios y controles, texto


estatico, referencias a graficos e hipervinculos

.asp Archivo de tipo Active Server Page, contiene instrucciones HTML


dentro de los cuales se encuentran instrucciones VBScript que se
ejecutan en el servidor, los que interactuan con una Base de Datos

.css Hojas de Estilo, contienen informacion sobre como optimizar los


elementos de una pagina

.gif, .jpg Graficos que se mostrarán en la pagina

Global.asa Cada proyecto puede contener un archivo Global.asa, este archivo


contiene la definicion de variables globales, conecciones a bases de
datos, asi como el codigo de inicializacion y cierre

J Por comodidad, podemos crear carpetas para separar los distintos archivos de la aplicación

10
Creando Sitios de Comercio Electrónico

Sectorización

Antes de iniciar el proyecto, conviene definir los sectores que presentará nuestros
Sitio. La pantalla la podemos dividir en:

Encabezado:

En ella podemos situar el logotipo de la empresa, el nombre del site, una banda de
menu

Pie:

En ella podemos situar los datos de la empresa, los derechos, y quizas algunos
banners

Izquierda:

En ese sector podemos situar un menu de opciones, hipervinculos, y minibanners

Derecha:

Para mostrar informacion adicional o publicidad, mediante minibanners

En nuestro caso será:

J Sugerimos no usar Marcos (Frames), en su lugar usaremos Tablas

11
Creando Sitios de Comercio Electrónico

Definiendo Hojas de Estilo


Durante el desarrollo aun no estableceremos atributos de fuente o color, lo
dejaremos para el final, esto puede solucionarse facilmente, mediante el uso de
hojas de estilo, asi podemos definir:

Colores.css

H1 {font: 17pt “Arial”;


Font-weight: bold;
Color: Blue}

H2 {font: 13pt “Arial”;


Font-weight: bold;
Color: Green}
P {font: 17pt “Arial”;
Color: Yellow}

Asi el archivo Colores.HTM, será:

<HEAD>
<TITLE>Aquí no hay Hojas de Estilo</TITLE>
</HEAD>
<BODY>
<H1>Este es un ejemplo</H1>
<H2>del uso de hojas de estilo</H2>
<P>Personaliza cada uno de los elementos que forma
parte una pagina</P>
</BODY>

12
Creando Sitios de Comercio Electrónico

Una vez creada la hoja de estilo, agregue a la pagina el link en la seccion <HEAD>:

<LINK Rel=”stylesheet” TYPE=“text/css” HREF= “”colores.css>

La pagina debe quedar asi:

<HEAD>
<TITLE>Aquí si se usa Hojas de Estilo</TITLE>
<LINK Rel="stylesheet" TYPE="text/css" HREF= "colores.css">
</HEAD>
<BODY>
<H1>Este es un ejemplo</H1>
<H2>del uso de hojas de estilo</H2>
<P>Personaliza cada uno de los elementos que forma
parte una pagina</P>
</BODY>

Al colocar la referencia a la hoja de estilo y volver a ejecutar la pagina queda:

J En el presente libro no nos preocuparemos mucho por el aspecto de nuestra página, sino mas bien
incidiremos en la parte funcional, para la parte artistica dentro de muy poco estará disponible el libro “para
el WebMaster profesional”

13
Creando Sitios de Comercio Electrónico

Tecnologias para el diseño de Páginas


Las paginas en Internet las podemos dividir en grupos:

Tecnologías del lado del cliente: Paginas estáticas


Corresponde a las instrucciones que se ejecutarán en el Navegador, el codigo
HTML, scripts basadas en JavaScript o VBScript. Representan la primera generacion
de paginas en el web, por lo general de tipo presencial, a manera de un anuncio en
un periodico.

Caracteristicas:

• Estan basadas en HTML, JavaScript, VBScript, CSS.


• Son sencillas de crear, las podemos hacer incluso desde MS-Word, simplemente
grabando el documento como HTML.
• Para su construccion, como minimo necesitamos un editor de texto, claro que
existen productos que nos permiten diseñar paginas muy vistosas y nos ahorran
tiempo en diseño, tales como MS-FrontPage, Flash y DreamWeaver de
Macromedia.
• A pesar de utilizar tales programas es necesario tener conocimiento de las
instrucciones HTML y de JavaScript, para optimizar el codigo generado (en
muchos casos se inserta codigo innecesario que debe removerse a fin de
obtener un archivo ligero)
• Estas paginas no realizan gestion con Base de Datos.

Ejemplos:

Basado en solo HTML:

<HEAD>
<TITLE>Ejecutando HTML en el Cliente</TITLE>
</HEAD>

<BODY>
<H2>Usando HTML</H2>
<P>El dia de hoy es 18/02/2002
</BODY>

14
Creando Sitios de Comercio Electrónico

Usando JavaScript:

<HEAD>
<TITLE>Ejecutando un script JavaScript en el Cliente</TITLE>
</HEAD>

<BODY>
<H2>Usando JavaScript</H2>
<P>El dia de hoy es
<SCRIPT LANGUAGE=JavaScript RUNAT=Client>
<!--
dHoy = new Date();
document.write (dHoy);
//-->
</SCRIPT>
</BODY>

15
Creando Sitios de Comercio Electrónico

Usando VBScript:

<HEAD>
<TITLE> Ejecutando un script VBScript en el Cliente </TITLE>
</HEAD>

<BODY>
<H2>Usando VBScript</H2>
<P>El dia de hoy es
<SCRIPT LANGUAGE=VBScript RUNAT=Client>
<!--
Document.Write (Date)
-->
</SCRIPT>
</BODY>

16
Creando Sitios de Comercio Electrónico

17
Creando Sitios de Comercio Electrónico

Tecnologias del lado del Servidor: Páginas dinámicas

Son paginas mas inteligentes, actualmente la mayoria de sites son de este tipo.

El codigo, se almacena en un Servidor Internet. Cuando se accede desde un


navegador, el Servidor interpreta el código, lo ejecuta, y envía al navegador el
resultado en formato HTML. Esto hace un navegador independiente a la solución.

Caracteristicas:

• Estan basadas en ASP o en PHP


• Para su construccion solo se requiere un sencillo editor de texto, aunque existen
productos que alivian dicho trabajo como MS-Visual InterDev para ASP o
EditPlus (www.editplus.com) un pequeño pero gran editor de codigo ASP.
• Permite la creacion de paginas con contenido dinamico, por ejemplo podemos
crear sites que permitan realizar reservas de hoteles, controlar ventas en linea,
etc.
• Estas paginas hacen uso de una Base de Datos.

Basado en ASP:

<HEAD>
<TITLE> Ejecutando un script VBScript en el Servidor </TITLE>
</HEAD>

<BODY>
<H2>Usando VBScript </H2>
<P> El dia de hoy es:
<%Response.Write Date%>
</BODY>

18
Creando Sitios de Comercio Electrónico

Que debo usar ASP o PHP?


Para empezar ambos son gratuitos, es decir no necesita comprar licencia de uso a
ninguna empresa, claro Microsoft es quien a explorado mas y muchos de sus
productos estan basados en ASP, mientras que es la corriente Linux quien apuesta
por PHP.

Como entornos de trabajo, ambos son muy buenos y tienen mucho en comun. Lo
que los difieren es el sistema operativo sobre el que operan, Windows para ASP y
Linux para PHP.

EN cuanto a la gestion de Base de Datos, para el sistema operativo Windows,


podemos usar Access, SQL Server, Visual FoxPro, Oracle, que son gestores de
bases de uso comercial muy conocidos. En cambio por el lado de Linux podemos
usar MySQL, SQLPostgree que a diferencia de los productos Microsoft, son Bases de
Datos gratuitas. Hay que señalar que MySQL y SQLPostgree presentan ciertas
limitaciones para quienes estamos acostumbrados a las cosas faciles, por ejemplo
no permiten Procedimientos Almacenados ni Desencadentes , no siempre será asi,
la corriente Linux avanza rapidamente, quiza mas adelante contemos con un gestor
de Base de Datos mas potente, sin embargo hay que señalar que muchas
soluciones profesionales estan basadas en el uso de esta tecnologia, por tanto su
construccion ya es, ingenio del desarrollador.

19
Creando Sitios de Comercio Electrónico

Conceptos generales de ASP


Objetivos
En este segundo módulo se desarrollaran los siguientes puntos:

ü ASP
ü Que necesito para ejecutar ASP
ü El modelo de objetos

20
Creando Sitios de Comercio Electrónico

Active Server Pages

ü Active Server Pages (ASP) es el aporte de Microsoft, al desarrollo de páginas


dinámicas.
ü CGI y Perl, son tecnologias predecesoras a ASP.
ü Otras tecnologías que compiten con ASP son ColdFusion (Allaire), JavaServer
Pages (Sun Microsystems) y PHP (de libre distribución bajo Open System).
ü ASP no es un lenguaje de programación, sino un marco de trabajo, donde se
puede construir la aplicación web.
ü Con ASP podemos construir aplicaciones que accedan a Base de Datos como
Access, SQL Server u Oracle.

Ventajas

Las principales ventajas que ofrece ASP son:

ü Permite acceder a bases de datos de una forma sencilla y rápida.


ü Las páginas se generan dinámicamente.
ü El código de script se ejecuta en el servidor, y no depende del navegador que se
use.
ü Desde una página ASP se pueden ejecutar servidores OLE en el servidor de web
y filtros ISAPI: acceso a base de datos, acceso a ficheros, log en el sistema,
envío de correo, etc.
ü La tecnología ASP se emplea principalmente para crear aplicaciones interactivas

Cómo funciona?

ü Las páginas ASP comienzan a ejecutarse cuando un usuario solicita un archivo


.asp al servidor Web a través del explorador.
ü El servidor web llama a ASP, que lee el archivo solicitado, ejecuta las secuencias
de comandos que encuentre y envía los resultados al explorador del cliente.
ü Puesto que las secuencias de comandos se ejecutan en el servidor, y NO en el
cliente, es el servidor el que hace todo el trabajo necesario para generar las
paginas que se envían al explorador. Las secuencias de comandos quedan
ocultas a los usuarios, estos solo reciben el resultado de la ejecución en
formato HTML.
ü Desaparece por tanto el problema de si el cliente puede o no ejecutar
sentencias de comandos, el servidor Web solo envía el resultado en código
HTML standard el cual puede ser interpretado por cualquier explorador.

21
Creando Sitios de Comercio Electrónico

Como se usa ASP?

Existen dos formas de incluir scripts en una página web:

1. Escribiéndolo entre las etiquetas <SCRIPT> y </SCRIPT>. En el atributo


LANGUAGE podemos indicar en que lenguaje se está programando. Para
distinguir el código de script que se ejecuta en el servidor del que se ejecuta en
el cliente, se emplea el atributo RUNAT=”Server”:

<SCRIPT LANGUAGE=”VBScript” RUNAT=”Server”>


‘instrucciones
</SCRIPT>

2. Escribiéndolo entre los delimitadores <% y %>.

<% instrucciones %>

Ejemplo:

<HEAD>
<TITLE> Ejecutando un script VBScript en el Servidor </TITLE>
</HEAD>

<BODY>
<H2>Usando VBScript </H2>
<P> El dia de hoy es:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Response.Write Date
</SCRIPT>
</BODY>

Una forma mas practica es encerrar el codigo VBScript dentro <% y%>.

<HEAD>
<TITLE> Ejecutando un script VBScript en el Servidor </TITLE>
</HEAD>
<BODY>
<H2>Usando VBScript </H2>
<P> El dia de hoy es:
<%Response.Write Date%>
</BODY>

22
Creando Sitios de Comercio Electrónico

Que necesito para ejecutar un programas


en ASP?
Para el desarrollo de nuestras paginas podemos usar el PWS de Windows 95/98,
para la publicacion debemos usar el IIS en un Servidor Windows NT o 2000.

Veamos ambas opciones en detalle:

Personal Web Server (PWS)


Instalacion

• Windows 95: Primero debe actualizar Windows. Esta actualizacion está con el
Service Pack 1. Esta actualizacion se llama Windows Socket 2 (WinSock2), el
cual, puede bajar el WinSock2 de:

http://www.microsoft.com/windows/downloads/bin/w95ws2setup.exe

Esta actualizacion corrige los problemas con el protocolo TCP/IP de Windows 95.
Luego se podrá instalar el PWS correctamente.

• Windows 98: el PWS lo encontrará en el CD de instalacion de Windows 98 en


la carpeta PWS que se encuentra dentro de la carpeta Add-Ons, de no hallarse
puede obtener una copia de forma gratuita del sitio de descarga de
www.Microsoft.com.

Ejecución:

1. Una vez instalado, ejecute el PWS desde:

Botón Inicio
Programas
Microsoft Personal Web Server
Administrador personal de Web

Le mostrará el panel Principal, donde se muestra el nombre de la pagina


principal, en el ejemplo: http://Grap

Asi mismo indica el nombre del directorio local, que en este caso es
c:/InetPub/wwwroot

Si en esta carpeta situa los archivos de su proyecto, entonces bastará que en el


navegador anote:

http://Grap

y se iniciará (el archivo que de inicio al proyecto debe llamarse Default.asp o


Default.htm)

23
Creando Sitios de Comercio Electrónico

2. Para registrar una carpeta distinta, vaya a a la opcion Avanzada

24
Creando Sitios de Comercio Electrónico

3. Luego haga click en Agregar.

El dialogo Agregar directorio, asocie el directorio donde se encuentra su


proyecto con un alias, en el ejemplo Capitulo3.

4. Para ejecutar el proyecto deberá anotar:

http://Grap/Capitulo3

Siempre que el proyecto empiece con Default.asp o Default.htm, en su caso


debera anotar:

http://Grap/Capitulo3/ejemplo.asp

25
Creando Sitios de Comercio Electrónico

Internet Information Server (IIS)


ü Presente en las versiones 3.0/4.0/5.0 para Windows NT 4.0 o Windows 2000
ü IIS es el entorno de desarrollo y ejecución de las páginas ASP para servidores
web de Microsoft.
ü En Windows NT, IIS significaba Internet Information Server, en Windows 2000,
IIS opera como un servicio, recibiendo el nombre de Internet Information
Services.
ü La ultima version de Internet Information Server fue 4.0, la reciente version 5.0
aparece como parte de la plataforma Windows 2000, la version 4.0 se sigue
utilizando debido a su gran estabilidad y tiempo que se lleva funcionando y es
utilizada en servidores NT.

La ultima version de IIS 5.0 aparece formando parte de la nueva version de


sistema operativo de Microsoft, Windows 2000, se encuentra completamente
integrado con el sistema operativo y supone una mejora de IIS 4.0, no presenta un
salto radical como de la version 3.0 a la 4.0.

J En conclusion:
Si vamos a rentar un servicio de hosting será suficiente con Windows 98 (por razones de costo de
licencia). Concluida la labor de desarrollo, podemos colocar la aplicación en el espacio rentado en el
servicio de hosting, via FTP o mediante la consola que el servicio de hosting nos provea.

Si vamos a implementar un Servidor Web en nuestra oficina, conviene adquirir una licencia de Windows
2000 Advanced Server.

A efectos de crear los programas ASP, será suficiente un simple editor de textos como el Bloc de notas de
Windows, o adquirir un Editor mas practico como el EditPlus (www.editplus.com), por unos 30 dolares.

26
Creando Sitios de Comercio Electrónico

Ahora si se puede adquiera MS-Visual InterDev (no crea que lo hará todo, de todos
modos hay que echarle mano al codigo).

Si se quiere acceder a una base de datos, se puede usar una conexión ODBC, una
conexión OLE-DB, o una ruta física. Como plataforma de bases de datos, una
simple base de datos hecha en Microsoft Access puede ser suficiente.

Hay diversos recursos en el web que son gratuitos y nos ayudarán a crear
soluciones muy profesionales, a lo largo del texto se irá indicando.

27
Creando Sitios de Comercio Electrónico

Modelo de Objetos en ASP


ASP consta de seis objetos, entre estos no existe una relacion jerarquica, sino una
relacion logica, a continuacion se hace una descripcion general de cada una de
ellas:

El Objeto Response
Este objeto se usará para enviar información a mostrar en el navegador o para
redireccionar a un URL diferente.

Ejemplo:

Response.Write "Hola a todos”

Esto imprimirá en el navegador "Hola a todos".

También puede incluirse instrucciones HTML como para indicar el salto de linea.

<HEAD>
<TITLE> Un saludo </TITLE>
</HEAD>

<BODY>
<H2>Hola a todos</H2>
<% Response.Write ("Esta cadena <BR> ha sido generada en el
<B>Servidor. </B>") %>
</BODY>

28
Creando Sitios de Comercio Electrónico

El Objeto Request
El Objeto Request se usará para obtener la información incluida en un formulario
HTML o a partir de los datos enviados mediante la instrucción QueryString.

Un ejemplo del uso del Objeto Request es recuperar un valor de un formulario html.
El nombre de la variable viene del dispositivo de entrada de html.

<HEAD>
<TITLE>Formulario entrada de datos </TITLE>
</HEAD>
<BODY>
<FORM ACTION="VerDatos.asp" METHOD="POST">
<INPUT TYPE=Text NAME=txtNombre>
<INPUT TYPE=Text NAME=txtDireccion>
<INPUT TYPE="Submit" VALUE="Ver">
<INPUT TYPE="Reset" VALUE="Borrar">
</FORM>
</BODY>

Ahora haremos que el valor de "txtNombre" sea asignado a una variable:

VerDatos.asp

<HEAD>
<TITLE> Visualizando resultados </TITLE>
</HEAD>
<BODY>

<%
strNom = Request.Form ("txtNombre")
strDir = Request.Form ("txtDireccion")

Response.Write ("Nombres: " & strNom & “<BR>” )


Response.Write ("Direccion: " & strDir )
%>
</BODY>

J Ahora podemos usar la variable, por ejemplo para almacenar el contenido en una Base de Datos,
realizar alguna calculo, imprimirla como parte de un mensaje, etc.

29
Creando Sitios de Comercio Electrónico

El Objeto Application
El Objeto Application se usa para guardar la información que deba ser compartido
simultáneamente por todos los usuarios de la aplicación.

Un ejemplo de esto podria la cadena de conexión a una Base de Datos, el nombre


de los directorios comunes, etc.

Application("Impuesto") = 0.18

El Objeto Session
El Objeto Session se usa para conservar datos durante una sesion.

Puede almacenarse en un Objeto Session, el Id del usuario, y asi poder verificar sus
datos y filtrar la informacion.

Session("autorizado") = "sí"

Cuando el usuario acceda a una pagina interior, para verificar si tiene permiso, solo
tendriamos que acceder y verificar que el valor de la variable de sesion “autorizado”
sea “si”.

J Hay un Objeto Application para todos los usuarios, y un Objeto Session para cada usuario

El Objeto Server
El Objeto Server se usa para definir la cantidad máxima de tiempo que se esperará
para realizar una escritura, crear instancias a componentes COM y poder usarlas en
nuestras paginas ASP, etc.

Por ejemplo podemos usar este objeto para crear una instancia del objeto de
ADODB.Connection y establecer una conexión a una Base de Datos.

Cn = Server.CreateObject ("ADODB.Connection")

En el código anterior se define "Cn" como una instancia del objeto de


ADODB.Connection. Luego se invocaria al método Open de este objeto, para
pasarle los parámetros apropiados (el nombre de fuente de datos, id del usuario, la
contraseña, etc) y establecer una conexión a una Base de Datos.

30
Creando Sitios de Comercio Electrónico

Variables de Memoria
Objetivos
En este módulo se desarrollaran los siguientes puntos:

ü Que es una variable de memoria?


ü Subtipos
ü Cómo verificar los subtipos
ü Funciones de conversión

31
Creando Sitios de Comercio Electrónico

Variables
ü En ASP (VBScript) hay sólo un tipo de variable: Variant.
ü Todas las variables son del tipo Variant.
ü Cada variable puede tener un subtipo diferente.
ü Hay 10 subtipos diferentes del tipo Variant (que se describe mas adelante).

Cómo declarar las variables:

Dim miVar

ü Cuando se declara una variable no es necesario especificar el subtipo.


ü Se puede convertir una variable a un subtipo especifico.

Nombrando variables
Al dar un nombre a una variable debe tener en cuenta:

ü Debe empezar con un caracter alfabético


ü No debe usarse nombres de comandos
ü Debe ser único dentro del mismo alcance
ü La longitud del nombre debe ser menor a 255 carácteres o menos

Sugerencias para nombrar variables:

ü Una convencion es usar un prefijo de 3 letras que indiquen el tipo de datos,


como strNombre para las cadenas, intEdad para los enteros, etc.
ü Puede usted definir un estilo propio usando prefijos que le guste y le sea
practico. La idea de usar prefijos es facilitar la lectura de sus programas.

Usando variables
Simplemente asigne valores a las variables:

Num1 = 3.4142
Num2 = FormatNumber(Num1, 2)
strFrase = "Bienvenido..."
strNombre = “Cesar”
strSaludo = strFrase + strNombre

K Una variable tiene por alcance el modulo donde fue definido. Es decir si define una variable en una
función, sólo en esa función se podrá usar dicha variable. Para que la variable esté disponible a nivel de
toda la página, debe definirla al principio y fuera de cualquier función o subprogramas.

32
Creando Sitios de Comercio Electrónico

Cuando se asigna un valor numerico a una variable y usted no le ha asignado un


subtipo especifico, sera considerada como cadena al intentar sumar. Así al realizar
2+2 y querer obtener 4, se conseguiría 22 (cancatenación), salvo sea una
operación de multiplicación o división, donde automáticamente el valor será
convertido a número.

Suma.asp

<HEAD>
<TITLE>Intentando sumar numeros </TITLE>
</HEAD>
<BODY>

<FORM ACTION="Neto.asp" METHOD="POST">


<INPUT TYPE=Text NAME=txtSueldo> <BR>
<INPUT TYPE=Text NAME=txtBoni> <BR>
<INPUT TYPE="Submit" VALUE="Calcular Neto">
</FORM>

</BODY>

Neto.asp

<HEAD>
<TITLE>Deberia sumar, pero concatena </TITLE>
</HEAD>
<BODY>

<%
strSueldo = Request.Form ("txtSueldo")
strBoni = Request.Form ("txtBoni")

Response.Write ("Neto: " & strSueldo+strBoni )


%>
</BODY>

Al ejecutar obtenemos:

33
Creando Sitios de Comercio Electrónico

34
Creando Sitios de Comercio Electrónico

Veamos otro ejemplo, donde se calcula impuestos:

<HEAD>
<TITLE>Declarando Variables</TITLE>
</HEAD>
<BODY>
<%
Dim intMonto, intIGV, intTotal
intMonto = 900
intIGV = 18
intTotal = intMonto - ((intMonto/100)*intIGV)
%>
<P>Monto inicial <% = intMonto %> soles</P>
<B><P>El total es <% = intTotal %> soles</B></P>
</BODY>

35
Creando Sitios de Comercio Electrónico

Option Explicit
Las variables en ASP no necesitan ser declaradas, sin embargo es un buen hábito
declarar las variables que usemos, una forma de forzar su definición es mediante la
orden Option Explicit, la cual debe insertarse al principio del código ASP de cada
pagina.

<%Option Explicit
Dim a,b,c

..
%>

Documentando
Es bueno documentar las secciones de codigo con cierta complejidad, nos sera de
ayuda a nosotros (en el futuro), como a los otros desarrolladores del equipo de
trabajo.

Para ubicar un comentario use

En VBScript: el apóstrofe, ( ' )


En JavaScript: la doble ( // )
En HTML: <!-- comentario -->

Se puede comentar en cualquier lado. Arriba de la linea o al final.

<HEAD>
<TITLE>Declarando Variables</TITLE>
</HEAD>
<BODY>
<%
Dim intMonto, intIGV, intTotal ‘Declaramos variables
intMonto = 900 ‘Monto en soles
intIGV = 18 ‘Impuesto
intTotal = intMonto - ((intMonto/100)*intIGV)
%>
<!—Imprimimos los resultados à
<P>Monto inicial <% = intMonto %> soles</P>
<B><P>El total es <% = intTotal %> soles</B></P>
</BODY>

36
Creando Sitios de Comercio Electrónico

La funcion TypeName
Esta funcion devuelve el tipo de dato, de una variable o expresion.

<HEAD>
<TITLE>Usando TypeName</TITLE>
</HEAD>
<BODY>
<%Dim dblPi, TipoPi, datFNac, TipoFNac, strFrase, TipoFrase
dblPi = 3.142
TipoPi = TypeName(dblPi)

datFNac = #11/08/02#
TipoFNac = TypeName(datFNac)

strFrase = "Esta es una frase"


TipoFrase = TypeName(strfrase)

Dim emp
emptyVar = TypeName(emp) %>

<P>dblPi devuelve <%= TipoPi %></P>


<P>datToday devuelve <%= TipoFNac %></P>
<P>strText devuelve <%= TipoFrase %></P>
<P>emp devuelve <%= emptyVar %></P>

</BODY>

Al ejecutar obtenemos:

37
Creando Sitios de Comercio Electrónico

Los Subtipos
Veamos un resumen de los subtipos disponibles:

Subtipo Rango
Byte 0-255

Integer -32,768 a 32,767

Long -2,147,483,648 a 2,147,483,647

Single -3.402823E38 a-1.401298E-45 para valores negativos;


1.401298E-45 a 3.402823E38 para valores positivos

Double -1.79769313486232E308 a -4.94065645841247E-324


para valores negativos;

4.94065645841247E-324 a 1.79769313486232E308
para valores positivos

Currency -922,337,203,685,477.5808 a 922,337,203,685,477.5807

Date 1 de enero de 100 al 31 de diciembre de 9999

String De 0 a 2 mil millones caracteres

Boolean True o False

Objeto Cualquier referencia del Objeto

Los subtipos mas usados son String, Integer, y Boolean.

38
Creando Sitios de Comercio Electrónico

Funciones de conversión
Las siguientes funciones se acostumbrar usar para convertir las variables a un
subtipo específico:

Funcion Convierte un dato al tipo:


Cbool Boolean
Cbyte Byte
Ccur Currency
Cdate Date
CDbl Double
Cint Int
CSng Sigle
CStr String

Todas estas funciones toman como parámetro una variable, y devuelven el subtipo
pedido que puede luego ser retenida en la misma variable, por ejemplo:

var1 = CStr(var1)

39
Creando Sitios de Comercio Electrónico

<HEAD>
<TITLE>Definiendo SubTipos</TITLE>
</HEAD>
<BODY>

<%
Dim strPi, dblPi, intPi, strPi2
Dim TipoPi1, TipoPi2, TipoPi3, TipoPi4

strPi = "3.142"
TipoPi1 = TypeName(strPi)
dblPi = CDbl(strPi)
TipoPi2 = TypeName(dblPi)
intPi = CInt(dblPi)
TipoPi3 = TypeName(intPi)
strPi2 = CStr(intPi)
TipoPi4 = TypeName(strPi2)
%>

<P>Pi es <%= TipoPi1 %> y Pi retorna <%= strPi %> </P>


<P>Pi es <%= TipoPi2 %> y Pi retorna <%= dblPi %> </P>
<P>Pi es <%= TipoPi3 %> y Pi retorna <%= intPi %> </P>
<P>Pi es <%= TipoPi4 %> y Pi retorna <%= strPi2 %> </P>
</BODY>

40
Creando Sitios de Comercio Electrónico

Verificando los Subtipos


Hay seis funciones diferentes que ayudarán a determinar si una variable
corresponde a un Subtipo específico.

IsArray(var)
IsDate(var)
IsEmpty(var)
IsNull(var)
IsNumeric(var)
IsObject(var)

Estas funciones retornan un valor lógico (verdadero o falso). Veamos el uso de cada
uno de ellos:

IsEmpty(var)
Esta función indica si una variable está vacía. Una variable está vacía cuando la
variable se ha creado, pero no se ha asignado aún un valor. Esto es distinto a una
cadena vacía ("") o a un valor NULO.

IsNull(var)
Esta funcion determina si el contenido de una variable contiene un valor numol.
Una variable es nula cuando se iguala a un valor nulo.

IsNumeric(var)
Devolverá verdadero si la variable contiene un valor numerico.

Ejemplo:

<HEAD>
<TITLE>Averiguando si es un numero</TITLE>
</HEAD>
<BODY>
<%
miVar = "Hola"
If IsNumeric(miVar) Then
Response.Write ("la Variable es numérica".)
Else
Response.Write ("la Variable no es numérica".)
End If
%>
</BODY>

41
Creando Sitios de Comercio Electrónico

La función VarType()
Otra manera de determinar el Subtipo es usando la funcion VarType ()

La sintaxis:

VarType(var)

La función anterior devolverá un número que representa los distintos subtipos.

Subtipo Valor Descripcion


vbEmpty 0 no asignaron un valor
vbNull 1 Contiene valor nulo
vbInteger 2 Entero
vbLong 3 Largo
vbSingle 4 Single
vbDouble 5 Double
vbCurrency 6 Currency
vbDate 7 Date
vbString 8 String
VbObject 9 Object
VbError 10 Error
VbBoolean 11 Boolean
vbVariant 12 Variant
vbDataObject 13 Acceso de los Datos
vbDecimal 14 Decimal
vbByte 17 Byte
vbArray 8192 Arreglo

42
Creando Sitios de Comercio Electrónico

Analizando las cadenas


Hay 7 funciones disponibles en ASP que le ayudara a analizar las cadenas:

InStr(CadenaDondeBuscar, CadenaABuscar)
La funcion retorna:

0 si la CadenaDondeBuscar es de longitud cero


0 si la CadenaABuscar no se encuentra en la CadenaDondeBuscar
Nulo, Si la CadenaABuscar y la CadenaDondeBuscar es nulo.

Ejemplo:

str1 = "Hola"
str2 = "ol"
If InStr(str1,str2)> 0 Then
Response.Write ("str1 contiene a str2")
Else
Response.Write ("str2 no está contenido en str1")
End If

Se imprimirá:

str1 contiene a str2"

Left(Cadena,num)
Extrae caracteres por la izquierda

strProd = "Active Server Page"


Response.Write ("Los primeros seis carácteres son" &
Left(strProd,6))

Se mostrará:

Los primeros seis carácteres son Active

43
Creando Sitios de Comercio Electrónico

Right(Cadena,num)
Extrae caracteres por la derecha

strProd = "Active Server Page"


Response.Write("Las 4 últimas letras son"&Right(strProd,4))

Se mostrará:

Las 4 últimas letras son Page

Mid(Cadena, NumInicio[, NumCantidad])


Extrae cierta cantidad de caracteres (NumCantidad) de una cadena, a partir de la
posicion NumInicio. Si se omite NumCantidad, extrae los caracteres desde la
posicion NumInicio hasta el final de la cadena

Ejemplo:

strProd = "Active Server Page"


Response.Write ( Mid(strProd, 1, 1) & Mid(strProd, 8, 1) &
Mid(strProd,15,1))

El resultado:

ASP

Replace(Cadena, BuscarEsto, ReemplazaCon


[, Inicio])
Reemplaza los caracteres (ReemplazaCon) buscados (BuscarEsto), dentro de una
cadena desde la posicion indicada en Inicio. Si omite Inicio, la busqueda comienza
desde el carácter inicial

Ejemplo:

str1 = "Cesar-Augusto-Bustamante-Gutierrez"
Response.Write ("con espacios :" & Replace(str1," -",""))

Se imprimirá:

44
Creando Sitios de Comercio Electrónico

Con espacios: Cesar Augusto Bustamante Gutierrez

Len(cadena)
Devuelve la longitud de una cadena

strProd = "Active Server Page"


Response.Write (Left(strProd, Len(strProd)-5))

El resultado:

Active Server

45
Creando Sitios de Comercio Electrónico

Convirtiendo a mayúsculas y minúscula

Las funciones: LCase() y UCase(), convierte una cadena a masyúsculas y


minúsculas respectivamente.

Ejemplo:

miNomr= "CESAR"
Response.Write(LCase(miNom))

Se imprimirá:

Cesar

miApe = "bustamante"
Response.Write(UCase(Left(miNom,1)) & LCase(Mid(miNom,2)))
Response.Write(UCase(Left(miApe,1)) & LCase(Mid(miApe,2)))

Se imprimirá:

Cesar Bustamante

46
Creando Sitios de Comercio Electrónico

Buscando dentro de una cadena

Instr(Comienzo, Cadena1, Cadena2, Comparacion)


Devuelve la posicion de la ocurrencia de una cadena dentro de otra.
El argumento Comienzo indica la posicion a partir de la cual se iniciará la búsqueda
(por defecto desde el primer carácter).
Cadena2 es el argumento que se va a buscar en la Cadena1.
Comparacion, es opcional indica si la comparacion será:

0 vbBinaryCompare (por defecto)


1 vbTextCompare, realiza comparacion textual

Por ejemplo:

Response.Write( InStr(7, “Cesar Bustamante”, “m”) )

Se imprimirá: 12

InstrRev(Comienzo, Cadena1, Cadena2,


Comparacion)
Hace lo mismo que la funcion anterior, solo que en lugar de contar la ocurrencia por
la izquierda lo efectuara contando por la derecha.

47
Creando Sitios de Comercio Electrónico

Manipulando Fechas y Horas

Definiendo el formato de Fecha y Hora


Para establecer el formato de fecha y hora utilice la función: FormatDateTime ().

FormatDateTime(Fecha[,Formato])

El parámetro del formato puede tener uno de los valores siguientes:

0 vbGeneralDate Formato normal.


1 vbLongDate Formato de fecha largo
2 vbShortDate Formato de fecha corta
3 vbLongTime Hora en formato largo
4 vbShortTime Hora en formato de 24 horas(el hh:mm)

Ejemplo:

dHoy = Now()
Response.Write ("dHoy antes de estructurar: " & dHoy &" <BR>")
Response.Write ("dHoy estructurado en 0 =" &
FormatDateTime(dHoy,0) &" <BR>")
Response.Write ("dHoy estructurado 1 =" & FormatDateTime(dHoy,1)
&" <BR>")
Response.Write ("dHoy estructurado 2 =" & FormatDateTime(dHoy,2)
&" <BR>")
Response.Write ("dHoy estructurado 3 =" & FormatDateTime(dHoy,3)
&" <BR>")
Response.Write ("dHoy estructurado 4 =" & FormatDateTime(dHoy,4)
&" <BR>")

El resultado:

dHoy antes de estructurar: 26/02/2002 11:47:18 AM


dHoy estructurado en 0 =26/02/2002 11:47:18 AM
dHoy estructurado 1 =Martes 26 de Febrero de 2002
dHoy estructurado 2 =26/02/2002
dHoy estructurado 3 =11:47:18 AM
dHoy estructurado 4 =11:47

J En los servidores con Windows en ingles, la funcion: <%=FormatDateTime(Now, vbLongDate)%> la


fecha en inglés. Puede solucionar el problema, colocando antes:

<% @LCID = 1034 %>

48
Creando Sitios de Comercio Electrónico

Extrayendo partes de una fecha


DatePart(Parte, Fecha [, PrimerDiaSemana, PrimerDiaAño])

Esta funcion devuelve una parte de una fecha

PrimerDiaSemana, es un parámetro opcional devuelve uno de los valores


siguientes:

1 - domingo (valor predefinido)


2 - lunes
3 - martes
4 - miércoles
5 - jueves
6 - viernes
7 - sábado

El parámetro de Parte, puede tomar uno de los valores siguientes:

yyyy - Año
q - Cuarto
m - Mes
y - Día del año
d - Día
w - Día de la semana
ww - Semana de año
h - Hora
n - Minuto
s - Segundo

El argumento PrimerDiaAño, es una valor opcional, especifica la primera semana


del año, por defecto considera la primera semana del año. Los argumentos que se
puede pasar son:

Constante Valor Descripcion


VbUseSystem 0 Utiliza el soporte de Lenguaje Nacional (NLS), señalada
en la API
VbFirstJan 1 Inicia la semana el 1 de enero (por defecto)
VbFirstFourDays 2 Comienza con la semana que tiene al menos, cuatro dias
en la primera semana.
VbFirstFullWeek 3 Comienza con la primera semana completa del año

J Por lo general, se obvian los parametros opcionales: PrimerDiaSemana y PrimerDiaAño, por tanto se
asume que el primer dia de la semana es domingo y el año comienza con el 1ro de enero

49
Creando Sitios de Comercio Electrónico

Ejemplo:

dHoy = Now()
Response.Write ("dHoy =" & dHoy &" <BR>")
Response.Write ("yyyy =" & DatePart ("yyyy", dHoy) &" <BR>")
Response.Write ("m =" & DatePart ("m", dHoy) &" <BR>")
Response.Write ("q =" & DatePart ("q", dHoy) &" <BR>")
Response.Write ("y =" & DatePart ("y", dHoy) &" <BR>")
Response.Write ("d =" & DatePart ("d", dHoy) &" <BR>")
Response.Write ("w =" & DatePart ("w", dHoy) &" <BR>")
Response.Write ("ww =" & DatePart ("ww", dHoy) &" <BR>")
Response.Write ("h =" & DatePart ("h", dHoy) &" <BR>")
Response.Write ("n =" & DatePart ("n", dHoy) &" <BR>")
Response.Write ("s =" & DatePart ("s", dHoy) &" <BR>")

Al ejecutar se mostraria:

dHoy =26/02/2002 11:42:43 AM


yyyy =2002
m =2
q =1
y =57
d =26
w =3
ww =9
h =11
n =42
s =43

50
Creando Sitios de Comercio Electrónico

Agregando valores a una Fecha u Hora


DateAdd(Parte, Cantidad, Fecha)

Con esta función puede agregar o substraer una cantidad a una fecha o tiempo.

Cantidad, es el número que se quiere añadir o restar a una fecha (1, -4, 10, etc).

Ejemplo:

dHoy = Now()
Response.Write ("dHoy =" & dHoy &" <BR>")
Response.Write ("dHoy más 10 días =" & DateAdd ("d", 10, dHoy) &
" <BR>")
Response.Write ("dHoy menos 10 días =" & DateAdd ("d", -10,
dHoy) &" <BR>")
Response.Write ("dHoy más 3 meses =" & DateAdd ("m", 3, dHoy) &"
<BR>")
Response.Write ("dHoy menos 3 meses =" & DateAdd ("m", -3, dHoy)
& " <BR>")
Response.Write ("dHoy más 2 horas =" & DateAdd ("h", 2, dHoy) &"
<BR>")
Response.Write ("dHoy menos 2 horas =" & DateAdd ("h", -2, dHoy)
&" <BR>")

Al ejecutar se obtiene:

dHoy =26/02/2002 11:44:59 AM


dHoy más 10 días =08/03/2002 11:44:59 AM
dHoy menos 10 días =16/02/2002 11:44:59 AM
dHoy más 3 meses =26/05/2002 11:44:59 AM
dHoy menos 3 meses =26/11/2001 11:44:59 AM
dHoy más 2 horas =26/02/2002 01:44:59 PM
dHoy menos 2 horas =26/02/2002 09:44:59 AM

51
Creando Sitios de Comercio Electrónico

Calculando la cantidad de tiempo entre dos fechas


DateDiff(Parte, Fecha1, Fecha 2 [, PrimerDiaSemana, PrimerDiaAño])

Esta función es útil para encontrar la cantidad de tiempo entre una fecha y otra.

Parte es la cantidad de tiempo entre las dos fechas

Ejemplo:

var1 = #30/08/1970#
var2 = Date

Response.Write ("var1 =" & var1 &" <BR>")


Response.Write ("var2 =" & var2 &" <BR>")
Response.Write ("var1 al var2 es" & DateDiff ("d", var1, var2)
&" días <BR>")
Response.Write ("var1 al var2 es" & DateDiff ("m", var1, var2)
&" meses <BR>")
Response.Write ("var1 al var2 es" & DateDiff ("yyyy", var1,
var2) &" el año(s) <BR>")

Los resultados:

var1 =30/08/1970
var2 =26/02/2002
var1 al var2 es 11503 días
var1 al var2 es 378 meses
var1 al var2 es 32 el año(s)

52
Creando Sitios de Comercio Electrónico

Generando fechas validas

DateSerial(año, mes, dia)


Devuelve una fecha, a partir del año, mes y dia especificado.
El Año puede ser un numero de 100 a 9999
El mes un numero de 1 a 12
El dia un numero de 1 a 31

Response.Write ( DateSerial(1970,08,10) )
Response.Write ( DateSerial(2002,02,31) )

Muestra como resultado:

10/08/1970
03/03/2002

Dado que en el mes de enero del 2002 hay solo 28 dias, y se ha especificado 31, la
funcion adaptara los dias restantes al mes siguiente, es decir 3 de marzo.

DateValue(Fecha)
Devuelve una fecha, pasada como argumento en formato de fecha larga.

Ejemplo:

Response.Write ( DateValue(“10”,”Setiembre”,”2002”) )

Muestra como resultado:

10/09/2002

53
Creando Sitios de Comercio Electrónico

Obteniendo las partes de una fecha

Hay cinco funciones que le permitirá obtener una determinada parte de una fecha:

Day(Fecha)
Retorna el dia de una fecha, un número entre 1 y 31,

Month(Fecha)
Retorna el numero del mes de una fecha, un número entre 1 y 12,

Year(Fecha)
Retorna el numero del año de una fecha, un número como 2002

Weekday(Fecha)
Retorna el numero del dia en la semana, un numero entre 1-7, dónde 1 es domingo

MonthName(mes, abreviado)
Devuelve el mes en forma abreviada o larga

WeekDayName(DiaSemana, Abrevie, PrimerDia)


DiaSemana, es un número que representa el día de la semana (1-7)
Abrevie es un valor logico que indica si la función retornará el nombre abreviado o
no
PrimerDia, si es 1 corresponde a domingo

Ejemplo:

var1 = "30/08/1970"
Response.Write ("var1 =" & var1 &" <BR>")
Response.Write ("Para var1 el día es" & Day(var1) &" <BR>")
Response.Write ("Para var1 el mes es" & Month(var1) &" <BR>")
Response.Write ("Para var1 el año es" & Year(var1) &" <BR>")
Response.Write ("Para var1 el día de la semana es" &
WeekDay(var1, 1) &" <BR>")
Response.Write ("Para var1 el nombre del dia es" &
WeekDayName(WeekDay(var1), falso, 1) &" <BR>")

54
Creando Sitios de Comercio Electrónico

Al ejecutar se obtiene:

var1 =30/08/1970
Para var1 el día es 30
Para var1 el mes es 8
Para var1 el año es 1970
Para var1 el día de la semana es 1
Para var1 el nombre del dia es Domingo

55
Creando Sitios de Comercio Electrónico

Obteniendo la hora, minuto, segundos

Time()
Devuelve la hora del sistema

Hour(Hora)
Devuelve la hora

Minute(Hora)
Devuelve los minutos

Second(Hora)
Retorna los segundos de la Hora especificada en el argumento.

Timer()
Devuelve el numero de segundos transcurridos desde las 12 horas (medianoche)

TimeSerial(Horas, Minutos, Segundos)


Genera un dato Hora, con las Horas, Minutos y Segundos especificados

TimeValue(Hora)
Devuelve un dato tipo fecha

56
Creando Sitios de Comercio Electrónico

Ejemplo:

<%
Dim hora
hora = Hour(Time())
'Empezamos la comprobaciones de tiempo.
If hora > 6 and hora < 13 then
Response.Write ("<B>Buenos Dias</B>, son las: " & Time())
ElseIf hora > 12 and hora < 20 then
Response.Write ("<B>Buenas Tardes</B>, son las: "& Time())
ElseIf hora > 19 and hora < 24 then
Response.Write ("<B>Buenas Noches</B>, son las: "& Time())
ElseIf hora >= 0 and hora < 7 then
Response.Write ("<B>Buenas Noches</B>, son las: "& Time())
End If
%>

Al ejecutar obtenemos:

Buenos Dias, son las: 12:00:11 PM

57
Creando Sitios de Comercio Electrónico

Generando números aleatorios

Rnd()
La funcion Rnd(), genera un número aleatorio entre 0 y 1. Requiere que en nuestro
código pongamos la instrucción Randomize.

<%
Dim aleatorio
Randomize
' Generamos un numero entre 1 y 10.
Aleatorio = Int (Rnd*10) + 1
response.write "Numero aleatorio "& numero_azar
%>

58
Creando Sitios de Comercio Electrónico

Dando formato a un numero

Numeros enteros
FormatNumber(Numero[, Decimal, CeroInicial, Parentesis])

El primer parámetro es el único que se requiere, a menos que sea necesario indicar
el numero de cifras decimales mediante el segundo parámetro.
Con CeroInicial, puede indicar si se incluira cero, si el valor es fraccionario menor a
uno.
Mediante Parentesis, puede indicar si se encerrará con parentesis si el valor
numerico es negativo

Ejemplo:

var1 = 5443.354
var2 = -877743.2345
Response.Write ("var1 con formato=" & FormatNumber(var1, 2, -1,
-1) &" <BR>")
Response.Write ("var2 con formato =" & FormatNumber(var2, 1, -1,
-1))

Al ejecutar se obtiene:

var1 con formato = 5,443.35


var2 con formato = (877,743.2)

Valores monetarios
FormatCurrency(Numero[, Decimal, CeroInicial, Parentesis])

Agrega al valor numerico el simbolo $ al inicio, la descripcion de los parametros son


los mismos de la funcion antes citada.

Ejemplo:

var1 = 5443.354
var2 = -877743.2345
Response.Write ("var1 con formato =" & FormatCurrency(var1, 2, -
1, -1) &" <BR>")
Response.Write ("var2 con formato =" & FormatCurrency(var2, 1, -
1, -1))

59
Creando Sitios de Comercio Electrónico

El resultado:

var1 con formato = $5,443.35


var2 con formato = ($877,743.2)

Porcentajes
FormatPercent(Numero[, Decimal, CeroInicial, Parentesis])

Agrega el simbolo % a una cantidad numerica.

Ejemplo:

var1 = 5.4333
var2 = .823
Response.Write ("var1 con formato =" & FormatPercent(var1, 2, -
1, -1) &" <BR>")
Response.Write ("var2 con formato =" & FormatPercent(var2, 1, -
1, -1))

Ejecutando se obtiene:

var1 con formato = 543.33%


var2 con formato = 82.3%

60
Creando Sitios de Comercio Electrónico

Arreglos

Un arreglo está compuesto por un conjunto de elementos, que tienen un nombre


comun, pero un subindice distinto.

Si es unidimensional, corresponde a la representacion de un vector y si es


bidimensional a una matriz.

El elemento inicial de un arreglo inicia en cero, es decir el primer elemento seria


miArreglo(0).

Los arreglos son dinámicos, es decir puede cambiarse el tamaño luego de haberse
creado el arreglo.

Dim miArray(1)
miArray(0) = "Jose"
miArray(1) = "Gustavo"

ReDim Preserve miArray(2)


miArray(2) = "Cesar"

Incialmente de crea el arreglo miArray con dos elementos, luego se redimensiona a


3 elementos.

Para crear el arreglo use:

Dim miArray(20)

Para redimensionar el arreglo use:

ReDim Preserve miArray(3)

61
Creando Sitios de Comercio Electrónico

Ejemplo:

<HEAD>
<TITLE>Usando arreglos</TITLE>
</HEAD>
<BODY>

<%
Dim aLista()
Redim aLista(4)
aLista(0) = "Pilar"
aLista(1) = "Karen"
aLista(2) = "Tamara"
aLista(3) = "Gabriela"
Response.Write "<P>"
For n = 0 to 3
Response.Write aLista(n) & "<BR>"
Next

Response.Write "<P>Falta Claudia... </P>"


Redim Preserve aLista(4)
aLista(5) = "Claudia"
Response.Write "<P>"

For n = 0 to 4
Response.Write aLista(n) & "<BR>"
Next
%>
</BODY>

NOTA: Si es un arreglo pequeño, puede crealo de la forma siguiente:

Dim aColores
aColores = Array("Azul", "Verde", "Rojo")

62
Creando Sitios de Comercio Electrónico

Funciones para el tratamiento de arreglos

LBound(Arreglo [,Dimension])
Esta función retorna el menor valor contenido en uno de los elementos de un
arreglo.
Dimension (por defecto 1), es un parámetro opcional, especifica la dimensión del
arreglo donde se quiere encontrar el más bajo valor.

UBound(ArrayName [, ArrayDimension])
Esta función retorna el mayor valor contenido en uno de los elementos de un
arreglo.
Dimension (por defecto 1), es un parámetro opcional, especifica la dimensión del
arreglo donde se quiere encontrar el más alto valor.

Split(CadenaElementos[, Delimitador, Cantidad])


CadenaElementos, es una cadena que contiene una lista de elementos
Delimitador, es el carácter usado para separar los elementos en CadenaElementos.
Cantidad, es el número de elementos que sea convertir a arreglo.

Ejemplo:

Dim miString, miArray,


miString = "naranjas,manzanas,platanos"
miArray = Split(miString,",")

Al ejecutar se obtiene, un arreglo con 3 elementos.

63
Creando Sitios de Comercio Electrónico

Los arreglos multi-dimensionales


Para crear un arreglo multi-dimensional simplemente especifique el número de
columnas y filas.

miArray(2,3) tendría 2 columnas y 3 filas, esto generaria un arreglo con 3 filas (de
0 a 2) con 4 columnas (de 0 a 3), es decir con 12 elemntos (3x4)

0,0 1,0 2,0


0,1 1,1 2,1
0,2 1,2 2,2
0,3 1,3 2,3

Ejemplo:

Dim miArray(2,3)
miArray(0,0) = "electrodomesticos"
miArray(1,0) = "lustradora"
miArray(2,0) = "10"
miArray(0,1) = "electrodomesticos "
miArray(1,1) = "tostador"
miArray(2,1) = "12"
miArray(0,2) = "perfumes"
miArray(1,2) = "Carolina Herrera"
miArray(2,2) = "40"
miArray(0,3) = "perfumes"
miArray(1,3) = "Aqua Brava"
miArray(2,3) = "23"

Response.Write (" <Table border=2 >")


Response.Write (" <tr><td>Fila </td><td>linea</td>")
Response.Write (" <td>Item</td><td>Cantidad</td></tr>")

For i = 0 To UBound(miArray, 2)
Response.Write (" <tr><td> #" & i &" </td>")
Response.Write (" <td>" & miArray(0,i) &" </td>")
Response.Write (" <td>" & miArray(1,i) &" </td>")
Response.Write (" <td>" & miArray(2,i) &" </td></tr>")
Next

Response.Write (" </table>")

Al ejecutar se obtiene:

Fila Linea Item Cantidad


0 electrodomesticos lustradora 10
1 electrodomesticos tostador 12
2 electrodomesticos Carolina Herrera40
3 electrodomesticos Aqua Brava 23

64
Creando Sitios de Comercio Electrónico

Instrucciones condicionales

Instrucción condicional simple


Esta instrucción presenta dos formas:

La forma simple, indica que el Bloque de instrucciones se ha de ejecutar si la


condicion es Verdadera

If (condición) Then
' Bloque de instrucciones
End If

La otra forma, indica que uno de los Bloques de instrucciones se ha de ejecutar


dependiendo de la validez de la condicion.

If (condición) Then
' Bloque de instrucciones 1
Else
' Bloque de instrucciones 2
End If

Una tercera forma indica, el uso de ElseIf a fin de discriminar otras posibilidades:

If (condición) Then
' Bloque de instrucciones 1
ElseIf (condición) Then
' Bloque de instrucciones 2
ElseIf (condición) Then
' Bloque de instrucciones 3
ElseIf (condición) Then
' Bloque de instrucciones 4
End If

Ejemplo:

If Num1> Num2 Then


Response.Write ("Num1 es mayor que num2...")
Else
Response.Write ("Num2 es mayor que num1...")
End If

65
Creando Sitios de Comercio Electrónico

Tambien puede anidarse instrucciones, una dentro de otra, por ejemplo:

If Num1> Num2 Then


If num3> num1 Then
Response.Write ("Num3 es mayor que num1 y num2...")
Else
Response.Write ("Num3 es menor que num1...")
End If
Else
If num3> num2 Then
Response.Write ("Num3 es mayor que num2 y num1...")
Else
Response.Write ("Num3 es menor que num2...")
End If
End If

J Se sugiere evitar ordenes If anidades, en su lugar procure usar la orden condicional Select Case.
En el caso de anidamiento, no olvide cerrar correctamente cada orden If.

Ejemplo:

Mediante el ejemplo siguiente se toma como ingreso el nombre y contraseña de un


usuario, en base a ello se realiza la validación.

<HEAD>
</HEAD>

<BODY>
<FORM ACTION="Verificar.asp" METHOD="post">
Ingrese su login:<BR>
<INPUT TYPE="text" NAME="Login"><P>
Ingrese su contraseña:<BR>
<INPUT TYPE="text" NAME="Clave">
<BR>
<BR>
<INPUT TYPE="submit">
</FORM>
</BODY>

66
Creando Sitios de Comercio Electrónico

El contenido de Verificar.asp, sería:

<HEAD>
<TITLE>Verificando la contraseña </TITLE>
</HEAD>
<BODY>
<%
strLogin = Request.Form("Login")
strClave = Request.Form("Clave")

Response.Write "<H1>Verificando al usuario </H1>"

If strLogin = "Gustavo" and strClave = “gato” Then


Response.Write "Bienvenido Gustavo"
Else
If strLogin = "Cesar" and strClave = “coyote” Then
Response.Write "Bienvenido Cesar"
Else
Response.Write "Usted es un usuario normal"
End If
End If
%>
</BODY>

67
Creando Sitios de Comercio Electrónico

Instrucción condicional múltiple


Esta orden resulta util, cuando se presenta mas de dos alternativas, para una
determinada condicion.

Es la solucion cuando se presenta ordenes If anidadas.

Por ejemplo la secuencia:

If miVar = "1" Then


Response.Write ("miVar =1")
ElseIf miVar = "2" Then
Response.Write ("miVar =2")
ElseIf miVar = "3" Then
Response.Write ("miVar =3")
ElseIf miVar = "4" Then
Response.Write ("miVar =4")
End If

Podria sustituirse por:

Select Case miVar


Case "1"
Response.Write ("miVar =1")
Case "2"
Response.Write ("miVar =2")
Case "3"
Response.Write ("miVar =3")
Case "4"
Response.Write ("miVar =4")
Case Else
Response.Write ("es mas que cuatro...")
End Select

Ejemplo:

Veamos otra forma de envio de datos, al mismo que vemos la solucion usando la
orden condicional multiple.

68
Creando Sitios de Comercio Electrónico

<HEAD>
</HEAD>

<BODY>
<H1>Registro</H1>
<FORM ACTION="DiaSeleccionado.asp" METHOD="post">
Elija un dia<BR>
<SELECT NAME="Dia">
<OPTION VALUE="Lu">Lunes</OPTION>
<OPTION VALUE="Ma">Martes</OPTION>
<OPTION VALUE="Mi">Miercoles</OPTION>
<OPTION VALUE="Ju">Jueves</OPTION>
<OPTION VALUE="Vi">Viernes</OPTION>
<OPTION VALUE="Sa">Sabado</OPTION>
<OPTION VALUE="Do">Domingo</OPTION>
</SELECT>
<BR><BR>
<INPUT TYPE="submit">
<INPUT TYPE="reset">
</FORM>
</BODY>

DiaSeleccionado.asp

<HEAD>
</HEAD>
<BODY>
<%
varMes = Request.Form("Mes")
Select Case varMes
Case "Lu"
Response.Write "Ha seleccionado Lunes"
Case "Ma"
Response.Write " Ha seleccionado Martes"
Case "Mi"
Response.Write " Ha seleccionado Miercoles"
Case "Ju"
Response.Write " Ha seleccionado Jueves"
Case "Vi"
Response.Write " Ha seleccionado Viernes"
Case "Sa"
Response.Write " Ha seleccionado Sabado"
Case "Do"
Response.Write " Ha seleccionado Domingo"
End Select
%>
</BODY>

69
Creando Sitios de Comercio Electrónico

Instrucción repetitiva Do… Loop

Esta orden repite un bloque de instrucciones cierta cantidad de veces dependiendo


de la validez de una condicion.

La orden puede presentar dos formas:

La primera forma, evalua primero la condicion, de ser valida procedera a ejecutar el


bloque de instrucciones, en su caso continuara con las instrucciones siguientes a
dicha orden.

Do {While <Condición> | Until <Condición>}


' Bloque de instrucciones
Loop

La otra forma ejecuta el bloque de instrucciones al menos una vez, su posterior


ejecucion dependera de la validez de la condicion:

Do
' Bloque de instrucciones
Loop {While <Condición> | Until <Condición>}

Ejemplo:

i = 0
Do While i <5
Response.Write ("i =" & i &" <BR>")
i = i + 1
Loop

El resultado sería:

i=0
i=1
i=2
i=3
i=4

70
Creando Sitios de Comercio Electrónico

Ejemplo:

Un simple calculo de los dias transcurridos a la fecha:

<HEAD>
</HEAD>
<BODY>
<%
varInicio = 1
varDiaHoy = Day(Now())
varNum = 0
Do While varInicio <= varDiaHoy
varNum = varNum + 1
Loop
Response.Write "Total dias " & varNum & “Transcurridos”
%>
</BODY>

71
Creando Sitios de Comercio Electrónico

Instrucción repetitiva While… Wend

Muy similar a la instrucción repetitiva DO. Ejecuta un grupo de instruccioes


mientras la condición sea verdadera.

While { Condición}
' Bloque de instrucciones
Wend

Esta instrucción resulta muy practica cuando se desea recorrer el contenido de una
tabla:

While not rs.EOF


Response.Write ("Nombre =" & rs("NomCliente") &"," &
rs("ApeCliente") &" <BR>")
rs.MoveNext
Wend

La instrucción repetitiva For… Next


Esta orden repite un bloque de instrucciones una cantidad especifica de veces

For var = Inicio To Fin


Bloque de instrucciones
Next

Ejemplo:

For i = 1 To 7
Response.Write(i = & i &" <BR>")
Next

Tambien podemos usar la forma:

For each x in Request.ServerVariables


Response.Write(x &" =" & Request.ServerVariables(x) &" <BR>")
Next

Para ver por ejemplo el estado de las variables del servidor

72
Creando Sitios de Comercio Electrónico

<HEAD>
</HEAD>
<BODY>

<FORM ACTION=Calculos.asp METHOD = post>


<P>Fecha inicial: (mm/dd/yy) <BR>
<INPUT TYPE=text NAME="FNac">
<P>Confirme la fecha actual<BR>
<INPUT TYPE=text NAME="FHoy"><BR>
<INPUT TYPE=submit>
<INPUT TYPE=reset>
</FORM>

</BODY>

Calculos.asp

<HEAD>
</HEAD>

<BODY>
<%
varFNac=Request.Form("FNac")
varFHoy=Request.Form("FHoy")
varFNac = CDate(varFNac)
varFHoy = CDate(varFHoy)

varDias=(varFNac-varFHoy)
varTotal = 0
For x = 0 to varDias
varTotal = varTotal + 20
Next
Response.Write "Total" & varTotal
%>
</BODY>

J En siguiente edición todo lo referido al manejo de tablas, te agradeceremos remitirnos tus


inquietudes, aportarnos con ideas y por que no soluciones. De ti depende que este libro mejore en
contenido.

www.LibrosDigitales.NET

73
Creando Sitios de Comercio Electrónico

Próxima Entrega
Edición 1.1
Dentro de una semana

Prohibida la reproducción total o parcial


Sin nuestro consentimiento
Derechos de copia reservados
www.LibrosDigitales.NET

74

También podría gustarte