Guía de Implantación de la Interfaz FoxWeb

[Contenido]

[Anterior] [Siguiente]

 

 

Introducción

Instalación de FoxWeb para Windows NT

Configuración de FoxWeb para Windows NT

Servidor FoxWeb FWSTART.EXE

Configuración de FoxWeb (archivo FWCONFIG.EXE)

Bibliotecas Run-time de Visual FoxPro

Prueba de Instalación

Aplicación de FoxWeb

Programas de usuario (.prg)

Código HTML


 

 Introducción

La documentación que se presenta en este capítulo es una guía didáctica acerca de FoxWeb versión 1.2, y se ha desarrollado con el propósito de indicarle a usuarios del mismo, los detalles que debe tener en cuenta una vez que haya decidido utilizarlo.

En el desarrollo de este trabajo se ha hecho uso de recursos específicos de software y hardware, bajo los cuales se ha obtenido un correcto funcionamiento de FoxWeb. Estos elementos serán detallados en el siguiente apartado, pero un punto importante que se debe tomar en cuenta es que se debe lograr una correcta instalación y configuración de los mismos.

Para la práctica desarrollada con FoxWeb se ha utilizado una PC con procesador Intel-586 Mhz, con 16 MB en memoria RAM, corriendo bajo la plataforma Windows NT 4.00, haciendo uso del servidor Web Microsoft Internet Information Server versión 2.0 (IIS 2.0), y utilizando también el browser Microsoft Internet Explorer versión 2.0.

 

Instalación de FoxWeb para Windows NT

Una vez que ha obtenido del sitio Web de FoxWeb, el archivo correspondiente para la instalación del mismo, debe realizar la ejecución del programa de instalación (Setup.exe) siguiendo los pasos que se listan a continuación:

  1. Entre a la sesión en el sistema operativo, con derechos de administrador.
  2. Asegúrese de tener previamente instalados y de forma correcta, el servidor Web y Visual FoxPro (aunque éste último no es estrictamente necesario).
  3. Cierre todas las versiones anteriores de FoxWeb, en caso de contar con una instalación previa de éste (inclusive como servicios del sistema).
  4. Cree un directorio especial para alojar todos los archivos de FoxWeb. Y, además, dentro de éste cree un subdirectorio que aloje la descompresión de archivos de instalación de FoxWeb.
  5. Descomprima el archivo obtenido en el sitio Web de FoxWeb. Desde el prompt de DOS, y dentro del directorio de FoxWeb, realice esta acción con el comando pkunzip fw12.zip.
  6. Al descomprimir el archivo de instalación se obtienen una serie de archivos, entre los cuales aparece el archivo SETUP.EXE. Ejecute este archivo haciendo doble clic con el mouse sobre el mismo o digitando SETUP en el prompt de DOS y dentro del directorio correspondiente.
  7. El programa de instalación comenzará a ejecutarse. Siga las instrucciones que le indique el asistente del programa de instalación, indicando con ellas:La versión de Visual FoxPro que se instaló (3.0 ó 5.0), o para la cual se hayan copiado o bajado las correspondientes bibliotecas run-time mencionadas anteriormente.

Configuración de FoxWeb para Windows NT

Servidor FoxWeb FWSTART.EXE

Para iniciar el servidor FoxWeb, se debe utilizar uno de los siguientes métodos:

  1. Ejecute el archivo FWSTART.EXE, que se encuentra en el grupo de programas 'FoxWeb' bajo el icono del mismo nombre. Se iniciará como una aplicación de escritorio o como un servicio del sistema dependiendo de la configuración de FoxWeb (Fwconfig.exe).
  2. Entre al grupo de programas 'FoxWeb' y luego elija el icono Centro de Control de FoxWeb ('FoxWeb Control Center'). Dentro de este proceso entre a la pantalla 'Control Channel' y presione el botón 'Start FoxWeb' (Iniciar FoxWeb).
  3. Si FoxWeb ha sido configurado como un servicio del sistema en Windows NT, entre a Control Panel/Services y ejecute FoxWeb.

De una manera muy similar se ejecutará uno de los siguientes métodos para detener el servidor FoxWeb:

  1. Si FoxWeb corre como una aplicación, presione sobre el icono FoxWeb del escritorio y seleccione 'Close FoxWeb' (Cerrar FoxWeb).
  2. Presione el botón 'Stop FoxWeb' (Detener FoxWeb) en el FoxWeb Control Center.
  3. Si FoxWeb es un servicio del sistema, detenga FoxWeb en Control Panel de Windows NT.
Configuración de FoxWeb (archivo FWCONFIG.EXE)

Para configurar FoxWeb debe correr directamente el archivo Fwconfig.exe o hacer doble clic sobre el icono del 'FoxWeb Control Center'. Cuando este proceso sea cargado aparecerán cuatro subpantallas en las cuales se deben especificar los siguientes datos:

1. Pantalla "Licence"

Aquí aparecerá la fecha en que expira el permiso de uso de FoxWeb (30 días desde la fecha de instalación). Si usted aún no ha comprado el paquete de FoxWeb, no debe indicar ningún dato en el campo 'Software Key', porque todavía no es un miembro registrado de dicho paquete.

2. Pantalla "Error Log"

En ésta se encontrarán todos los datos de los errores ocurridos en la ejecución de programas de usuario, logrando así obtener más detalles para solucionar los mismos.

3. Pantalla "Channel Control"

Se puede utilizar como alternativa para iniciar el proceso del servidor foxweb (FWSTART.EXE), haciendo clic sobre el botón 'Start FoxWeb', así como también detener dicho proceso presionando de igual manera, dentro de esta pantalla, el botón 'Stop FoxWeb'.

Así mismo, permite acceder al archivo FWSTART.LOG el cual reporta los errores y/o datos de las acciones realizadas con FoxWeb.

4. Pantalla "Configuration"

En ésta debe indicar los datos especiales de configuración que se adecuen a su instalación, los cuales son:

Bibliotecas Run-time de Visual FoxPro

El programa servidor residente de FoxWeb, FWSERVER.EXE, fue originalmente compilado como un ejecutable de Visual FoxPro y puede correrse usando directamente dicho paquete o a través de las bibliotecas run-time del mismo. La opción de usar dichas bibliotecas debe especificarse en la pantalla de configuración del Centro de Control FoxWeb.

Los programas de usuario de FoxWeb pueden crearse a través de cualquier editor de texto y deben compilarse manualmente bajo Visual FoxPro, pero el servidor Web no necesita tener instalado este paquete en la misma computadora. Para ello pueden usarse únicamente las bibliotecas run-time de Visual FoxPro, las cuales se obtienen a través de dos formas:

  1. Copiándose desde el directorio de sistema de una computadora que contenga la instalación de Visual FoxPro, hasta el directorio de sistema del servidor Web (en Windows NT, este directorio es System32).
  2. Bajándose dichas bibliotecas desde Internet, en el sitio:

http://www.foxweb.com/bin.

Las bibliotecas tienen que ser acordes a la versión de Visual FoxPro bajo la cual se compilan los programas de usuario. Así:

Nota:

Para compilar manualmente los programas de usuario, se debe mantener abierto el archivo .prg en Visual FoxPro, y luego ir a Program/Compile, con lo cual se logra compilar el programa que se ha indicado. En la parte inferior de la pantalla, aparecerá la cantidad de errores de compilación, y lo ideal es obtener 0 errores.

Prueba de Instalación

Una vez instalado el FoxWeb debe procederse a iniciar y probar el servidor foxweb, que se realiza siguiendo los pasos que se indican a continuación:

  1. Inicie el servidor Web. Si ha sido instalado como un servicio del sistema en Windows NT, éste se iniciará automáticamente cuando se encienda la computadora.
  2. Verificar que los canales del servidor FoxWeb ya han sido ejecutados, corriendo FWSTART.EXE o presionando el icono 'FoxWeb'.
  3. Comprobar que FoxWeb ya ha sido configurado correctamente, ejecutando el archivo FWCONFIG.EXE o presionando el icono del 'FoxWeb Control Center', y revisando todos los datos de la pantalla 'Configuration' (Configuración).
  4. Indicar desde el browser Web, el URL siguiente:

http://Servidor/cgi-bin/foxweb.exe/Programa,

En donde:

Servidor es el nombre del servidor Web o la dirección IP del mismo.

cgi-bin es el nombre del directorio dentro del cual se colocan los escritos CGI.

foxweb.exe es el escrito CGI de FoxWeb.

Programa es el llamado al programa de usuario que se ejecutará.

El llamado al programa de usuario a ejecutarse se hace a través de una cadena especial, así: procedimiento@c:/dir_foxweb/programa?, en donde:

  • procedimiento, indica el nombre del procedimiento a ejecutarse dentro del programa .prg.

    c:/dir_foxweb, indica la ruta completa en donde se encuentra el programa .prg que se ejecuta

    programa?, indica el nombre del programa .prg que se ejecuta.

  • Así por ejemplo, el URL para ejecutar el programa "customer" que se incluye como ejemplo en los archivos de instalación de FoxWeb, es el siguiente:

    http://Servidor/cgi-hl/foxweb.exe/cust_list@ c:/dir_foxweb/customer?

    En donde el 'cust_list' es el procedimiento que despliega una lista de todos los clientes que se encuentran registrados dentro de la base de datos. Después del caracter '@' se indica la ruta completa donde se localiza el programa customer.prg.

    El programa "customer.prg" realiza el llamado de instrucciones Visual FoxPro mediante procedimientos especialmente creados para llamar a funciones de FoxWeb, de FoxPro o de Visual FoxPro, y así conectarse a la base de datos, de tal manera que ésta reciba nuevos datos o que los que ya contenga puedan ser consultados, modificados o borrados.

    Aplicación de FoxWeb

    Programas de usuario (.prg)

    Creación de tablas .dbf

    El programa de usuario con extensión .prg es básicamente el que realiza la conexión con las bases de datos o tablas FoxPro/Visual FoxPro mediante el uso del lenguaje de programación propio para acceder así a los datos dentro de bases de datos de este tipo. La extensión .dbf es la propia de las bases de datos creadas mediante los lenguajes antes mencionados.

    Para realizar dicha conexión, dentro del programa de usuario se verifica de manera opcional, a través de sentencias FoxPro, la existencia de las tablas .dbf a las cuales se desea acceder, y en caso de que éstas no existan, pueden enviarse también las sentencias que ordenen la creación de tablas que alojarán los datos.

    Este código de FoxPro puede verse incrustado en los programas .prg, así:

  • IF !FILE('Tabla.dbf')

    CREATE TABLE Tabla FREE;

    (Campo1 C(#caracteres), Campo2 N(#ent, #dec), Campo3 M)

    ENDIF

  • Funciones de FoxWeb invocadas desde programas .prg

    Todos los datos de entrada, los resultados y las funciones de FoxWeb pueden ser invocados desde los programas de usuario .prg, los cuales son creados dentro de cualquier editor y compilados bajo el ambiente de programación Visual FoxPro.

    Antes de poder utilizar un programa de usuario, debe compilarse y como resultado de ello se esperará obtener 0 errores. Esta compilación se puede dar de dos formas:

    1. Creando el programa en el ambiente Visual FoxPro, indicándole luego en el menú las instrucciones: Program/Compile.
    2. De manera simultánea al momento de hacer la requisición URL del programa .prg, el cual se compilará si en la pantalla 'Configuration' del 'FoxWeb Control Center' se ha indicado la ruta completa de VFP.EXE.

    Los programas .prg aceptan la mezcla del lenguaje propio de Visual FoxPro que se utiliza para colocar o extraer datos de las tablas, así como también el de FoxWeb, el cual como se explicó anteriormente, posibilita la interfaz necesaria de bases de datos FoxPro y Visual FoxPro con el Web.

    Una mezcla de código FoxPro y FoxWeb se muestra en el ejemplo siguiente:

  • * Variables privadas

    PRIVATE nombre, e_mail, error, Arreglo

    error = ''

    M.nombre = FormField('nombre')

    M.e_mail = FormField('e_mail')

    * Validación de datos

    IF EMPTY(M.nombre)

  • error = M.error + '<L1><I>El nombre no tiene ningún dato.</I></L1>'
  • * Selecciona los valores del Campo3 que cumplan con la condición Campo1=Variable

    Variable = 'Ocho'

    SELECT Campo3 FROM Tabla WHERE Campo1 LIKE 'Ocho'

    INTO ARRAY Arreglo

    * Despliegue de resultados en el browser Web con formato HTML

    html_out = MergeTxt(M.Arreglo)

    * Final del programa

    RETURN

  • Procedimientos dentro de programas .prg

    Los programas de usuario son creados con el propósito de cumplir o desarrollar una o varias acciones sobre los datos contenidos en tablas de FoxPro. Por ello cada programa se constituirá de varios procedimientos, uno para cada acción a realizar.

    Como ya se ha mencionado, dentro de un procedimiento se utiliza, como en todo el código del programa de usuario .prg, una mezcla de sentencias de los lenguajes de programación FoxPro/Visual FoxPro, y de datos/funciones de FoxWeb.

    Así por ejemplo, el código de un procedimiento puede ser:

  • PROCEDURE lista_alumnos

    * Este procedimiento realiza una búsqueda y luego crea una lista de todos los alumnos de una clase. Pertenece al programa ProgAlumnos.prg

    PRIVATE Lista, Texto

    * Crea la tabla Alumnos.dbf para alojar datos de alumnos, si ésta no existe

    DO crea_tabla

    SELECT num_alumno, nombre, clase ;

    FROM Alumnos.dbf;

    ORDER BY nombre;

    * Realiza una búsqueda dentro de la tabla Alumnos.dbf, verificando si ya existen datos dentro de ella

    IF RECCOUNT() > 0

    M.Lista = '<SELECT NAME="Alumnos.dbf" SIZE="10"><OPTION SELECTED VALUE="'+num_alumno+'">'+TRIM(nombre)

    SKIP

    SCAN REST

    M.Lista = M.Lista+'<OPTION VALUE="'+num_alumno+'">'+TRIM(nombre)

    ENDSCAN

    M.Lista = M.Lista+'</SELECT>'

    * Busca el código html de la lista de alumnos dentro de la tabla HTML.dbf

    SELECT Campo_texto FROM HTML WHERE identificador LIKE 'lista_alumnos' INTO ARRAY Texto

    * Si no existen datos dentro de la tabla Alumnos.dbf

    ELSE

    * Busca el código html correspondiente a que no existen alumnos dentro de la tabla

    * HTML.dbf

    SELECT Campo_texto FROM HTML WHERE identificador LIKE 'no_alumnos' INTO

    ARRAY Texto

    ENDIF

    * Asigna el contenido de la variable 'Texto' a html_out, para desplegarlo

    html_out = MergeTxt(M.Texto)

    * Finaliza procedimiento

    RETURN

  • Código HTML

    Funciones de FoxWeb invocadas desde código HTML

    Así como los programas .prg aceptan la mezcla del lenguaje de FoxPro y FoxWeb, el código HTML acepta la mezcla con el código de FoxWeb, posibilitando un despliegue adecuado de los resultados en el browser (browser) Web.

    Desde las páginas HTML también pueden invocarse los datos de entrada, los resultados y las funciones de FoxWeb, simplemente con hacer referencia a los nombres de las mismas. Pero, al combinar sentencias HTML, con los datos y funciones de FoxWeb, este código es llamado Código Merge.

    Código Merge en archivos .htm o en tablas .dbf

    Las páginas Web pueden ser creadas como archivos .htm independientes o pueden ser alojadas dentro campos Memo en tablas .dbf. Esto último se realiza con el propósito de tener un acceso más ordenado a las páginas Web al portarlas dentro de un mismo archivo y así poder localizarlas a través del nombre de campo en que estén localizadas y de un identificador.

    Se puede colocar código merge en un archivo .htm y evaluarlo con la variable html_out, o asignar directamente las cadenas de código a dicha variable para desplegarlo. Así cuando se utiliza la evaluación de archivos .htm, se puede hacer de la siguiente manera:

  • html_out = MergeTxt(ReadFile('c:\TextoHTML.htm'))
  • O cuando se asigna directamente el código merge a la variable html_out para ser desplegado:

  • html_out = 'Content-type: text/html'+chr(10)+chr(10);

    +'<HTML><HEAD><TITLE>Ejemplo1</TITLE></HEAD>'+chr(10);

    +'<BODY><H1>Resultados de Ejemplo1</H1>'+chr(10);

    +'<HREF="<<STRTRAN(CGI.ExecutablePath+'/'+CGI.ProgramPath+'ProgramaX?',' ','%20')>>">[ Ejecutar ProgramaX ]'+chr(10);

    +'<HR>'+chr(10);

    +'<ADDRESS>'CGI.ServerAdmin'</ADDRESS>'+chr(10);

    +'</BODY></HTML>'

  • También se puede colocar código merge en campos memo de tablas .dbf, así un registro dentro de un campo puede contener:

  • <HTML>

    <HEAD>

    <TITLE>Ejemplo2</TITLE>

    </HEAD>

    <BODY><H1>Resultados de Ejemplo2</H1>

    <PRE>

    Nombre : <B>M.nombre</B>

    País : <B>M.pais</B>

    </PRE>

    <HREF=<<STRTRAN(CGI.ExecutablePath+'/Procedimiento@'+CGI.ProgramPath+'ProgramaY?', ' ', '%20')>>">[ Ejecutar ProgramaY ]

    <HR>

    <ADDRESS>'CGI.ServerAdmin'</ADDRESS>

    </BODY></HTML>'

  • Este código merge es en definitiva el que coloca todas las etiquetas HTML a el texto resultante de la conexión con las bases de datos.

    Como ejemplo del código merge correspondiente al código del procedimiento presentado en un apartado anterior, para realizar la acción de desplegar una lista de alumnos en el browser Web, se tiene lo siguiente:

  • * Código merge del campo con identificador 'lista_alumnos'.

    * Crea la lista de alumnos de una institución.

    Content-type: text/html

    <HTML>

    <HEAD><TITLE>Ejemplo de FoxWeb: Lista de Alumnos</TITLE></HEAD>

    <BODY>

    <H1>Lista de Alumnos</H1>

    <FORM ACTION="<<UrlEncode(CGI.ExecutablePath+'/consulta_datos_un_alumnos@'+

    CGI.ProgramPath+'ProgAlumnos?')>>" METHOD="POST">

    <<M.Lista>>

    <P><INPUT TYPE="SUBMIT" VALUE="Seleccionar"></P>

    </FORM>

    <A HREF="<<UrlEncode(CGI.ExecutablePath+'/menu_principal@'+

    CGI.ProgramPath+'ProgAlumnos?')>>">[Menú Principal]</A></B></P>

    </BODY>

    </HTML>

    * Código merge del campo con identificador 'no_alumnos'

    * Despliega un mensaje de la no existencia de alumnos dentro de la lista.

    Content-type: text/html

    <HTML>

    <HEAD><TITLE>Ejemplo de FoxWeb: Aún no ha sido registrado ningún Alumno</TITLE></HEAD>

    <BODY>

    <H1>Aún no ha sido registrado ningún Alumno</H1>

    <P><B><AHREF="<<UrlEncode(CGI.ExecutablePath +’/menu_principal@'+

    CGI.ProgramPath+'ProgAlumnos?')>>">[Menú Principal]</A></B></P>

    </BODY>

    </HTML>


  • [Contenido] [Anterior] [Arriba] [Siguiente]