Share via


Visual FoxPro como aplicación cliente

Como programador de Visual FoxPro, probablemente le resultará natural diseñar sus aplicaciones en torno a las herramientas visuales de diseño del programa. Por ejemplo, probablemente concibe la interfaz de usuario de su aplicación en términos de formularios, menús e informes de Visual FoxPro. Además, al desarrollar aplicaciones en Visual FoxPro, pensará almacenar los datos de la aplicación en tablas de Visual FoxPro.

Una forma de integrar Visual FoxPro en una aplicación de ámbito empresarial es usar las herramientas visuales de diseño, pero mejorándolas con las posibilidades de otros productos. Otra forma consiste en crear la apariencia de la aplicación con Visual FoxPro, pero extendiendo las posibilidades de almacenamiento de datos aprovechando las posibilidades de otros programas o de opciones de almacenamiento de datos externas a Visual FoxPro. También puede hacer un upsizing (conversión a SQL) de los datos de Visual FoxPro transfiriéndolos a un servidor de base de datos.

Extender las herramientas visuales de diseño de Visual FoxPro

Las clases de base de controles de Visual FoxPro se diseñaron para incorporar la inmensa mayoría de las necesidades de interfaz de aplicación. Visual FoxPro proporciona todos los controles básicos y los elementos de interfaz necesarios para crear una aplicación para Windows estándar. Sin embargo, a menudo verá que su aplicación requiere objetos o controles que no poseen las clases de base de Visual FoxPro. Si es así, puede extender las herramientas visuales de diseño mediante la creación de subclases y el uso de controles ActiveX.

Crear subclases

Una característica enormemente eficaz de Visual FoxPro es la capacidad de crear subclases de los controles de base. Al crear una o más subclases puede personalizar los controles de base Visual FoxPro de casi cualquier manera requerida por su aplicación. Esta capacidad incluso permite crear nuevos objetos o controles que combinen las características de otros controles. Por ejemplo, el control de tipo cuadrícula de Visual FoxPro no sólo contiene sus propiedades, métodos y contenedor, sino también aquellos objetos que aparecen en la cuadrícula, como botones, cuadros de texto, etc.

Asimismo, al crear subclases de controles de base, puede extender las posibilidades de Visual FoxPro mediante la creación de objetos que agreguen nuevas características a clases de base existentes, o que combinen las posibilidades de varios objetos. Por ejemplo, puede agregar características visuales como marcos o efectos tridimensionales a un cuadro de texto. O puede combinar un control de imagen, botones y un cuadro de texto para crear un control para ver mapas de bits con el que los usuarios pueden desplazarse por varios archivos .bmp. Crear clases personalizadas de esta forma puede ayudarle a administrar el desarrollo en el ámbito de toda la empresa, pues le permite crear controles estandarizados que aparecen en todas las aplicaciones. Para obtener más información acerca de cómo crear subclases, consulte Programación orientada a objetos.

Usar controles ActiveX

Una forma alternativa de crear un control nuevo utilizando subclases de Visual FoxPro es usar un control ActiveX (archivo .ocx). Estos controles se crean independientemente de Visual FoxPro y se pueden integrar no sólo en Visual FoxPro, sino también en muchas otras aplicaciones para Windows.

En efecto, los controles ActiveX son componentes externos que puede integrar perfectamente en su aplicación. El uso de controles ActiveX proporciona varias ventajas:

  • Ahorra el tiempo y esfuerzo necesarios para crear, probar y mantener un control específico de Visual FoxPro para realizar las mismas tareas. Cuanto más eficaz sea el control ActiveX, más tiempo ahorrará.
  • Muchos controles ActiveX ya pueden solicitarse a terceros fabricantes para responder a requisitos comunes de aplicaciones. Por ejemplo, si la aplicación le solicita que muestre un calendario y que permita a los usuarios elegir fechas en él, probablemente puede encontrar un control ActiveX (tal vez varios) que ya realice esta tarea.
  • Se puede usar el mismo control en varios programas. Por ejemplo, si procede, puede usar el mismo control ActiveX en Visual FoxPro y en Visual Basic. Se usan las mismas propiedades y métodos en cada caso para administrar el control, y el control tendrá la misma apariencia en todos los programas, lo cual facilitará a los usuarios el uso del control.
  • Los controles ActiveX proporcionan a menudo acceso a funciones de Windows que de otro modo pueden resultar difíciles o lentas de incluir si se utilizan exclusivamente las herramientas de Visual FoxPro. Por ejemplo, puede buscar controles ActiveX que proporcionen acceso a correo electrónico (usando funciones de la MAPI de Windows), funciones gráficas de Windows de bajo nivel, etc. Al incluir un control ActiveX, puede agregar estos tipos de características a su aplicación en una forma fácil de controlar con las propiedades, los métodos y los eventos de los controles ActiveX.

En resumen, usar los controles ActiveX le permite extender sus aplicaciones no sólo integrando funciones de Windows, sino también agregando una apariencia común entre sus aplicaciones y otras de la misma empresa. Para obtener más información acerca del uso de controles ActiveX, vea Agregar OLE. Para obtener información acerca de cómo crear controles ActiveX propios, vea Acceso a la API de Visual FoxPro.

Integrar funciones de otros programas

Es posible que al desarrollar una aplicación se dé cuenta de que otros programas son los más apropiados para llevar a cabo ciertas tareas. Por ejemplo, Microsoft Word tiene posibilidades únicas para combinar correspondencia, mientras que Microsoft Excel está optimizado para calcular fórmulas complejas y crear fácilmente gráficos a partir de ellas.

En lugar de emular estas posibilidades en Visual FoxPro, puede convertir su aplicación en una solución de ámbito empresarial integrándolas en ella. Así puede resolver las necesidades de su aplicación usando la mejor aplicación para llevarlas a cabo.

Puede integrar las funciones de otras aplicaciones en Visual FoxPro de las formas siguientes:

  • Ejecute un asistente de Visual FoxPro que ponga los datos de Visual FoxPro a disposición de otra aplicación.
  • Escriba programas de Visual FoxPro que usen automatización para comunicarse con datos de otros programas para Windows, compartir dichos datos y controlarlos.

Las siguientes secciones proporcionan detalles acerca de estos métodos de extender las posibilidades de Visual FoxPro.

Usar asistentes

Varios asistentes de Visual FoxPro le permiten integrar datos de Visual FoxPro con las funciones de otros programas para Windows. Por ejemplo, puede enviar cartas modelo a sus clientes con el Asistente para combinar correspondencia. Cuando ejecute el asistente, puede especificar una tabla o vista que contenga datos de Visual FoxPro para usar y, a continuación, exportar los datos a un formato de archivo apropiado (como delimitado por comas, por ejemplo) o especificar que el programa procesador de textos use el proveedor OLE DB de Visual FoxPro para tener acceso a los datos. Si usa Microsoft Word, el asistente incluso iniciará el programa procesador de textos, creará el documento de combinación en blanco y mostrará la barra de herramientas Combinar correspondencia para que vincule campos con los datos de Visual FoxPro.

Asimismo, con Microsoft Excel y Microsoft Query, puede analizar sus datos mediante una tabla dinámica, que resume datos en columnas y le permite reorganizarlos para mostrarlos de distintas maneras. Con el Asistente para tablas dinámicas de Visual FoxPro, puede usar los datos de su aplicación como origen de datos para Microsoft Excel y generar la tabla dinámica en Microsoft Excel.

Usar la automatización

Una forma más eficaz de interactuar con otras aplicaciones es usar la automatización. Con programas de Visual FoxPro, puede tener acceso a los objetos expuestos por otras aplicaciones y después controlarlos estableciendo sus propiedades y llamando a sus métodos. Por ejemplo, Microsoft Excel expone un objeto de aplicación así como hojas, columnas, filas y celdas del objeto de aplicación. Puede manipular directamente cualquiera de estos objetos, incluso puede obtener datos de ellos o establecer datos en ellos. Además, normalmente puede controlar el objeto de aplicación con todos los comandos disponibles en el programa. Por ejemplo, al administrar el objeto de aplicación en Microsoft Excel puede abrir, guardar o imprimir hojas, llamar al asistente para gráficos de Microsoft Excel, etc.

La automatización es una forma particularmente atractiva y eficaz de unir programas para Windows por varias razones:

  • Tiene acceso directo al otro programa, incluidos todos sus objetos y comandos.
  • Puede compartir datos directamente con el otro programa sin tener que exportarlos o convertirlos a otro formato.
  • Puede controlar el otro programa con el modelo familiar de propiedades y métodos.
  • El otro programa no tiene que estar necesariamente a la vista del usuario cuando se invoque. Por ejemplo, puede llamar a Microsoft Excel, colocar algunos datos en celdas, ejecutar un cálculo complejo en los datos, leer el resultado y, a continuación, mostrarlo en Visual FoxPro, todo sin haber mostrado Microsoft Excel. El usuario seguirá viendo exclusivamente Visual FoxPro, a menos que quisiera mostrarle explícitamente Microsoft Excel.
  • Los comandos (métodos y propiedades) para controlar el otro programa están incrustados en programas de Visual FoxPro familiares. No tiene que aprender un lenguaje de programación diferente para poder controlar el otro programa.

La automatización es particularmente eficaz porque es un método ilimitado para trabajar con otros programas. En esencia, la automatización simplemente pone a su disposición los datos y comandos de otras aplicaciones, para que las use de la forma más apropiada para su aplicación.

Un caso de ejemplo ilustra cómo puede integrar varios programas para Windows. Suponga que almacena los datos de clientes y ventas en Visual FoxPro. Le gustaría crear un informe de ventas que resuma las ventas trimestrales.

Una solución sería usar la automatización para copiar los datos de ventas de Visual FoxPro en celdas de una hoja de Microsoft Excel. Entonces puede llamar al asistente para gráficos de Microsoft Excel a fin de crear un gráfico de los datos y copiarlos en el Portapapeles de Windows. Además con la automatización, puede llamar a Microsoft Word y crear o abrir un documento de informe de ventas (si lo crea como un documento nuevo, puede insertar texto estándar almacenado en Visual FoxPro) y, a continuación, pegarlo en el gráfico creado en Microsoft Excel.

Esto es sólo una de las formas de usar la automatización para convertir Visual FoxPro en parte de una solución de ámbito empresarial. Familiarizándose con los objetos y métodos disponibles en los programas que normalmente usa, se le pueden ocurrir muchas más formas de hacer que cada programa mejore las posibilidades de los otros. Para obtener información detallada acerca de la Automatización, consulte "Manipular objetos con Automatización" en Agregar OLE.

Extender las posibilidades de almacenamiento de datos en Visual FoxPro

Las posibilidades de tablas de datos e indizado de Visual FoxPro son generalmente más que apropiadas para los requisitos de una aplicación si le importan la velocidad y el tamaño de bases de datos. Sin embargo, a veces deseará extender Visual FoxPro con datos almacenados en otros formatos. Esto puede ocurrir si:

  • La aplicación tiene que tener acceso a datos heredados que crea y mantiene una aplicación existente. Por ejemplo, suponga que, como parte de su aplicación de ventas, necesita acceso a datos que mantiene una aplicación de contabilidad que se programó con un lenguaje diferente, tal vez incluso en una plataforma diferente.
  • Puede optimizar el acceso a datos con un servidor de base de datos, que puede acelerar el acceso a datos, particularmente para bases de datos muy grandes.
  • Desea compartir datos con otros programas y, por lo tanto, desea almacenar los datos en un formato accesible a todos los programas.
  • Los datos se ajustan mejor al formato de un programa concreto (como una hoja de cálculo). Esto puede ser verdad, por ejemplo, si su aplicación sólo requiere accesos ocasionales a datos que eran mantenidos por el otro programa.

Si los datos que necesita están en formato de hoja de cálculo, documento de procesador de textos u otro programa para Windows, puede tener acceso a los mismos a través de la automatización. Por ejemplo, puede hacer esto si su aplicación requiere un conjunto de cartas modelo. En ese caso, las cartas pueden estar almacenadas como documentos de Microsoft Word y su aplicación puede usar la automatización para llamar a Word, abrir la carta apropiada e insertar o reemplazar el texto cuando sea necesario.

Una aproximación más común al uso de datos externos a Visual FoxPro es usar el proveedor OLE DB para tener acceso a los mismos. El proveedor OLE DB de Visual FoxPro le permite conectarse a los datos en el formato de otros programas, típicamente otros programas de base de datos y consultarlos o modificarlos mediante comandos SQL estándar.

Por ejemplo, si cree que las posibilidades de seguridad y procesamiento de transacciones son una parte vital de su aplicación, debe almacenar los datos con Microsoft SQL Server. Para tener acceso a los datos, defina una conexión a SQL Server mediante el proveedor OLE DB de Visual FoxPro. Entonces podrá ejecutar consultas normales (y otros comandos SQL) como si los datos estuvieran en formato de Visual FoxPro.

Otras aplicaciones pueden tener acceso a los mismos datos y aprovechar las mismas características. Por ejemplo, una hoja de Microsoft Excel puede obtener sus datos de la misma base de datos de SQL Server. La hoja no sólo se beneficiará de las mismas ventajas de rendimiento que su aplicación, también puede aprovechar las características de seguridad y procesamiento de transacciones del servidor, que no están disponibles de otro modo en una hoja Microsoft Excel.

En algunos casos, es posible que desee llegar más lejos y usar comandos SQL específicos del origen de datos al que tiene acceso con el proveedor OLE DB. Por ejemplo, Microsoft SQL Server le permite crear y ejecutar procedimientos almacenados, que pueden manipular datos en el servidor (en lugar de en su aplicación). Para aprovechar los procedimientos almacenados puede enviar instrucciones SQL "nativas" al servidor de base de datos. Los comandos de paso a través de SQL también le permiten realizar tareas de administración del sistema en el servidor, y en algunas instancias se ejecutarán más rápido que instrucciones SQL parecidas ejecutadas en Visual FoxPro.

Para obtener información más detalladas acerca de cómo extender las posibilidades de almacenamiento de datos de Visual FoxPro, consulte la documentación indicada en la tabla siguiente.

Para obtener detalles acerca de Vea
Automatización "Manipular objetos con Automatización" en Agregar OLE
Utilizar datos que no son de Visual FoxPro Acceso a datos remotos en Crear vistas
Uso de Visual FoxPro en un entorno cliente-servidor Diseñar aplicaciones cliente-servidor

Upsizing de datos de Visual FoxPro

Puede elegir guardar sus datos en tablas de Visual FoxPro o en otra plataforma, como un servidor de base de datos. O puede hacer ambas cosas: guardar los datos en tablas de Visual FoxPro mientras realice el desarrollo o hasta que el tamaño de la base de datos sea muy grande, y después trasladar los datos (hacer un upsizing) a otra plataforma.

Por ejemplo, puede crear un prototipo de su aplicación conservando todos los datos en tablas locales de Visual FoxPro. Esto le proporciona la flexibilidad de modificar sus tablas, vistas e índices cuando desarrolla la aplicación sin la complejidad de administrar tablas en un servidor de base de datos. Puede guardar datos de ejemplo en las tablas locales para probar los formularios, informes y otros programas. Cuando la estructura de la base de datos esté terminada, puede hacer un upsizing de los datos a un servidor de base de datos y enviar a producción la aplicación.

Otra forma de trabajar es guardar los datos en tablas de Visual FoxPro sólo mientras sea práctico. Cuando el tamaño de la base de datos sea grande, puede hacer un upsizing (conversión a SQL) y aprovechar el rendimiento optimizado proporcionado por un servidor de base de datos. El punto en el que tiene sentido hacer un upsizing de la base de datos depende de muchos factores, entre ellos: la complejidad de la base de datos, el rendimiento de su equipo local o de la red y las exigencias de la aplicación.

Finalmente puede crear un prototipo de la base de datos en Visual FoxPro y, a continuación, hacer un upsizing para compartir los datos con otras aplicaciones que también pueden tener acceso a un servidor de base de datos. De forma similar, puede hacer un upsizing de la base de datos para aprovechar la seguridad y las posibilidades de procesamiento de transacciones por parte del servidor de base de datos.

Para obtener detalles acerca del upsizing de las bases de datos, vea Upsizing de las bases de datos de Visual FoxPro.

Vea también

Desarrollo para la empresa | Visual FoxPro como origen de datos | Soluciones empresariales de Visual FoxPro | Programación orientada a objetos | Agregar OLE | Acceso a la API de Visual FoxPro | Asistente para combinar correspondencia | Asistente para tablas dinámicas