Visual FoxPro 6.0: Novedades y Mejoras

Por Alberto Rodríguez
© Copyrights 1998 by FoxPress, All rights reserved
FoxPress, Junio 1998

Visual FoxPro 6.0 no supone un cambio radical respecto de la anterior versión sino únicamente una mejora en sus diversas funcionalidades y una adaptación al mundo internet y al mundo de los objetos. Esta versión hace más atractivo a los desarrolladores el tratamiento de los datos en los entornos COM.

Visual FoxPro 6.0 es un paso más en la evolución de este producto desde un entorno de aplicaciones monousuario o de redes pequeñas centradas en los datos hacia una herramienta orientada a objeto diseñada para la construcción de la lógica del negocio en los entornos multi tier con una fuerte orientación hacia los tratamientos intensivos de datos en Internet

Todo parece indicar (Nota: este artículo se está haciendo sobre una versión Beta y el producto definitivo puede sufrir cambios respecto de lo que aquí se comenta) que existirá una versión Profesional y otra Empresarial. La versión Empresarial, por la información que nos ha llegado, tendrá una serie de herramientas de diseño para crear consultas y tablas en servidores como Oracle y SQLServer que automáticamente te generarán las correspondientes órdenes en un Lenguaje Común de Descripción de Datos. (Da la impresión de que vendrá dotada de algún tipo de herramienta CASE o similar) y un depurador para testear y depurar Procedimientos Almacenados en SQL Server y Oracle.

En este primer artículo que se ha realizado sobre una versión beta comentaremos de forma genérica cada uno de sus aspectos y en posteriores artículos los iremos viendo más en detalle.

Las principales ‘novedades’ podríamos encuadrarlas en:

Interoperabilidad con otras herramientas e Internet:

  • Mejoras en el Servidor de Automatización
  • Soporte para Documentos Activos
  • Soporte para Drag and Drop en el OLE

    Mejoras en la productividad para el desarrollador:

  • Galería de componentes
  • Control de rendimiento del código
  • Un Objeto Proyecto
  • Nuevos Asistentes y Builders
  • Un Framework
  • Las FoxPro Foundation Class

    Mejoras en la programación:

  • Soporte para JPG y GIF
  • Métodos Accesss y Assign
  • Nuevas órdenes y mejoras en las existentes
  • Mejor soporte para el año 2000
  • Controles antiguos y controles nuevos

    Interoperabilidad con otras herramientas

    Mejoras en el Servidor de Automatización

    VFP 5.0 ya era un Servidor de Automatización ActiveX y podías hacer Servidores out of Process (.EXE) o in process (.dll). La nueva versión soporta ahora el Apartment Model Threading con lo que se podrá integrar en los procesamientos de transacciones soportado por el Microsoft Transation Server 2.0

    Soporte para Drag & Drop en el OLE

    Visual FoxPro 5.0 soportaba Drag and Drop entre formularios y controles. Este tipo de Drag & Drop era propietario de VFP (no podía dialogar con otras aplicaciones diferentes de VFP). Esta nueva versión soporta verdadero OLE Drag and Drop por lo que se puede hacer Drag & Drop con otras aplicaciones como Excel y Word.

    Soporte para Documentos Activos

    Los Documentos Activos son una forma de diseñar tus aplicaciones de forma que puedan funcionar en Internet. Puedes usar Documentos Activos para ejecutar formularios creados con Visual FoxPro y que contiene código FoxPro directamente desde dentro de Microsoft Internet Explorer.

    En Visual Basic, los Documentos Activos son meros formularios que han sido modificados ligeramente para soportar posibilidades específicas de Internet Explorer. Los Documentos Activos de Visual FoxPro son sustancialmente diferentes ya que se basan en una nueva clase no visual llamada ActiveDoc que actúa más como un objeto aplicación controlando los eventos para que corran los formularios de VFP dentro del browser. Sin embargo, no es necesario realizar una conversión de los formularios. Se han realizado algunos cambios en las propiedades de algunos objetos para adaptarlos al estándar del Interfaz de Internet como unas nuevas propiedades de los formularios como son ScrollBars (que tanto han echado de menos algunos en las anteriores versiones) y TitleBar

    Es importante entender que el ActiveDoc de Visual FoxPro que se ejecuta dentro del Explorer es una aplicación (.app) que se está ejecutando desde VFP. Debido a esto se necesita el run-time. Por tanto, los Active Documents son más útiles en intranets donde las limitaciones de ancho de banda a la hora de bajarse ficheros muy grandes son menores. La buena noticia es que los archivos necesarios para que funcionen sólo es necesario que se ejecuten una sola vez.

    Mejoras en la productividad para el desarrollador

    Galería de Componentes

    La Galería de Componentes es un contenedor de objetos como librerías de Clases, formularios, botones, etc... La Galería de Componentes también tiene nuevas clases. Se puede usar la Galería de Componentes para organizar componentes en objetos como proyectos, aplicaciones u otro tipo de agrupaciones. Estas agrupaciones visuales se pueden adaptar a tus necesidades de forma que puedes duplicar, añadir o quitar objetos dentro de esta Galería. Puedes acceder a cada uno de los componentes desde esta Galería y el mismo componente se puede encontrar en diferentes lugares. Por ejemplo, un botón podría aparecer en un proyecto de la Galería de Componentes o en más y podría encontrarse en otro grupo que se podría llamar herramientas en la que se encuentran todos los botones que usas. Se puede usar la Galería de Componentes para todas las funciones para las que usas el Project Manager, Class Browser, y Form Controls toolbar. Cada una de estas herramientas se orienta demasiado a la funcionalidad que le es propia pero con la Galería de Componentes puedes controlar mejor las relaciones entre los componentes y muchas de las formas de comportarse de los mismos desde un nivel abstracto o desde un aspecto más visual.

    La Galería de Componentes puede tener cualquier elementos de Visual FoxPro incluyendo documentos locales y remotos, archivos o carpetas, Servidores de Automatización como Microsoft Excel y Word, y archivos y direcciones HTML. Se pueden incluir .prg, clases, asistentes, etc..

    Control de rendimiento del código

    Con esta utilidad puedes ver qué líneas de código se ejecutan y con qué frecuencia y de esta forma puedes acotar los lugares de tu aplicación donde se ralentiza más su funcionamiento y optimizarla. Esta utilidad se divide en dos partes: una unidad de control que puedes adaptar a tus necesidades y una aplicación multiventana que puedes usar para analizar y correr proyectos. Esta utilidad deja muchos de sus resultados en un fichero de tipo log al que se puede acceder con

    SET COVERAGE TO mifichero.log

    Un Objeto Proyecto

    En las versiones anteriores de VFP la única forma de acceder a un proyecto era a través de la manipulación directa de la tabla del archivo del proyecto. En Visual FoxPro 6.0 se puede acceder a un proyecto de forma programática permitiéndolo manipular como si fuera un objeto. El proyecto se puede manipular en tiempo de diseño y en tiempo de ejecución sin que esté visible el Project Manager. Ahora, sin abrir el Project Manager se podría:

  • Añadir y borrar archivos de un proyecto
  • Determinar el número de archivos de un proyecto y su tipo.
  • Abrir y modificar los archivos del proyecto
  • Cambiar propiedades del proyecto
  • Cambiar propiedades de los archivos del proyecto
  • Recompilar el proyecto, exe ó .dll

    Nuevos Asistentes y Builders

    Dos asistentes de Aplicaciones

    El nuevo Asistente de Aplicaciones te permite establecer tu propio Framework. Por compatibilidad, también puedes trabajar con el viejo asistente.

    Un Asistente de Conexiones

    Este asistente incluye el Asistente de Generación de código y el de Reverse Engineering. Estos asistentes te permiten manejar con facilidad las relaciones entre las clases de Visual FoxPro y la modelación del Microsoft Visual Modeler.

    Asistente de Base de Datos

    Este asistente se puede usar no sólo para crear Bases de Datos y tablas sino también para crear índices, relaciones, etc...

    El Asistente de Ejemplo

    Te permite crear tus propios Asistentes

    El Asistente para la Publicación en la Web

    Te permite generar páginas HTML.

    En los viejos Asistentes se han hecho múltiples mejoras como el soporte de MS Graph 8.0 en el Asistente de Gráficos. El Asistente de Mail Merge ya se integra con Word 8.0 estableciendo una verdadera automatización mediante VBA., etc...

    El Framework

    Un Framework lo podríamos definir como un entorno de trabajo que te diseñas a medida. VFP 6.0 nos permite establecernos ese entorno de trabajo mediante el Asistente de Aplicaciones o a través de la opción New Application de la Galería de Componentes. En VFP 5.0 ya podíamos establecernos un entorno de trabajo mediante:

  • El Proyecto
  • El fichero inicio.prg que establecía los SET globales , el logo de entrada, etc..
  • Un menú principal
  • El objeto aplicación con el que se puede ejecutar el menú principal, los formularios, las barras de herramientas, etc...

    Con VFP 6.0 además de lo anterior tenemos:

  • Un fichero principal para todos los INCLUDE que es fácil de acceder y está accesible a toda la aplicación.
  • Un archivo opcional de configuración (config.fpw) para ciertos tipos de aplicaciones.
  • La clase ProjectHooks para controlar los eventos relacionados con el proyecto.
  • Una Meta_tabla basada en la información del proyecto con todos los elementos que incluye.
  • Un Application Builder para facilitar añadir nuevos componentes al proyecto.

    Las FoxPro Foundation Class

    Son un conjunto de clases (casi 100) con el código fuente que Microsoft deja que los programadores usen en sus aplicaciones. Habrá que verlas con detalle, pero ya se puede adelantar una clase para el tratamiento del Word 6 y 8, una clase para convertir formularios o reports a HTML. Muchas de estas clases han sido escritas por Ken Levy

    Mejoras en la Programación

    Soporte de GIF y JPG

    No sólo se pueden guardar en los .DBF (ya se podía antes) sino que se pueden visualizar, imprimir, usar en los reports, en los formularios, etc...

    Métodos Access y Assign

    Estos métodos te permiten ejecutar código cuando el valor de una propiedad es consultada o cuando se intenta cambiar el valor de una propiedad.

    Mejoras en el lenguaje

    Hay multitud de nuevas órdenes relacionadas con las nuevas posibilidades de VFP en el campo de los Documentos Activos, los nuevos ganchos del Proyect Manager, el Drag & Drop mediante OLE, las mejoras en el Servidor de Automatización ActiveX que no mencionamos por que nos excederíamos de la finalidad de este artículo.

    De las nuevas opciones a las que se le ha dotado al viejo lenguaje destacan:

    El ALTER TABLE ahora soporta una cláusula FOR para el ADD PRIMARY KEY y ADD FOREIGN KEY con lo que se pueden crear índices primarios y foráneos filtrados

    APPEND FROM te permite añadir desde Excel 97

    COMPILE DATABASE hace un pack de los campos memo para quitar el espacio inutilizado de la Base de Datos.

    CREATE FORM tiene ahora una cláusula AS que te permite crear un formulario desde otro formulario visual de una librería de clases.

    El Objeto Formulario ahora tiene barras de scroll.

    La función GETDIR() ha sido mejorada para dotar de una mayor información de los directorios.

    La orden REPORT ahora soporta PREVIEW IN SCREEN que te permite poner el Preview en la pantalla principal de FoxPro.

    La función Agetfileversion() que se encontraba en la Foxtools se ha pasado a FoxPro.

    Ahora los errores de Protección General (GPFs) que producen los ActiveX situados en formularios se pueden controlar desde dentro de VFP. El error que los controla es el Error 1440.

    Ahora podrás distribuir el Report wizard y el Label wizard. En el campo de la automatización puedes distribuir el Pivot Table, Graph, Mail Merge, y Data Import.

    Mejoras en el Año 2000

    En Visual FoxPro 5.0 cuando ejecutabas la orden SET CENTURY TO sin más parámetros la documentación te dice que te devuelve la información del siglo actual cosa que es falsa pues siempre te devuelve 20 y eso no es válido para el siglo 21. En Visual FoxPro 6.0 esto ya ha sido solucionado.

    Esto se ha solucionado con el SET STRICTDATE

    También en VFP 6.0 la opción por defecto del ROLLOVER para el SET CENTURY ha cambiado a los dos últimos dígitos del año actual más 50

    Controles Antiguos y Controles nuevos

    Todos los que han trabajado con controles saben los múltiples problemas que crean sobre todo en los procesos de cambios de versión pues operaciones que con las versiones anteriores funcionaban dejan de funcionar con las versiones nuevas pues han cambiado las propiedades, los métodos, etc...

    Para evitar lo anterior, esta versión, viene con nuevas versiones de los controles viejos (manteniendo los métodos y propiedades) y nuevas versiones del control (con otro nombre) con nuevas funcionalidades y nuevos métodos y propiedades de esta forma el traspaso de una versión a otra se hace con menos traumas.

    Y respecto a los traspasos de VFP 5.0 a VFP 6.0

    En Visual FoxPro 6.0 las aplicaciones correrán igual que en VFP 5.0. Si el código de 5.0 contiene referencias a los system menu pads y barras (como _msystem), se deberá recompilar el código. Se podrá crear aplicaciones en VFP 6.0 y correrlas en VFP 5.0.

    El formato de los menues(.mnx) ha sido ligeramente modificado para acomodarse a los documentos activos