FoxPro - 01 - El Entorno de Desarrollo de Visual FoxPro

Visual FoxPro es uno de los gestores de base de datos relacionales más rápidos y flexibles del mercado...Descripción com

Views 168 Downloads 7 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

1 - El entorno de desarrollo de Visual FoxPro

Introducción Visual FoxPro es uno de los gestores de bases de datos relacionales más rápidos y flexibles del mercado, disponiendo de un completo entorno de desarrollo totalmente orientado al objeto y altamente integrado en el sistema operativo Windows. Como cualquier otra aplicación Windows estándar, Visual FoxPro soporta interfaces MDI, formularios acoplables, barras de herramientas, ayuda sensible al contexto, múltiples fuentes, acceso a servicios Web, etc. Aparte del acceso a tablas en formato nativo de Visual FoxPro, se puede acceder virtualmente a cualquier fuente de datos cuyo acceso se pueda hacer a través de ODBC (Open Database Connectivity) o bien, OLEDB. Este estándar, definido como Conectividad Abierta de Bases de Datos, permite abrir y consultar diversas bases de datos a través de un conjunto de controladores, utilizando SQL como lenguaje de consulta.

El entorno de desarrollo Toda la interfaz de desarrollo incorporada por Visual FoxPro está orientado a la generación rápida de aplicaciones (Rapid Application Development). El objetivo final es la generación de aplicaciones seguras en un tiempo razonablemente pequeño. Todo esto se consigue dejando que el trabajo a bajo nivel lo efectúe el sistema, quedando para el programador el diseño del aspecto visual y el análisis de la aplicación. Para conseguir este fin, Visual FoxPro incorpora el siguiente conjunto de herramientas:

Administrador de proyectos Visual FoxPro incorpora un potente gestor de proyectos que centraliza la administración de todos los archivos manejados por una aplicación. A partir de la información contenida en un proyecto se generan las aplicaciones que pueden ser distribuidas libremente a todos los usuarios. Además, Visual FoxPro incorpora una versión reducida de InstallShield, herramienta que asiste al programador para crear instalaciones que incluyan toda la información necesaria para instalar esta aplicación en otros ordenadores.

Diseñador de bases de datos Como apoyo al sistema, incorpora un potente diseñador de bases de datos. Esta herramienta maneja bases de datos que actúan como contenedor de información adicional relacionada con tablas, índices, relaciones, reglas de validación, integridad referencial y un sinnúmero más de datos. De esta forma una base de datos mantiene actualizada y centralizada toda la información acerca del comportamiento de las tablas que con ella están relacionadas. Por ejemplo, cada vez que se modifica un registro en una tabla perteneciente a una base de datos, se comprueban las reglas de modificación para esta tabla. Si por cualquier razón no es posible actualizar la tabla porque una de las reglas de validación ha fallado, se devuelve la tabla a su estado original advirtiendo por supuesto al usuario de esta eventualidad.

Diseñador de formularios Totalmente orientados al objeto, permiten diseñar el aspecto gráfico final de una aplicación. Permiten la inclusión de objetos estándar en Windows, tales como casillas de verificación, grupos de opciones, marcos de página, imágenes, controles Activex. Gracias al diseñador de clases visuales, se pueden crear nuevos tipos de controles que pueden ser incorporados como cualquier otro control a un formulario. Gestionan de forma transparente al usuario el entorno de datos asociado para cada formulario. En este entorno de datos es posible incluir cualquier tabla, vista local o remota definida en una base de datos. Pero no solo eso, es posible que cada entorno de datos sea privado para cada formulario. De esta forma es posible abrir varias instancias de un mismo formulario sin que existan problemas de colisión de datos entre las dos instancias definidas.

- 1 - El entorno de desarrollo de Visual FoxPro 1 -

Diseñador de informes y etiquetas A la hora de visualizar datos ya sea por pantalla o impresora, Visual FoxPro incorpora un potente diseñador de informes y etiquetas. Dentro de un informe se pueden definir objetos dentro de las tres bandas cabecera, pie o detalle, y, además, distribuir el informe en varios grupos que muestren el resultado de cálculos sumatorios u otros realizados desde el propio formulario. A estas prestaciones hay que añadir la posibilidad de incluir en el entorno de datos del propio informe cualquier tabla o vista definida en la base de datos, tal como se ha comentado en referencia a los formularios.

Diseñador de menús Este diseñador se utiliza para crear menús personalizados en la aplicación y así sustituir el menú de sistema incorporado por defecto en Visual FoxPro. El sistema utilizado se basa en la creación de unos archivos donde se almacenan las definiciones de menú. A posteriori, la información contenida en estos archivos de menú es analizada por un generador de código con la finalidad de generar de forma automática un programa que genera un menú a partir de estas definiciones.

Asistentes Para usuarios que empiezan, los asistentes pueden ayudar a crear nuevos tipos de archivos de forma sencilla y rápida. No por ello se elimina la posibilidad de modificar los archivos creados, ya que éstos pueden ser alterados posteriormente mediante su diseñador correspondiente. Los generadores de controles ayudan en la creación de nuevos controles insertados en los formularios. Estos generadores se encuentran totalmente abiertos y el usuario puede incorporar sus propios generadores.

Diseñador de consultas y vistas Cuando se trata de recuperar información, los generadores de consultas y vistas constituyen un apoyo indispensable para poder generar expresiones SQL. Si estas sentencias extraen información de la propia base de datos se denominan vistas locales. Cuando estas vistas extraen información de una base de datos externa se denominan vistas remotas.

- 1 - El entorno de desarrollo de Visual FoxPro 2 -

Apariencia de la ventana de sistema El sistema intérprete se basa en la utilización de la ventana de Comandos. Desde esta ventana se escriben sentencias que usualmente provocan una acción por parte del sistema de desarrollo. Así, desde la ventana de comandos se puede abrir tablas, examinar su contenido, crear programas, compilarlos, etc. Aparte de la ventana de comandos, cualquier acción se puede realizar desde el menú de sistema, o bien desde la barra de herramientas activa. Es posible personalizar el menú de sistema y cualquier barra de herramientas, o incluso, crear nuevas barras de herramientas según las necesidades del usuario.

Figura 1 - El entorno de desarrollo

Tipos de archivos Como se ha dicho, el proyecto guarda información acerca de la localización de cada archivo. Como ayuda,a continuación, se presenta una lista de las posibles extensiones asociadas con cada tipo de archivo y una breve descripción de cada tipo. Tipo

Extensiones

Descripción

Relacionadas Núcleo central de desarrollo. Efectúa el seguimiento a todos los archivos relacionados con una aplicación.

Proyecto

PJX, PJT

Base de datos

DBC, DCT

Formulario

SCX, SCT

Archivos de definición de formularios

Bibliotecas de clases visuales

VCX, VCT

Bibliotecas conteniendo clases definidas por el usuario.

Tablas

DBF, FPT

Tablas y archivos memo asociados

Indices

CDX, IDX

Archivos de índice compactos y simples

DCX,

Tabla contenedora de información relacionada con tablas, índices, relaciones, vistas y conexiones.

- 1 - El entorno de desarrollo de Visual FoxPro 3 -

Documentación

ACT

Archivo conteniendo el diagrama de acciones de un archivo PRG generado por el asistente de documentación.

Informes

FRX, FRT

Archivos de definición de informes.

Etiquetas

LBX, LBT

Archivos de definición de etiquetas.

Librerías Windows

DLL

Librería de enlace dinámico Windows

Errores

ERR

Archivo de seguimiento de errores de compilación

Ejecutable

EXE

Archivo ejecutable Visual FoxPro

Macros

FKY

Archivo de definición de macros

Biblioteca API

FLL

Biblioteca de enlace dinámico Windows

Programas

PRG, FXP

Programa fuente y compilado

Ayuda

HLP

Archivo de ayuda gráfica

Memoria

MEM

Archivo de almacenamiento de variables de memoria

Menús

MNX, MNT

Archivos de definición de menús

Menús generados

MPR, MPX

Archivo generado a partir de una definición de menús y su versión compilada.

Control OLE

OCX

Archivo de control ActiveX

Consulta SQL

QPR, QPX

Archivo de consulta SQL y su versión compilada

TBK, BAK

Copias de seguridad de diversos archivos

Texto

TXT

Archivos de texto

Constantes

H

Archivo de constantes predefinidas

Copias seguridad

de

Administración de archivos Desde el menú File (Archivo) se realizan las acciones relacionadas con archivos. Consta de las siguientes opciones: Opción

Descripción

New (Nuevo)

Crea un nuevo archivo de cualquier tipo

Open (Abrir)

Abre un archivo de cualquier tipo

Close (Cerrar)

Cierra el archivo en uso

Save (Guardar)

Actualiza las modificaciones efectuadas al archivo actual en disco

Save as... (Guardar como…)

Salva el archivo actual en disco con un nuevo nombre

Revert (Revertir)

Recupera la versión guardada en disco del archivo actual

- 1 - El entorno de desarrollo de Visual FoxPro 4 -

Cuando se desea crear un nuevo archivo, se muestra el cuadro de diálogo que vemos en la figura siguiente. Este cuadro de diálogo permite seleccionar el tipo de archivo que se desea crear. Existen algunos tipos de archivos que permiten su creación mediante asistentes de modo que se facilita enormemente la tarea de crear nuevos archivos.

Figura 2 - Elección del tipo de archivo nuevo

Wizards (Asistentes) Los asistentes proporcionan el método más eficaz y sencillo de apoyo a los nuevos usuarios en Visual FoxPro. Cubren prácticamente todos los tipos de archivos básicos que se pueden crear, desde tablas a formularios, pasando por informes, consultas, etc. Veamos cuáles son: Asistente

Descripción

Table (Asistente para tablas)

Crea nuevas tablas libres o definidas en una base de datos. Crea archivos de tipo DBF.

Query (Asistente para consultas)

Crea consultas con sentencias SQL almacenadas en archivos de tipo QPR.

Form (Asistente para formularios)

Crea nuevos formularios. Crea archivos de tipo SCX

One-to-Many Form Wizard (Asistente para formularios uno a varios)

Crea formularios con soporte de archivos relacionados de uno a muchos. Crea archivos de tipo SCX.

Report (Asistente para informes)

Crea una nueva definición de informe. El tipo de archivo creado es FRX.

Label (Asistente para etiquetas)

Crea un nuevo archivo de definición para imprimir etiquetas postales. Crea archivos de tipo LBX.

- 1 - El entorno de desarrollo de Visual FoxPro 5 -

Mail Merge (Asistente para combinación de correspondencia)

Crea un origen de datos compatible con el procesador de texto Microsoft Word o cualquier otro.

PivotTable (Asistente para tablas dinámicas)

Crea tablas de hoja de cálculo utilizables desde Microsoft Excel

Import (Asistente para importar datos a tablas)

Importa datos a una tabla procedentes de otro origen.

Documenting (Asistente para documentación)

Genera archivos de texto conteniendo información acerca de los archivos de un proyecto. Permite también efectuar correcciones al código fuente de modo que aplique sangrías a procedimientos o poner en mayúsculas elementos reservados de código.

Upsizing

Crea una nueva base de datos en un servidor SQL Server específico de modo que replique en la medida de lo posible una base de datos Visual FoxPro.

(Asistente para convertir a SQL Server)

Application (Asistente para aplicaciones)

Crea una nueva aplicación basada en las especificaciones detalladas sobre base de datos, tablas, formularios e informes que se han introducido durante la ejecución de este asistente.

Database (Asistente para bases de datos)

Crea una nueva base de datos que contiene tablas basadas en plantillas predefinidas que se muestran como ayuda durante la ejecución de este asistente.

Web Publishing (Asistente para publicación en Web)

Crea un nuevo documento HTML presentando el contenido de una tabla o vista.

Web Services (Asistente para la publicación de servicios Web)

Crea archivos WSDL o WSML a partir de la información obtenida durante la ejecución de este asistente.

Application Builder (Generador de aplicaciones)

Ofrece herramientas adicionales para agregar nuevas funcionalidades en forma de controles o formularios a una aplicación generada con el asistente para aplicaciones.

Graph (Asistente para gráficos)

Crea un nuevo gráfico en Microsoft Graph a partir de la información contenida en una tabla.

Local View (Asistente para vistas locales)

Crea una nueva definición de vista en una base de datos. La información generada por este asistente se guarda en una base de datos DBC.

Cross-Tab (Asistente para tablas de referencias cruzadas)

Crea una consulta en formato hoja de cálculo. Crea archivos de tipo QPR.

Remote View (Asistente para vistas remotas)

Crea una nueva definición de vista remota. El fin es acceder a otro tipo de información contenida a su vez en un servidor de datos. Esta nueva vista se almacena en una base de datos DBC.

- 1 - El entorno de desarrollo de Visual FoxPro 6 -

One-to-Many (Asistente para informes de uno a varios)

Crea una nueva definición de informe relacionando una tabla primaria con otra secundaria. Crea archivos de tipo FRX.

Crear una nueva tabla mediante el asistente Para crear una tabla mediante el Asistente para Tablas, debe proceder de alguna de estas dos formas: 1. Desde el menú Tools (Herramientas), escoja el submenú Wizards (Asistentes). De este menú escoja la opción Table (Tabla). 2. Desde el menú principal escoja del menú File (Archivo), la opción New (Nuevo) CTRL-N ó escoja el botón de comando New (Nuevo) de la barra de herramientas Standard (Estándar). Observe que a continuación se muestra el cuadro de diálogo para la elección del nuevo tipo de archivo a crear. Escoja Table (Tabla) y pulse en el botón de comando Wizard (Asistente). El asistente genera una nueva tabla siguiendo tácitamente una serie de pasos que conducen a confeccionar una tabla y sus índices correspondientes.

Paso 1 - Seleccionar Campos Este paso trata de determinar los campos que se van a definir en la nueva tabla, a partir de unas definiciones estándar aportadas por el propio asistente. De esta forma, se puede crear una nueva tabla basándose en tipos más o menos ajustados a las necesidades del usuario.

Figura 3 - Selección de campos

- 1 - El entorno de desarrollo de Visual FoxPro 7 -

Paso 1a – Selección de base de datos Si no existe una base de datos abierta en el momento de ejecutar el asistente, en este paso se puede escoger entre dejar la tabla como libre o bien agregarla a una base de datos existente. Si se escoge dejar la tabla libre, no se podrán aprovechar las características adicionales de su pertenencia a una base de datos, tal como poder asignar títulos a los nombres de los campos o establecer nombres de campos de más de 10 caracteres.

Figura 4 – Selección de base de datos

Paso 2 - Opciones de campos Puede que las definiciones de campo no se ajusten exactamente a las necesidades del usuario. Para esto existe este paso, permitiendo la modificación de los parámetros definitorios de un campo, como son su nombre, el título, el tipo, el ancho, decimales y soporte de valores nulos. Bien, en cuanto al título, sólo hay que hacer una diferenciación y es que si no hay una base de datos definida y abierta en el sistema, no se puede crear o modificar un título asociado a un campo. Esta es una de las características aportadas por las bases de datos, la posibilidad de ampliar la información relativa a tablas. Otro caso es el nombre del campo, si no existe una base de datos abierta, no se puede ampliar su descripción más allá de diez caracteres. Como se verá mas adelante, es posible asignar nombres de campo hasta 255 caracteres.

- 1 - El entorno de desarrollo de Visual FoxPro 8 -

Figura 5 - Opciones de campos

Paso 3- Indexación Para poder localizar cualquier tipo de información de una tabla es necesario recurrir a la creación de índices. Los índices proporcionan un método rápido de localización de registros basándose en expresiones. La expresión a localizar se va comparando con el contenido del índice hasta localizar el registro cuyo valor en la clave de índice coincide con la expresión buscada.

- 1 - El entorno de desarrollo de Visual FoxPro 9 -

Figura 6 - Indexación

Paso 4 - Finalizar Una vez se han recorrido los pasos correctamente, se procede a generar una tabla. Adicionalmente el asistente nos permite examinar la tabla tal como ha quedado o modificar la tabla mediante el diseñador de tablas para añadirle prestaciones adicionales.

Figura 7 - Finalizar asistente

Manejo de tablas Suponiendo que hubiéramos elegido la opción Guardar la tabla y examinarla en el Asistente para Tablas, obtendría una nueva ventana Browse (Examinar) con la nueva tabla vacía.

Figura 8 - La ventana Browse (Examinar)

- 1 - El entorno de desarrollo de Visual FoxPro 10 -

Lo que aquí vemos es una ventana típica utilizada para examinar tablas. En este caso estamos visualizando una tabla con registros. Dentro de la ventana distinguimos varios apartados. 1. Columnas. Dependiendo del tamaño de la ventana Browse (Examinar) se muestran más o menos columnas. Cada columna visualiza en el encabezado el nombre del campo, o bien, el título definido en la base de datos para este campo. Usualmente, marcando en el título de un campo y arrastrándolo a una nueva posición, modificamos el orden de visualización de columnas. 2. Selección de celda. Para indicar en qué registro está posicionado, existe un indicador situado a la izquierda de la primera columna visualizada. Este indicador contiene una flecha indicando que el puntero de registro está posicionado en esa fila. Asimismo, la celda que tiene el enfoque de lectura visualiza el cursor de edición y está remarcada con un cuadro cuyos bordes son ligeramente mayores que las líneas separadoras. Como se puede observar en la figura todas las funciones de edición están disponibles, tales como marcar un determinado segmento de caracteres, insertar, o incluso marcar todo el contenido del campo. 3. Estado del registro. Adyacente al indicador de registro se encuentra el indicador de estado de la marca de eliminación Si el registro está marcado para borrar, este cuadro cambia su contenido de color negro.

Opciones del menú Table (Tabla) Cuando se abre una nueva ventana Browse (Examinar), se crea un nuevo menú en la barra de menús de sistema. El menú Table (Tabla), contiene las opciones básicas para manejo de tablas. Veamos algunas:

Añadir un nuevo registro Elija la opción Append New Record (Añadir nuevo registro), o bien, pulse la combinación de teclas CTRL+Y. Se inserta un nuevo registro en la tabla que se está examinando. También es posible añadir registros desde la ventana de comando emitiendo alguna de las sentencias: APPEND BLANK APPEND

Cambiar el estado de la marca borrado Cuando un registro ya no se hace necesario se marca como borrado. Este es el paso previo a la eliminación de todos los registros marcados, cuyo proceso requiere el uso del comando PACK. Como es evidente, también se puede realizar esta acción como todas las demás acciones, desde la ventana de comandos mediante la sentencia DELETE

Otra posibilidad interesante es alternar el estado del registro utilizando un cuadro situado al lado del marcador de registro. Pulsando alternativamente en este cuadro, modificamos el estado de la marca de borrado.

Figura 9 – Marca de registro eliminado Otra opción es utilizar la opción Toggle Deletion Mark (Alternar marca de borrado) del menú Table (Tabla) o bien, pulse la combinación de teclas CTRL+T.

- 1 - El entorno de desarrollo de Visual FoxPro 11 -

Ir a un registro determinado Se puede ir a un registro determinado modificando la celda activa mediante el ratón y las barras de desplazamiento vertical, o el teclado mediante los cursores. Pero también se puede utilizar el submenú Go to Record (Ir al registro), cuyo contenido analizado es el siguiente: Opción

Descripción

Top (Primero)

Va al primer registro de la tabla. Desde la ventana de comandos habría que utilizar GO TOP

Va al último registro de la tabla. Desde la ventana de comandos habrá que escribir:

Bottom (Último)

GO BOTTOM

Posiciona el puntero de registro en el siguiente registro. Obtenemos el mismo resultado que utilizar esta sentencia desde la ventana de comandos:

Next (Siguiente)

SKIP 1

Previous (Anterior)

Posiciona el puntero en el registro anterior. Desde la ventana de comandos:

Record # (Registro número)

Cambia el puntero de registro a un registro específico. Desde la ventana de comandos habría que emitir la siguiente sentencia:

SKIP –1

GO nRegistro

Donde nRegistro es el número de registro donde se desea posicionar el puntero de registro. Locate (Encontrar)

Encuentra el registro que cumpla la expresión de búsqueda. Veremos más adelante la sintaxis del comando LOCATE utilizado por esta opción de menú.

Ajustar el tamaño y posición de un campo Para realizar la primera acción procedemos de alguna de estas dos formas: 1. Teclado. Elegimos la opción Ajustar el tamaño de columna y mediante los cursores

derecho e izquierdo ajustamos el tamaño del campo. 2. Ratón. Posicionamos el ratón en el borde derecho del título de la columna advirtiendo

que la forma del cursor cambia para indicar que es posible realizar ese cambio. Marcamos y arrastramos la longitud del campo hasta conseguir la deseada. Modificar la posición de un campo se puede realizar de alguna de estas dos formas: 1. Teclado. Elegimos la opción Mover campo y mediante los cursores derecho e izquierdo

elegimos la nueva posición del campo. 2. Ratón. Posicionamos el ratón en el título de la columna advirtiendo que la forma del

cursor cambia para indicar que es posible realizar ese cambio. Marcamos en el título del campo y arrastramos éste hasta su nueva posición.

- 1 - El entorno de desarrollo de Visual FoxPro 12 -

Edición de registros interactivo Desde la ventana de comandos se pueden utilizar estos comandos para abrir la ventana Browse (Examinar) y realizar modificaciones en cualquier tabla. Comando / Función

Descripción

APPEND [BLANK] [IN nÁreaTrabajo | cAliasTabla] [NOMENU]

Abre la ventana Cambiar para añadir registros a una tabla interactivamente

BROWSE y CHANGE/EDIT

Abren las ventanas Browse (Examinar) y Change (Cambiar), respectivamente.

MODIFY GENERAL CampoGeneral1 [, CampoGeneral2 ...] [NOMODIFY] [NOWAIT] [ [WINDOW NombreVentana1] [IN [WINDOW] NombreVentana2 | IN SCREEN] ]

Abre una nueva ventana para poder editar una campo de tipo General.

MODIFY MEMO CampoMemo1 [, CampoMemo2 ...] [NOEDIT] [NOMENU] [NOWAIT] [RANGE nCarácterInicial, nCarácterFinal] [ [WINDOW NombreVentana1] [IN [WINDOW] NombreVentana2 | IN SCREEN] ] [SAME] [SAVE]

Abre una nueva ventana para permitir editar un campo de tipo memo.

Búsqueda de registros Al realizar una consulta en busca de uno o varios registros que cumplan los criterios de búsqueda en una tabla, es necesario aclarar algunos conceptos básicos. Por una parte el ámbito donde se va a realizar la consulta, que puede restringirse a todos los registros de la tabla, los 10 siguientes, o cualquier otra combinación válida. Por otra parte existe el concepto de expresión de búsqueda. Una expresión de búsqueda se evalúa y compara con el registro activo. Si no se cumple la expresión de búsqueda, continúa con el siguiente registro y así hasta llegar al final de la tabla. Se puede comprobar si una búsqueda ha tenido éxito observando en qué posición se encuentra el puntero de registro. Por último, esta búsqueda continúa mientras se cumpla una segunda expresión. Es decir, se recorre toda la tabla mientras esta expresión sea verdadera, en cuanto evalúe a falsa, finaliza la búsqueda aunque no haya recorrido toda la tabla. Cuando se elige la opción Locate (Encontrar) del submenú, Go to Record (Ir al Registro), se visualiza el siguiente cuadro de diálogo que resume los tres conceptos que se acaban de perfilar. La utilidad de este cuadro de diálogo es construir a partir de la información introducida en este cuadro de diálogo una sentencia completa utilizando el comando LOCATE. Por tanto, lo que vaya introduciendo en este cuadro de diálogo se incorporará como argumento tras el comando LOCATE. Cuando se pulse en el botón de comando Locate (Encontrar), la sentencia LOCATE se emite desde la ventana de Comandos.

- 1 - El entorno de desarrollo de Visual FoxPro 13 -

Figura 10 - Opciones de selección de registro Veamos estos conceptos aplicados a la búsqueda de registros.

Scope (Alcance) El alcance delimita la cantidad de registros que se van a procesar e incluso desde y hasta qué registro va a cubrir la búsqueda. Cuando se aceptan las modificaciones introducidas en este cuadro de diálogo se añaden los argumentos necesarios en la sentencia LOCATE.

Alcance

Argumento

Descripción

All (Todos)

ALL

Incluye la totalidad de los registros en la búsqueda. El límite de búsqueda va desde el registro número 1 hasta el último.

Next (Siguientes)

NEXT n

Incluye sólo los n registros siguientes al actual en la búsqueda. Es decir, especificando 10 en el cuadro de texto, incluirá sólo los 10 siguientes registros a partir del actual en la búsqueda. Por tanto, el límite se centra desde el registro actual hasta el número de registros especificados.

Record (Registro)

RECORD n

La búsqueda se limita únicamente al número de registro especificado por este cuadro de texto.

Rest (Restantes)

REST

Comienza la búsqueda a partir del registro actual y continúa hasta el final de la tabla. Por tanto, el intervalo de búsqueda se limita desde el registro actual al último de la tabla.

- 1 - El entorno de desarrollo de Visual FoxPro 14 -

Cláusula FOR Este es el núcleo básico de toda sentencia de búsqueda. Veremos que hay multitud de comandos que pueden incorporar esta cláusula para delimitar aquellos registros que cumplen los criterios especificados por ésta. Cuando se elige este botón de comando, se activa el cuadro de diálogo Expression Builder (Generador de expresiones) de Visual FoxPro. Esta es una herramienta de gran utilidad para la construcción de expresiones desde la más simple, hasta la más compleja. Veremos el generador de expresiones más ampliamente en secciones siguientes.

Figura 11 - Generador de expresiones

Cláusula WHILE La selección de registros efectuada mediante la cláusula FOR se refiere a toda la tabla por completo y en eso precisamente se diferencia de la cláusula WHILE. Esta cláusula restringe el ámbito de búsqueda a que la expresión lógica incluida con esta cláusula sea cierta. En el momento en que no se cumpla la expresión el comando que incluya esta cláusula finaliza inmediatamente. Por esta razón se puede decir que en este caso la búsqueda se realizaría mientras se cumpliera la cláusula WHILE, finalizando la búsqueda cuando no se cumpliera, aunque no se hubiera recorrido toda la tabla.

- 1 - El entorno de desarrollo de Visual FoxPro 15 -

La ventana Data Session (Sesión de Datos) Este cuadro de diálogo se utiliza como administrador para las tablas abiertas en cada una de las sesiones de datos (1 en la Figura 12). Consta de dos cuadros de lista que visualizan por una parte las tablas abiertas (2 en la Figura 12) y por otra parte las relaciones establecidas entre ellas (3 en la Figura 12). Cada tabla tiene asociadas una serie de propiedades a las cuales es posible acceder desde el botón de comando Properties (Propiedades). Asimismo, es posible abrir, cerrar tablas o establecer nuevas relaciones entre las tablas abiertas, mediante los botones de comando Open (Abrir), Close (Cerrar) y Relations (Relaciones), respectivamente. Pero la función primordial puede ser la de examinar el contenido de la tabla seleccionada en el cuadro de lista Aliases (Alias) utilizando el botón de comando Browse (Examinar). La particularidad de esta opción reside en que se recupera el estado en que se cerró la ventana Browse (Examinar) para esa tabla la última vez, incluyendo tamaño y posición de la ventana, o el tipo y tamaño de la fuente utilizada.

Figura 12 - La ventana Data Session (Sesión de Datos)

Modificar las propiedades de la tabla Cuando se pulsa el botón de comando Properties (Propiedades), se accede al cuadro de diálogo utilizado para modificar las propiedades de la tabla abierta en el área de trabajo actual. Entre las opciones que se pueden controlar desde este cuadro de diálogo se encuentra la posibilidad de activar un índice determinado mediante Index order (Orden del índice) (1 en la Figura 13), filtrar los registros de una tabla mediante Data filter (Filtro de datos) (2 en la Figura 13) o restringir la información que se muestra en una ventana Browse (Examinar) predeterminada mediante Field Filter (Filtro de campos) (3 en la Figura 13).

- 1 - El entorno de desarrollo de Visual FoxPro 16 -

Figura 13 - Propiedades de tabla

Búfer de datos El búfer de datos se activa si se elige la opción Enable data buffering (Activar almacenamiento en búfer de datos) (4 en la Figura 13). Esto significa que los cambios que se efectúen sobre la tabla no serán actualizados de forma inmediata, y dependiendo del tipo de búfer de datos elegido, son potencialmente descartables en un momento determinado. Siempre es posible cambiar el estado del búfer de datos, y de hecho, si no se indica lo contrario, la tabla no se abre inicialmente con ningún búfer de datos activo. Por tanto, si se desea utilizar el búfer de datos, es necesario activarlo desde este cuadro de diálogo, o bien, desde la ventana de comandos mediante la función DBGetProp().

Selección de índice Desde este cuadro combinado (1 en la Figura 13) se elige el orden activo para el área de trabajo actual. Se muestran en él todas las etiquetas de índice definidas para esta tabla. De este modo se pueden utilizar el comando SEEK y la función SEEK() para encontrar el registro que cumpla el criterio de búsqueda.

Filtro de datos Desde el cuadro de texto o utilizando el generador de expresiones llamado al pulsar el botón de comando generamos una expresión de filtro de datos (2 en la Figura 13) . Esto significa que cuando abramos una ventana Browse (Examinar) para esta tabla, sólo se van a visualizar aquellos registros que cumplan la condición escrita aquí.

Filtro de campos Del mismo modo que se establecen filtros para visualizar una parte de los datos presentes en una tabla, es posible realizar una acción análoga con las columnas definidas en una tabla (3 en la Figura 13). De este modo, sólo aparecen en la ventana Browse (Examinar) aquellas columnas pedidas en esta opción.

Browse (Examinar) La ventana examinar tiene una serie de características interesantes, entre las cuales podemos destacar las siguientes:

Modificar el aspecto de las columnas - 1 - El entorno de desarrollo de Visual FoxPro 17 -

Las columnas de datos pueden cambiar su posición y tamaño de forma que se pueden reorganizar, guardando esta configuración para la próxima vez que se vuelva a consultar la misma tabla. Al hacer doble clic en la línea que separa dos columnas en la cabecera de títulos de columnas, el ancho de columna se ajusta automáticamente al contenido de la misma.

Definición de particiones Una ventana Browse (Examinar) puede dividirse verticalmente en dos particiones. Cada partición puede funcionar de forma independiente y presentar un aspecto distinto. En la parte izquierda de la Figura 14 (1) observamos una vista en formato cuadrícula típica de una ventana Browse (Examinar). En la parte derecha (2) observamos una ficha del registro que se está editando actualmente. Para obtener una ventana Browse (Examinar) con este aspecto, basta con introducir la siguiente sentencia desde la ventana de Comandos: BROWSE REDIT PARTITION 50

Esta sentencia indica que abra una nueva ventana Browse (Examinar) en la que la partición derecha estará en formato edición mediante la cláusula REDIT y que establezca una partición en la columna 50 mediante la cláusula PARTITION 50.

Figura 14 - Combinación de particiones

Fuentes Cualquier fuente definida en Windows puede utilizarse para visualizar en cualquier tamaño y tipo, información en una ventana Browse (Examinar).

Abrir y cerrar tablas Estos dos botones de comando permiten abrir y cerrar tablas. Cuando se pulsa en el botón de comando Open (Abrir) se selecciona el última área de datos libre y se abre en esa área. Si existe una tabla seleccionada en la lista de alias activos, el botón de comando Close (Cerrar) cierra la tabla que está en el área de datos seleccionada en la lista.

Establecer relaciones Si existen al menos dos tablas abiertas es posible establecer relaciones entre ambas. La forma de establecer relaciones entre las dos consiste en hacer clic en el botón de comando Relations (Relaciones) teniendo una de las dos seleccionada en el cuadro de lista Aliases (Alias). En ese momento, en el cuadro de lista Relations (Relaciones) aparece la tabla elegida.

- 1 - El entorno de desarrollo de Visual FoxPro 18 -

Para establecer una relación entre las dos tablas es necesario saber qué campo de la tabla principal - la que se eligió en primer lugar- hay que buscar en la tabla secundaria. Eso es precisamente lo que se le pide al usuario cuando se establece una nueva relación. En primer lugar elegimos un campo de la tabla principal y a continuación el orden activo en la tabla secundaria. Veamos un ejemplo, utilizando como siempre la base de datos Northwind

Selección de tabla principal En primer lugar se plantea la necesidad de ver los pedidos de cada cliente. Por tanto se han de abrir las tablas Customers y Orders de la base de datos Northwind.

Figura 15 – Las tablas Customer y Orders abiertas

Iniciar la relación En esta relación la tabla principal es Customers, por tanto es la tabla que ha de estar seleccionada cuando se haga clic en el botón Relations (Relaciones). El cuadro de lista Relations (Relaciones) muestra el inicio de la secuencia de relación. Al hacer clic en el botón Relations el resultado en la lista Relations (Relaciones) es el que se muestra en la figura siguiente.

Figura 16 – Inicio de una relación

- 1 - El entorno de desarrollo de Visual FoxPro 19 -

Seleccionar el índice de la tabla secundaria Al intentar establecer una relación con la tabla Orders, es necesario especificar el índice activo por el que va a realizar la búsqueda de la expresión que relaciona ambas tablas. En este caso, el índice se llama Customerid basado en el campo customerid de la tabla Orders.

Figura 17 – Establecer orden de índice

Seleccionar la taba El siguiente paso es especificar la expresión que va a relacionar ambas tablas. Existe un campo que relaciona ambas tablas llamado customerid, que contiene el identificador de cliente. Al hacer clic en la tabla Orders del cuadro de lista Aliases (Alias) se muestra un cuadro de diálogo Expression Builder (Generador de expresiones) de modo que se pueda introducir la expresión que relaciona ambas tablas.

Figura 18 – Expresión de relación

Resultado Es decir, una relación está basada en la búsqueda de una expresión formada por uno o más campos de la tabla principal en la tabla secundaria cuyo índice activo ha de haberse construido con esta misma expresión. En este caso, el campo customerid de la tabla Customers está estableciendo una especie de filtro en la tabla secundaria, Orders. De modo que al seleccionar un registro determinado en la tabla principal (Customers), sólo sean visibles en la tabla secundaria (Orders) aquellos registros que coincidan con la expresión buscada (customerid)

- 1 - El entorno de desarrollo de Visual FoxPro 20 -

Figura 19 – El resultado de la relación entre Customers y Orders

Manejar registros borrados La eliminación de registros puede realizarse de tres formas distintas, desde la ventana Browse (Examinar) utilizando el marcador de registros borrados, desde la opción Toggle Deletion Mark (Alternar marca de eliminación) el menú Table (Tabla), o bien, mediante el comando DELETE desde la ventana de comandos. El efecto inmediato es que el registro actual queda marcado para borrar y se requiere la posterior intervención del comando PACK que elimina definitivamente de la tabla todos aquellos registros marcados para borrar.

Recuperar registros Se puede alternar la marca de borrado de un registro determinado. Esto se consigue de tres formas distintas, desde la propia ventana Browse (Examinar), mediante la opción Toggle Deletion Mark (Alternar marca de eliminación), presente en el menú Table (Tabla) o mediante el comando RECALL.

Eliminar un conjunto de registros Para evitar la necesidad de ir marcando cada registro individualmente, se recurre al marcaje de varios registros de una vez. Para ello podemos utilizar la opción Delete Records (Eliminar registros) del menú Table (Tabla) o bien, el comando DELETE.

Eliminar registros marcados Los registros marcados como borrados permanecen en la tabla hasta que no se invoca el comando PACK o se utiliza la opción Remove Deleted Records (Desmarcar registros) del menú Table (Tabla). La finalidad de este comando es eliminar físicamente todos los registros marcados. Después de efectuar esta operación no será posible recuperar los registros eliminados de ninguna forma.

- 1 - El entorno de desarrollo de Visual FoxPro 21 -

Uso de registros borrados A continuación se detallan todos los comandos y funciones relacionados con el uso de registros borrados. Comando / Función

Descripción

DELETE [Alcance] [FOR lExpresión1] [WHILE lExpresión2] [IN nÁreaTrabajo | cAliasTabla] [NOOPTIMIZE]

Borra uno o más registros de una tabla. Puede utilizarse el alcance o las expresiones FOR y WHILE para determinar el rango de registros a borrar.

DELETE FROM [NombreBaseDatos!]NombreTabla [WHERE CondiciónFiltro1 [AND | OR CondiciónFiltro2 ...]]

Marca registros para eliminar mediante SQL

DELETED( [cAliasTabla | nÁreaTrabajo] )

Indica si el registro actual está marcado para borrar

RECALL [Alcance] [FOR lExpresión1] [WHILE lExpresión2] [NOOPTIMIZE]

Recupera uno o más registros marcados para borrar. Puede utilizarse la cláusula de alcance o las expresiones FOR y WHILE para delimitar el rango de registros a recuperar.

PACK [MEMO] [DBF]

Elimina de la tabla activa todos los registros marcados para borrar. Indicando la cláusula MEMO compacta el espacio utilizado por el archivo de campos memo FPT. Si se incluye la cláusula DBF, se ignora la compactación del archivo memo.

SET DELETED ON | OFF

Indica si los registros marcados para borrar están disponibles cuando se utilizan otros comandos.

ZAP [IN nÁreaTrabajo | cAliasTabla]

Elimina todos los registros de la tabla especificada, estén o no marcados para borrar.

BLANK [FIELDS ListaCampos] [Alcance] [FOR lExpresión1] [WHILE lExpresión2] [NOOPTIMIZE]

Borra toda la información de uno o más registros sin marcarlos para borrar.

Reemplazar valores en campos Mediante la ventana Browse (Examinar), tal como hemos ido viendo hasta ahora, es posible alterar el contenido de uno o más registros. Sin embargo, a veces se hace necesario modificar un grupo de registros de una vez sin necesidad de ir cambiando el valor de uno en uno. Para efectuar esta operación encontramos la opción Replace Field (Reemplazar campo) en el menú Table (Tabla). Esta opción muestra un cuadro de diálogo que permite efectuar este tipo de modificaciones masivas.

- 1 - El entorno de desarrollo de Visual FoxPro 22 -

Figura 20 - Reemplazar valores en un campo

Field (Campo) Determina el campo en el que se va a realizar el reemplazo masivo.

With (Con) En este cuadro de texto se especifica la expresión con la que se va a sustituir el contenido del campo especificado anteriormente. Al pulsar en el botón de comando situado al lado de este campo se muestra el cuadro de diálogo Expression Builder (Generador de expresion).

Scope (Alcance) El alcance delimita la cantidad de registros que se van a procesar e incluso desde y hasta qué registro va a cubrir la búsqueda. Cuando se aceptan las modificaciones introducidas en este cuadro de diálogo se añaden los argumentos necesarios en la sentencia REPLACE.

Alcance

Argumento

Descripción

All (Todos)

ALL

Incluye la totalidad de los registros en la búsqueda. El límite de búsqueda va desde el registro número 1 hasta el último.

Next (Siguientes)

NEXT n

Incluye sólo los n registros siguientes al actual en la búsqueda. Es decir, especificando 10 en el cuadro de texto, incluirá sólo los 10 siguientes registros a partir del actual en la búsqueda. Por tanto, el límite se centra desde el registro actual hasta el número de registros especificados.

Record (Registro)

RECORD n

La búsqueda se limita únicamente al número de registro especificado por este cuadro de texto.

Rest (Restantes)

REST

Comienza la búsqueda a partir del registro actual y continúa hasta el final de la tabla. Por tanto, el intervalo de búsqueda se limita desde el registro actual al último de la tabla.

- 1 - El entorno de desarrollo de Visual FoxPro 23 -

Cláusula FOR Este es el núcleo básico de toda sentencia de búsqueda. Veremos que hay multitud de comandos que pueden incorporar esta cláusula para delimitar aquellos registros que cumplen los criterios especificados por ésta.

Cláusula WHILE La selección de registros efectuada mediante la cláusula FOR se refiere a toda la tabla por completo y en eso precisamente se diferencia de la cláusula WHILE. Esta cláusula restringe el ámbito de búsqueda a que la expresión lógica incluida con esta cláusula sea cierta. En el momento en que no se cumpla la expresión el comando que incluya esta cláusula finaliza inmediatamente. Por esta razón se puede decir que en este caso la búsqueda se realizaría mientras se cumpliera la cláusula WHILE, finalizando la búsqueda cuando no se cumpliera, aunque no se hubiera recorrido toda la tabla.

Importación / Exportación de datos Tan importante como el dominio sobre los datos a los que podemos acceder mediante el gestor de tablas, es la posibilidad de acceder a los datos contenidos en archivos creados por otras aplicaciones. De esta forma podemos extraer información de los mismos, tratarla y si resulta útil enviarla de nuevo al tipo de datos de origen.

Comando / Función

Descripción

EXPORT

Exporta datos de una tabla de Visual FoxPro a cualquiera de los tipos de archivo soportados.

IMPORT

Importa datos desde un fichero de datos externo en alguno de los formatos soportados.

APPEND FROM

Agrega registros de otra tabla al final de la tabla activa.

APPEND MEMO

Copia en un campo memo el contenido de un archivo de texto

APPEND GENERAL

Importa un objeto OLE en un campo de tipo general.

COPY TO

Crea una tabla nueva a partir del contenido de la tabla activa.

- 1 - El entorno de desarrollo de Visual FoxPro 24 -

Importar datos Microsoft Visual FoxPro soporta los siguientes tipos de archivos de los cuales puede extraer información si elegimos la opción Import (Importar) del menú File (Archivo): Tipo

Descripción

Microsoft Excel 5.0 and 97 (XLS)

Esta opción permite importar datos de hojas de cálculo creadas con Microsoft Excel 5.0.

Microsoft Excel 2.0, 3.0 and 4.0 (XLS)

Esta opción importa datos de hojas de cálculo de Microsoft Excel versiones 2.0, 3.0 y 4.0.

Lotus 1-2-3 3.x (WK3)

Importa datos procedentes de una hoja de cálculo realizada con Lotus 1-2-3 versión 3.x.

Lotus 1-2-3 2.x (WK1)

Importa datos procedentes de una hoja de cálculo realizada con Lotus 1-2-3 versión 2.x.

Lotus 1-2-3 1-A (WKS)

Importa datos procedentes de una hoja de cálculo realizada con Lotus 1-2-3 versión 1-A.

Paradox 3.5 y 4.0 (DB)

Importa datos procedentes de la base de datos Paradox en sus versiones 3.5 y 4.0

Symphony 1.10 (WR1)

Permite importar datos procedentes de la hoja de cálculo del paquete integrado Symphony versión 1.10

Symphony 1.01 (WRK)

Permite importar datos procedentes de la hoja de cálculo del paquete integrado Symphony versión 1.01

FrameWork II (FW2)

Permite importar datos procedentes de la hoja de cálculo del paquete integrado FrameWork II

Multiplan 4.01 (MOD)

Importa datos procedentes de la hoja de cálculo Multiplan versión 4.01

RapidFile (RPD)

Importa datos procedentes de RapidFile

Figura 21 - Importación de registros procedentes de Excel 5.0

- 1 - El entorno de desarrollo de Visual FoxPro 25 -

Asistente para importar datos Este asistente es adecuado en aquellas ocasiones en las que se necesita moldear algunos aspectos de la importación de datos. Este sencillo pero potente asistente permite especificar el origen y destino de los datos, ver qué datos se están importando directamente y especificar el nombre y tipo de cada uno de los campos que se están importando.

Paso 1 - Archivos de origen y de destino En este primer paso especificamos el tipo de archivo de datos del que se van a extraer los datos. A continuación se indica el archivo origen de datos y por último el nombre de la tabla sobre la que se van a copiar los registros importados

Figura 22 - Archivos de origen y destino

Paso 1a – Selección de base de datos Este paso sólo se muestra si se decide crear una nueva tabla con los datos que se van a importar, de modo que pueda crear una nueva tabla libre , o bien, incorpore la nueva tabla a una base de datos ya existente.

- 1 - El entorno de desarrollo de Visual FoxPro 26 -

Figura 23 – Selección de base de datos

Paso 2 – Determinar el formato de los datos En este paso se puede tener una vista previa de la información que se pretende importar. Esto es importante ya que permite identificar correctamente los datos que pretendemos insertar, ya que podemos volver atrás y especificar otro origen de datos en cualquier momento.

Figura 24 – Determinar el formato de los datos - 1 - El entorno de desarrollo de Visual FoxPro 27 -

Paso 2a – Describir datos Tratándose de un archivo de texto , en este paso se determinará cual es el delimitador de campo. Este paso sólo se mostrará si es un archivo de texto el que se está tratando de importar.

Figura 25 – Describir datos

Paso 3 – Definir campos importados Antes de efectuar la importación de datos podemos ver la estructura de la información. Permite esta pantalla el cambio de los siguientes parámetros: Name (Nombre), Type (Tipo), Width (Ancho) y Decimals (Posiciones Decimales).

- 1 - El entorno de desarrollo de Visual FoxPro 28 -

Figura 26 – Definir campos importados

Paso 3 a – Especificar opciones internacionales Antes de importar definitivamente, si existen determinados datos que se hayan de tratar de forma diferente debido a que se van a transformar de un idioma a otro, será necesario especificar esa circunstancia en este paso. A tal efecto, disponemos la opción de cambiar la página de códigos del archivo de orígen, el indicador de moneda, el separador de miles, el indicador decimal y el formato de fecha.

- 1 - El entorno de desarrollo de Visual FoxPro 29 -

Figura 27 – Paso 3a Especificar opciones internacionales

Formularios. Introducción En principio, la ventana Browse (Examinar) puede ser suficiente herramienta para la visualización y modificación de tablas, pero, además, podemos utilizar formularios para dar una presencia más útil y versátil a la misma información. Los formularios contienen cualquier tipo de control, desde etiquetas, pasando por cuadros de texto, cuadros de edición, hasta cuadros combinados o cuadros de lista. Existe un número suficiente de controles disponibles de forma estándar pudiéndose ampliar esta lista con controles diseñados por el propio usuario o controles universales Activex. Un formulario tiene asociado un entorno de datos que permite abrir y cerrar de forma automática las tablas que el mismo formulario necesita. Incluso es posible utilizar el resultado de consultas de una base de datos. Otra característica importante relativa a los controles insertables en un formulario es la vinculación que pueden mantener con un origen de datos. Esto quiere decir que un control puede visualizar y editar directamente el contenido de un campo de una tabla. Por ejemplo, podemos definir que un cuadro de lista edite el campo relativo al nombre de un producto definido en la tabla de Productos, o una casilla de verificación indicando si ese producto dispone de estocaje suficiente. En definitiva se trata de visualizar información de forma que el usuario identifique claramente el tipo de información que necesita para tomar decisiones.

Crear un formulario rápido La forma más sencilla de crear formularios es, en principio, recurrir al asistente para la creación de formularios. Puede llamar a este asistente cuando crea un nuevo formulario o bien desde el menú Wizards (Asistentes) escogiendo la opción Form (Formulario). Como datos básicos, tal como se va a comprobar a continuación, este asistente solo necesita una tabla y qué campos de la misma van a participar en la generación del nuevo formulario. El orden en el que van a figurar en el formulario definitivo depende del orden que se vayan eligiendo desde el cuadro de lista Available Fields (Campos disponibles) hacia el cuadro de lista Selected Fields (Campos seleccionados).

- 1 - El entorno de desarrollo de Visual FoxPro 30 -

Paso 1 - Selección de campos El primer paso consiste en la elección de tabla y campos. Como dato esencial se necesita una tabla de la cual se van a tomar las definiciones de determinados campos con el fin de confeccionar controles para su visualización y edición desde el nuevo formulario. Como dato interesante se puede comentar el hecho de que este generador utiliza como etiquetas de campo, es decir, el texto que figura delante de cada uno de los controles de edición, el encabezado que se haya definido en la base de datos si la tabla pertenece a una.

Figura 28 - Selección de campos

Paso 2 - Estilo Existen una serie de estilos predefinidos que el asistente utiliza como patrón en el momento de generar el aspecto visual general del formulario y cada uno de los controles que lo contienen. Esta prestación se completa con la posibilidad de elegir botones de comando gráficos o de texto. Estos botones de comando situados en la parte inferior del nuevo formulario permiten mover el puntero de registro del primer al último registro, o bien, al anterior o siguiente con respecto al registro que se está visualizando actualmente. Pueden, además, insertar o eliminar registros de la tabla.

- 1 - El entorno de desarrollo de Visual FoxPro 31 -

Figura 29 - Estilo

Paso 3 - Orden Si la tabla no dispone de una secuencia de ordenación, lo que hace este paso es permitir crear una a partir de hasta tres campos de la tabla origen de datos. Este orden será utilizado en los desplazamientos hacia atrás o delante cuando se utilizan los botones de comando de desplazamiento por registros.

Figura 30 - Orden

- 1 - El entorno de desarrollo de Visual FoxPro 32 -

Paso 4 - Finalizar Como información final, el asistente necesita saber el título del formulario y qué deseamos hacer con él. A este último respecto, tenemos tres opciones, guardar el formulario para poder ejecutarlo o modificarlo posteriormente, generar y ejecutar el formulario o bien, y por último, generar el formulario y modificarlo mediante el generador de formularios. Antes de elegir cualquiera de las tres opciones, podemos ver una presentación del formulario en proceso de generación, con el fin de volver atrás y alterar cualquier información de las que se han definido en los tres pasos anteriores.

Figura 31 - Finalizar

Ejecutar el nuevo formulario Una vez se ha generado el formulario podemos obtener uno como el que visualizamos en la figura siguiente. Como podemos observar en la parte superior del formulario figura el título elegido para el formulario: Customers (Clientes).

- 1 - El entorno de desarrollo de Visual FoxPro 33 -

Figura 32 - Resultado final

Macros Existen multitud de situaciones donde repetimos hasta la saciedad la misma secuencia de teclas, al abrir un proyecto, al abrir una pantalla, al compilar, etc.. Las macros pueden ayudar a que la secuencia de teclas que tengamos que utilizar se reduzca lo más posible y de esta forma aprovechemos mejor el tiempo. Las macros permiten grabar secuencias de caracteres y asociarlas a una combinación de teclas. De esta forma la pulsación de esta combinación de teclas a posteriori ejecuta toda la secuencia de caracteres guardada.

¿Cómo visualizar y editar las macros activas? Para acceder al cuadro de diálogo para el mantenimiento de macros eliga la opción Macros del menú Tools (Herramientas). Se visualiza una ventana como esta:

Figura 33 – El cuadro de diálogo Macros

- 1 - El entorno de desarrollo de Visual FoxPro 34 -

Esta ventana está subdividida en los siguientes elementos: 1. Lista de macros definidas (Individual macro). Este cuadro de lista visualiza los nombres

2. 3. 4. 5. 6.

de las macros definidas en este momento en el sistema. Cada elemento de la lista visualiza el nombre que se le ha dado a la macro, no la tecla que invoca a la misma, aunque normalmente suele coincidir el nombre que se le da a la macro con la combinación de teclas que la ejecuta. Record (Grabar). Inicia la secuencia de grabación de una macro. New (Nueva). Crea una macro nueva. Edit (Editar). Edita el contenido de una macro existente. Clear (Borrar). Borra una macro definida. Macro set (Conjunto de macros). Los botones de comando definidos en esta zona permiten recuperar un conjunto de macros guardadas en un archivo, salvar las existentes en un archivo o hacer que las macros definidas en este momento sean las predeterminadas cada vez que se arranca Visual FoxPro.

¿Cómo grabar una macro? Es muy sencillo, para ello basta con elegir la opción Macros del menú Tools (Herramientas) y en el cuadro de diálogo Macros, hacer clic en el botón Record (Grabar). Visualizamos un cuadro de diálogo pidiendo la combinación de teclas a la cual vamos a asociar la secuencia de teclas que están a punto de ser grabadas. Es decir, cada vez que pulsemos la secuencia de teclas que se indique en este momento, se repetirán las teclas pulsadas a continuación de la salida de este cuadro de diálogo.

Figura 34 – Grabar macro

Cuando pulsemos Ok (Aceptar) en este cuadro de diálogo, todas las teclas pulsadas quedarán registradas en la macro llamada Ctrl_alt_f, invocada siempre que se pulse la combinación de teclas Ctrl-Alt-F. Si en ese momento la combinación de teclas que intentamos asignar a la macro ya se ha definido con anterioridad, veremos una ventana de alerta advirtiendonos esta circunstancia. Esta ventana admite tres respuestas totalmente distintas: a) Sobrescribir. Reemplaza las teclas guardadas con anterioridad en esta macro por las que se van a grabar ahora. b) Añadir pulsaciones. Agrega nuevas pulsaciones de teclas al final de la macro anterior. C) Cancelar. Cancela la grabación de la macro.

Figura 35 – Advertencia sobrescribir macro

- 1 - El entorno de desarrollo de Visual FoxPro 35 -

Para finalizar la grabación de la macro, volvemos a elegir la opción Macros del menú Tools (Herramientas). Vemos el siguiente cuadro de diálogo: • Insert Literal (Insertar Literal). Inserta en la definición de macro la tecla tal cual se ha pulsado • Insert Pause (Insertar Pausa). Este botón de comando permite insertar una pausa en la macro de dos formas distintas: • Key to Resume (Tecla para reanudar). Cuando se inserta una pausa de este tipo en una macro, ésta no reanuda su ejecución hasta que no se pulsa una tecla. • Seconds (Segundos). Esta pausa paraliza momentáneamente la macro los segundos especificados en el control numérico. Al hacer clic en el botón de comando Ok (Aceptar) finaliza la grabación de la macro.

Figura 36 – Detener grabación de la macro

Nomenclatura de teclas Conozcamos los nombres de cada una de las teclas para poder identificarlas correctamente. Tecla

Nombre

Õ

LEFTARROW

Ö

RIGHTARROW

×

UPARROW

Ø

DNARROW

Inicio (Home)

HOME

Fin (End)

END

AvPag (Page Up)

PGUP

RePag (Page Down)

PGDN

Sup (Del)

DEL

Borrar (Backspace)

BACKSPACE

Barra Espaciadora (Spacebar)

SPACEBAR

Ins

INS

Tabulador

TAB

Retroceder Tabbulador(Shift Tab)

BACKTAB

- 1 - El entorno de desarrollo de Visual FoxPro 36 -

Intro (Enter)

ENTER

F1

F1, F2, F3 ...

a F12 Ctrl+F1, Ctrl+F2 ...

Ctrl+F1 a Ctrl+F12

Shift+F1, Shift+F2 ...

Shift+F1 a Shift+F12

Alt+F1, Alt+F2, Alt+F3 ...

Alt+F1 a Alt+F12

Alt+0, Alt+1, Alt+2 ...

Alt+0 a Alt+9

Alt+A, Alt+B, Alt+C ...

Alt+A a Alt+Z Ctrl+Õ

Ctrl+LEFTARROW

Ctrl+Ö

Ctrl+RIGHTARROW

Ctrl+Inicio

Ctrl+HOME

Ctrl+Fin

Ctrl+END

Ctrl+AvPág

Ctrl+PGUP

Ctrl+RePág

Ctrl+PGDN

Ctrl+A

Ctrl+A, Ctrl+B, Ctrl+C ...

a Ctrl+Z Botón derecho ratón

RIGHTMOUSE

Botón izquierdo ratón

LEFTMOUSE

Cualquier Botón del ratón

MOUSE

Esc

ESC

Edición de macros Dado que a veces es difícil recordar toda la secuencia de teclas que conducen a realizar una acción, es posible que cometamos errores. No hay problema puesto que es posible introducir nuevas pulsaciones o eliminarlas en cualquier lugar de la macro. Para modificar el contenido de una macro sigamos los siguientes pasos:

- 1 - El entorno de desarrollo de Visual FoxPro 37 -

1. Elija la opción Macros del menú Tools (Herramientas). 2. Seleccione de la lista de macros definidas la que desee modificar. Para editar la macro

pulse el botón de comando Edit (Editar).

Figura 37 – Editar macro

Algunas macros Hasta ahora hemos visto como crear y modificar una macro para creación de proyectos, pero hay muchas más utilidades para las macros. Veamos algunas.

Seleccionar una línea Esta macro selecciona la línea entera donde está situado el cursor, independientemente de la posición de éste.

Figura 38 – Macro seleccionarlinea

Localizar definiciones de funciones y clases en el código fuente A menudo se hace difícil recorrer enormes archivos de código en busca de funciones o clases de las cuales no recordamos el nombre exacto Para solucionar en parte esta eventualidad se podrían utilizar estas dos macros Nombre macro

Tecla

Contenido

BuscaFunción

SHIFT+CTRL+F

{CTRL+F}FUNCTION{TAB}N{TAB}{ENTER}

BuscaClase

SHIFT+CTRL+C

{CTRL+F}CLASS{TAB}N{TAB}{ENTER}

- 1 - El entorno de desarrollo de Visual FoxPro 38 -

Estas dos macros realizan acciones parecidas. Veamos paso a paso su ejecución: 1. En primer lugar, abren el cuadro de diálogo de búsqueda de cadenas {CTRL+F} 2. Dado que al activar este cuadro de diálogo el control activo es el cuadro de texto donde se escribe la cadena a buscar, sencillamente emitimos la secuencia de teclas CLASS / FUNCTION 3. Para efectuar la búsqueda, movemos el control al botón de comando Next (Siguiente) mediante la pulsación de la tecla {TAB} y pulsamos la inicial marcada del título del botón de comando, la letra N. 4. Finalmente salimos del cuadro de diálogo moviendo el control al botón de comando Cancel (Cancelar) y pulsándolo, mediante la secuencia {TAB}{ENTER}.

Guardar y restaurar conjuntos de macros Consideramos como un conjunto de macros todas las macros activas en la sesión actual. Este conjunto de macros puede ser guardado en un archivo para su uso en posteriores sesiones. Este tipo de archivos, con extensión .FKY guardan la configuración guardada en cada momento. Existe un archivo llamado DEFAULT.FKY cuyos valores se restauran cada vez que se arranca Visual FoxPro.

- 1 - El entorno de desarrollo de Visual FoxPro 39 -

INDICE 1 - EL ENTORNO DE DESARROLLO DE VISUAL FOXPRO .......................................................... 1 INTRODUCCIÓN ............................................................................................................................................. 1 EL ENTORNO DE DESARROLLO ....................................................................................................................... 1 Administrador de proyectos ..................................................................................................................... 1 Diseñador de bases de datos .................................................................................................................... 1 Diseñador de formularios ........................................................................................................................ 1 Diseñador de informes y etiquetas ........................................................................................................... 2 Diseñador de menús ................................................................................................................................. 2 Asistentes.................................................................................................................................................. 2 Diseñador de consultas y vistas ............................................................................................................... 2 APARIENCIA DE LA VENTANA DE SISTEMA..................................................................................................... 3 TIPOS DE ARCHIVOS ...................................................................................................................................... 3 ADMINISTRACIÓN DE ARCHIVOS.................................................................................................................... 4 WIZARDS (ASISTENTES)................................................................................................................................ 5 CREAR UNA NUEVA TABLA MEDIANTE EL ASISTENTE .................................................................................... 7 Paso 1 - Seleccionar Campos................................................................................................................... 7 Paso 1a – Selección de base de datos ...................................................................................................... 8 Paso 2 - Opciones de campos .................................................................................................................. 8 Paso 3- Indexación................................................................................................................................... 9 Paso 4 - Finalizar................................................................................................................................... 10 MANEJO DE TABLAS .................................................................................................................................... 10 OPCIONES DEL MENÚ TABLE (TABLA)......................................................................................................... 11 Añadir un nuevo registro........................................................................................................................ 11 Cambiar el estado de la marca borrado ................................................................................................ 11 Ir a un registro determinado .................................................................................................................. 12 Ajustar el tamaño y posición de un campo............................................................................................. 12 EDICIÓN DE REGISTROS INTERACTIVO ......................................................................................................... 13 BÚSQUEDA DE REGISTROS ........................................................................................................................... 13 Scope (Alcance) .................................................................................................................................................. 14 Cláusula FOR ...................................................................................................................................................... 15 Cláusula WHILE................................................................................................................................................. 15

LA VENTANA DATA SESSION (SESIÓN DE DATOS)....................................................................................... 16 Modificar las propiedades de la tabla ................................................................................................... 16 Búfer de datos ..................................................................................................................................................... 17 Selección de índice.............................................................................................................................................. 17 Filtro de datos...................................................................................................................................................... 17 Filtro de campos.................................................................................................................................................. 17

Browse (Examinar)................................................................................................................................. 17 Modificar el aspecto de las columnas.................................................................................................................. 17 Definición de particiones .................................................................................................................................... 18 Fuentes ................................................................................................................................................................ 18

Abrir y cerrar tablas .............................................................................................................................. 18 Establecer relaciones ............................................................................................................................. 18 Selección de tabla principal................................................................................................................................. 19 Iniciar la relación ................................................................................................................................................ 19 Seleccionar el índice de la tabla secundaria ........................................................................................................ 20 Seleccionar la taba .............................................................................................................................................. 20 Resultado............................................................................................................................................................. 20

MANEJAR REGISTROS BORRADOS ................................................................................................................ 21 Recuperar registros................................................................................................................................ 21 Eliminar un conjunto de registros.......................................................................................................... 21 Eliminar registros marcados.................................................................................................................. 21 USO DE REGISTROS BORRADOS .................................................................................................................... 22 REEMPLAZAR VALORES EN CAMPOS ............................................................................................................ 22 Field (Campo) ..................................................................................................................................................... 23 With (Con) .......................................................................................................................................................... 23 Scope (Alcance) .................................................................................................................................................. 23 Cláusula FOR ...................................................................................................................................................... 24

- 1 - El entorno de desarrollo de Visual FoxPro 40 -

Cláusula WHILE................................................................................................................................................. 24

IMPORTACIÓN / EXPORTACIÓN DE DATOS .................................................................................................... 24 IMPORTAR DATOS ........................................................................................................................................ 25 ASISTENTE PARA IMPORTAR DATOS............................................................................................................. 26 Paso 1 - Archivos de origen y de destino ............................................................................................... 26 Paso 1a – Selección de base de datos .................................................................................................... 26 Paso 2 – Determinar el formato de los datos......................................................................................... 27 Paso 2a – Describir datos ...................................................................................................................... 28 Paso 3 – Definir campos importados ..................................................................................................... 28 Paso 3 a – Especificar opciones internacionales................................................................................... 29 FORMULARIOS. INTRODUCCIÓN .................................................................................................................. 30 CREAR UN FORMULARIO RÁPIDO ................................................................................................................. 30 Paso 1 - Selección de campos ................................................................................................................ 31 Paso 2 - Estilo ........................................................................................................................................ 31 Paso 3 - Orden ....................................................................................................................................... 32 Paso 4 - Finalizar................................................................................................................................... 33 EJECUTAR EL NUEVO FORMULARIO ............................................................................................................. 33 MACROS ...................................................................................................................................................... 34 ¿CÓMO VISUALIZAR Y EDITAR LAS MACROS ACTIVAS? ............................................................................... 34 ¿CÓMO GRABAR UNA MACRO? .................................................................................................................... 35 NOMENCLATURA DE TECLAS ....................................................................................................................... 36 EDICIÓN DE MACROS ................................................................................................................................... 37 ALGUNAS MACROS ...................................................................................................................................... 38 Seleccionar una línea ............................................................................................................................. 38 Localizar definiciones de funciones y clases en el código fuente........................................................... 38 GUARDAR Y RESTAURAR CONJUNTOS DE MACROS ...................................................................................... 39 INDICE ...................................................................................................................................................... 40 INDICE ALFABETICO .......................................................................................................................... 42

- INDICE ALFABETICO 41 -

INDICE ALFABETICO

Diseñador de menús, 2 DLL, 4 Documentación, 4

A Abrir y cerrar tablas, 18 ACT, 4 Administrador de proyectos, 1 Alcance, 14, 23 APPEND, 24 Asistente para combinación de correspondencia, 6 Asistente para consultas, 5 Asistente para etiquetas, 5 Asistente para formularios, 5, 30 Asistente para formularios uno a varios, 5 Asistente para gráficos, 6 Asistente para importar datos, 26 Asistente para importar datos a tablas, 6 Asistente para informes, 5 Asistente para informes de uno a varios, 7 Asistente para tablas, 5, 7 Asistente para tablas de referencias cruzadas, 6 Asistente para tablas dinámicas, 6 Asistente para vistas, 6 Asistente para vistas remotas, 6 Asistentes, 2 Ayuda, 4

B Base de datos, 3 Biblioteca API, 4 Bibliotecas de clases visuales, 3 BLANK, 22 Búfer de datos, 17 Búsqueda de registros, 13

E Edición, 37 Ejecutable, 4 Eliminar registros marcados, 21 Eliminar un conjunto de registros, 21 ERR, 4 Errores, 4 Estado del registro, 11 Etiquetas, 4 Examinar, 17 EXE, 4 EXPORT, 24

F Filtro de campos, 17 Filtro de datos, 17 FKY, 4 FLL, 4 FOR, 15, 24 Formulario, 3 FRX, 4 Fuentes, 18

G Grabar, 35

H C CDX, 3 Columnas, 11 Constantes, 4 Consulta SQL, 4 Control OLE, 4 Copias de seguridad, 4

H, 4 HLP, 4

I

D DBC, 3 DBF, 3 DBGetProp()., 17 DEFAULT.FKY, 39 DELETE, 22 DELETED, 22 Diseñador de bases de datos, 1 Diseñador de consultas y vistas, 2 Diseñador de formularios, 1 Diseñador de informes y etiquetas, 2

IMPORT, 24 Importar datos, 25 Indices, 3 Informes, 4

L La ventana Sesión de Datos, 16 LBX, 4 Librerías Windows, 4

M Macros, 4

- INDICE ALFABETICO 42 -

MEM, 4 Memoria, 4 menú Tabla, 11 Menús, 4 Menús generados, 4 MNX, 4 MPR, 4

S SCX, 3 SEEK, 17 SEEK(), 17 Selección de celda, 11 Selección de índice, 17 SET, 22

O T

OCX, 4 ODBC, 1

P PACK, 22 particiones, 18 PJX, 3 PRG, 4 Programas, 4 propiedades de la tabla, 16 Proyecto, 3

Tablas, 3 TBK, 4 Texto, 4 Tipos de ficheros, 3 TXT, 4

V VCX, 3 ventana de Comandos, 3 ventana Examinar, 10 Visualizar, 34

Q W

QPR, 4 WHILE, 15, 24

R RAD, 1 RECALL, 22 Recuperar registros, 21 Reemplazar valores en campos, 22 registros borrados, 21 relaciones, 18

Z ZAP, 22

- INDICE ALFABETICO 43 -