e-CRM y El DataMining ASP y Visual InterDev

Anuncio
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
([email protected],
[email protected]), 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
Compra de Dominio en GrapPeru.com, incluye mantenimiento
Servicio en Hosting en GrapPeru.com, 60 Mb
soporte para ASP y Access o SQL Server
25 cuentas de correo POP3
US$ 65 mes
US$ 20 año
US$ 180 año
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
CIUDAD
Entero
Carácter
4
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
IDDESTINO
Entero
TIPO
Carácter
NOMBRE
Carácter
PRECIOCOSTO
Monetario
PRECIOVENTA
Monetario
FECHAINICIO
DateTime
FECHATERMINO
DateTime
CATEGORIA
Carácter
FECHACONFIRMACION DateTime
CUPOS
Entero
VIGENTE
Entero
5
4
1
100
8
8
8
8
1
8
4
4
4
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
IDPROVEEDOR
IDPAQUETE
NOMBRE
PRECIOCOSTO
FECHA
Entero
Entero
Carácter
Carácter
Monetario
DateTime
4
4
5
100
8
8
4
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
NOMBRE
CIUDAD
TIPO
EMAIL
URL
Entero
Carácter
Carácter
Carácter
Carácter
Carácter
4
50
20
2
40
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
APELLIDO
NOMBRE
EMAIL
CLAVE
FECHANAC
SEXO
PAIS
CIUDAD
TIPOS
Carácter
Carácter
Carácter
Carácter
Carácter
DateTime
Carácter
Carácter
Carácter
Carácter
5
40
40
40
20
8
1
20
20
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
IDCLIENTE
IDPAQUETE
FECHA
CANTIDAD
TIPOPAGO
TOTALVENTA
DESCUENTO
TOTALNETO
CONFIRMADO
ANULADO
Carácter
Carácter
Carácter
DateTime
Entero
Carácter
Monetario
Monetario
Monetario
Lógico
Lógico
5
5
5
8
4
1
8
8
8
1
1
4
4
4
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
VALOR
Carácter
Carácter
20
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
strDir
= Request.Form ("txtNombre")
= 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
Byte
Rango
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
Cbool
Cbyte
Ccur
Cdate
CDbl
Cint
CSng
CStr
Convierte un dato al tipo:
Boolean
Byte
Currency
Date
Double
Int
Sigle
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
<P>Pi
<P>Pi
<P>Pi
</BODY>
es
es
es
es
<%=
<%=
<%=
<%=
TipoPi1
TipoPi2
TipoPi3
TipoPi4
%>
%>
%>
%>
y
y
y
y
Pi
Pi
Pi
Pi
retorna
retorna
retorna
retorna
40
<%=
<%=
<%=
<%=
strPi %> </P>
dblPi %> </P>
intPi %> </P>
strPi2 %> </P>
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
vbEmpty
vbNull
vbInteger
vbLong
vbSingle
vbDouble
vbCurrency
vbDate
vbString
VbObject
VbError
VbBoolean
vbVariant
vbDataObject
vbDecimal
vbByte
vbArray
Valor
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
17
8192
Descripcion
no asignaron un valor
Contiene valor nulo
Entero
Largo
Single
Double
Currency
Date
String
Object
Error
Boolean
Variant
Acceso de los Datos
Decimal
Byte
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
1
2
3
4
vbGeneralDate
vbLongDate
vbShortDate
vbLongTime
vbShortTime
Formato normal.
Formato de fecha largo
Formato de fecha corta
Hora en formato largo
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
dHoy
dHoy
dHoy
dHoy
dHoy
antes de estructurar: 26/02/2002 11:47:18 AM
estructurado en 0 =26/02/2002 11:47:18 AM
estructurado 1 =Martes 26 de Febrero de 2002
estructurado 2 =26/02/2002
estructurado 3 =11:47:18 AM
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
2
3
4
5
6
7
-
domingo (valor predefinido)
lunes
martes
miércoles
jueves
viernes
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
VbUseSystem
Valor
0
VbFirstJan
VbFirstFourDays
1
2
VbFirstFullWeek
3
Descripcion
Utiliza el soporte de Lenguaje Nacional (NLS), señalada
en la API
Inicia la semana el 1 de enero (por defecto)
Comienza con la semana que tiene al menos, cuatro dias
en la primera semana.
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
Response.Write
Response.Write
Response.Write
Response.Write
Response.Write
Response.Write
Response.Write
Response.Write
Response.Write
Response.Write
("dHoy =" & dHoy &" <BR>")
("yyyy =" & DatePart ("yyyy", dHoy) &" <BR>")
("m =" & DatePart ("m", dHoy) &" <BR>")
("q =" & DatePart ("q", dHoy) &" <BR>")
("y =" & DatePart ("y", dHoy) &" <BR>")
("d =" & DatePart ("d", dHoy) &" <BR>")
("w =" & DatePart ("w", dHoy) &" <BR>")
("ww =" & DatePart ("ww", dHoy) &" <BR>")
("h =" & DatePart ("h", dHoy) &" <BR>")
("n =" & DatePart ("n", dHoy) &" <BR>")
("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
Response.Write ("dHoy
" <BR>")
Response.Write ("dHoy
dHoy) &" <BR>")
Response.Write ("dHoy
<BR>")
Response.Write ("dHoy
& " <BR>")
Response.Write ("dHoy
<BR>")
Response.Write ("dHoy
&" <BR>")
=" & dHoy &" <BR>")
más 10 días =" & DateAdd ("d", 10, dHoy) &
menos 10 días =" & DateAdd ("d", -10,
más 3 meses =" & DateAdd ("m", 3, dHoy) &"
menos 3 meses =" & DateAdd ("m", -3, dHoy)
más 2 horas =" & DateAdd ("h", 2, dHoy) &"
menos 2 horas =" & DateAdd ("h", -2, dHoy)
Al ejecutar se obtiene:
dHoy
dHoy
dHoy
dHoy
dHoy
dHoy
dHoy
=26/02/2002 11:44:59 AM
más 10 días =08/03/2002 11:44:59 AM
menos 10 días =16/02/2002 11:44:59 AM
más 3 meses =26/05/2002 11:44:59 AM
menos 3 meses =26/11/2001 11:44:59 AM
más 2 horas =26/02/2002 01:44:59 PM
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
var2
var1
var1
var1
=30/08/1970
=26/02/2002
al var2 es 11503 días
al var2 es 378 meses
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 =" &
Response.Write ("Para var1
Response.Write ("Para var1
Response.Write ("Para var1
Response.Write ("Para var1
WeekDay(var1, 1) &" <BR>")
Response.Write ("Para var1
WeekDayName(WeekDay(var1),
var1 &" <BR>")
el día es" & Day(var1) &" <BR>")
el mes es" & Month(var1) &" <BR>")
el año es" & Year(var1) &" <BR>")
el día de la semana es" &
el nombre del dia es" &
falso, 1) &" <BR>")
54
Creando Sitios de Comercio Electrónico
Al ejecutar se obtiene:
var1
Para
Para
Para
Para
Para
=30/08/1970
var1 el día es
var1 el mes es
var1 el año es
var1 el día de
var1 el nombre
30
8
1970
la semana es 1
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: "
ElseIf hora > 12 and hora < 20 then
Response.Write ("<B>Buenas Tardes</B>, son las:
ElseIf hora > 19 and hora < 24 then
Response.Write ("<B>Buenas Noches</B>, son las:
ElseIf hora >= 0 and hora < 7 then
Response.Write ("<B>Buenas Noches</B>, son las:
End If
%>
Al ejecutar obtenemos:
Buenos Dias, son las: 12:00:11 PM
57
& Time())
"& Time())
"& Time())
"& Time())
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
0,1
0,2
0,3
1,0
1,1
1,2
1,3
2,0
2,1
2,2
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
0
1
2
3
Linea
electrodomesticos
electrodomesticos
electrodomesticos
electrodomesticos
Item
Cantidad
lustradora
10
tostador
12
Carolina Herrera40
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
ElseIf (condición) Then
' Bloque de instrucciones
ElseIf (condición) Then
' Bloque de instrucciones
ElseIf (condición) Then
' Bloque de instrucciones
End If
1
2
3
4
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
ElseIf miVar = "2" Then
Response.Write ("miVar
ElseIf miVar = "3" Then
Response.Write ("miVar
ElseIf miVar = "4" Then
Response.Write ("miVar
End If
=1")
=2")
=3")
=4")
Podria sustituirse por:
Select Case miVar
Case "1"
Response.Write
Case "2"
Response.Write
Case "3"
Response.Write
Case "4"
Response.Write
Case Else
Response.Write
End Select
("miVar =1")
("miVar =2")
("miVar =3")
("miVar =4")
("es mas que cuatro...")
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
Descargar