You are on page 1of 22

Curso de Visual Foxpro

Entorno de Desarrollo de Visual Foxpro (I)


Temas que abordaremos en este Captulo:
Introduccin
Instalacin - Formatos

Aprendizaje - Ayuda
Conceptos - Eventos - Controles

Tipos de Ficheros - Tipos de Datos.

Control de Flujo del Programa

El entorno de desarrollo (Administrador de proyectos- Diseadores y


Asistentes) (Prxima entrega)

Gestin de Ficheros - Creacin de Tabla mediante asistente. (Prxima entrega)

Introduccin
Visual Foxpro es uno de los gestores de Bases de Datos relacionales ms
rpido y flexible del mercado, disponiendo de un complejo entorno de desarrollo
totalmente orientado al objeto y altamente integrado en el sistema operativo Windows
95. Como cualquier otra aplicacin Windows estndar, Visual Foxpro soporta
interfaces MDI, barras de herramientas, ayuda sensible al contexto, mltiples fuentes,
acceso a bibliotecas de enlace dinmico (DLL), 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 atravs
de ODBC (Open Database Connectivity). Este estndar, definido como
Conectividad Abierta de Bases de Datos, permite abrir y consultar diversas bases
de datos a travs de un conjunto de controladores, utilizando SQL como lenguaje de
consulta.
Con el advenimiento de Visual Fox, los desarrolladores de aplicaciones tienen
acceso a multitud de eventos y opciones que los programadores de Visual Basic y
Visual C tuvieron durante aos. Se elimina la necesidad del uso del READ y su
confusa nidificacin (Fundational read).
Se aprovechan algunas de las innovaciones que incorpor el Visual Basic, que tuvo
liderazgo en simplificaciones tales que le dieron alcance masivo a la programacin. En esta
clase examinaremos, entre otras cosas, qu son los formularios, eventos y controles, y cmo
se usan

2.- INSTALACION - FORMATOS


Se puede instalar en Windows 95 / 98 o NT, dado que slo viene un instalador de
32 bits. Al igual que Visual Basic 5, no funcionar en Windows 3.X. Para esta
plataforma puede usar Fox Pro 2.6 para Windows, que no es un lenguaje Visual.
Formatos: tiene una sola versin completa y tambin forma parte del paquete
Visual Estudio (conjunto de lenguajes visuales y SQL Server 6.5).
La instalacin bsicamente consiste en ejecutar el programa INSTALAR (versin
espaola) o SETUP (versin en ingls), y seguir los dilogos. Por omisin se instala
en la carpeta C:\VFP, pero si lo desea Ud. puede cambiarla.
Con la instalacin mnima se requieren 25 Mg de espacio en disco, con la tpica
alrededor de 100 Mg, y completa puede ocupar cerca de 200 Mg, incluyendo la
documentacin en lnea (Carpeta C:\VFP\ONLINE) y los audiovisuales explicativos en
ingls (carpeta C:\VFP\ONLINE\MEDIA de casi 60 Mg).
Por omisin deja todo esto (documentacin y audiovisuales para su uso desde el
CD para economizar espacio, pero puede copiarlos al disco rgido s desea acceso
ms rpido y no tiene problemas de espacio en disco.
Equipo Mnimo:
Un PC compatible con IBM con Windows 95 / 98, aunque
funciona con un procesador 486 a 50MHz se recomienda algo
superior (tpicamente Pentium 166 /200 Mhz con 32 MG RAM).
Un mouse o ratn.
Se recomienda un monitor VGA o de mayor resolucin,
preferiblemente color.

3.- Aprendizaje
Vea en men de Ayuda, (ALT + U, D), "Documentacin" que pone en pantalla a
todos los manuales. Podra empezar por ej. por la Gua de Instalacin, Manual del
Usuario, "Manual del Programador", Referencia del Lenguaje, etc..
Ms adelante podr usar ese mismo men de Ayuda - Aplicaciones Ejemplo. Y
estudiar los casos tpicos que all se explican.

4.- Ayuda
Vea en la Ayuda, (ALT + U), Temas de ayuda, y tambin aplicaciones de ejemplo
que se pueden ejecutar y estudiar, Microsoft en la Web (Si tiene Internet), Soporte
tcnico, etc.
Tambin est la ayuda sensible al contexto (F1), el ndice temtico, y la opcin
Buscar.
En la ayuda se puede imprimir, seleccionar, copiar, y luego pegar en un
procesador de textos cualquiera.

5.- Conceptos
Cmo funciona Windows:
Mensajes: Todo lo que sucede dentro de Windows es el resultado del envo de
un mensaje. Cuando se hace clic en una tecla o botn, cuando cambia el tamao a
una ventana, cuando un carcter se digita dentro de una caja de edicin, cuando se
mueve el puntero del mouse, etc., Windows enva un mensaje informando de dicha
situacin.

El volumen de mensajes generados en cada segundo es tremendo. Una queja


comn entre los programadores de C++ que comienzan a trabajar en lenguajes del
tipo del Fox, es que pierden la habilidad de interceptar cientos de mensajes que Windows enva.
El Fox 2.6 para Windows est basado en un sistema de ventanas creado para
DOS, que no se basa en mensajes. Adems de crear la ventana grficamente, el
objetivo era generar cdigo fuente de Fox rpidamente (SPR), adems de generar la
entidad ventana utilizable (SCX).
Fox tuvo que ser mejorado para permitirle a los desarrolladores tener este tipo
de fundamento, adems de permitirle interceptar esta clase de mensajes, llegndose
as a la versin visual, con el agregado del concepto Formulario (En ingls, Form).
Ventana: La del explorador, un botn es una ventana, un documento de Word, un
icono, una caja de textos, botones de opcin, una barra de men, etc. todas son
ventanas.

Formularios
Visual Fox Pro tiene un nombre especial para una pantalla: formulario o Form.
Un formulario no es nada mas que una ventana comn de Windows, pero a un
nivel mayor de abstraccin.
Se podra pensar un formulario, por ejemplo, como un conjunto auto-contenido
de objetos sin tener que preocuparse por una gran cantidad de detalles por cuales se
preocupara un programador de C.
Auto contenidos quiere significar que el formulario tiene propiedades que
pueden ser alteradas para controlar la apariencia y comportamiento del formulario, y
eventos que se disparan cuando ciertos mensajes se envan a los mismos.
Una pantalla de entrada o ventana construida usando el constructor de
pantallas de Fox 2.6 (Screen Builder) no es un objeto, aunque le d la ilusin de que
es as.
Cuando se examina el cdigo generado por Fox Pro 2.6 se puede ver la
sentencia DEFINE WINDOW, las sentencias GET / SAY, y finalmente la sentencia
READ que causa que Fox entre en estado de espera para permitirle al usuario ingresar datos.
Cuando Ud. disea un formulario en Visual Fox, lo hace casi igual que en
Visual Basic y, a diferencia de lo que ocurra en Fox 2.6 para Windows, el formulario
es un objeto, porque tiene propiedades que manipulan la apariencia del formulario, o
cambian la forma en que se comporta.
Se puede fijar los valores (numricos o alfabticos) de dichas propiedad tanto a
tiempo de diseo usando la ventana de propiedades, como durante la ejecucin de
un programa (tiempo de ejecucin o en ingls, runtime).
A cada formulario se le asigna un nico nombre (propiedad Name), y una vez
que tiene un nombre se lo puede referenciar tanto dentro como fuera del mismo
formulario.

Por ejemplo, suponga que tiene un formulario al que llama frmCliente y desea
cambiar el ttulo de dicho formulario (propiedad Caption), se puede referencia dicha
propiedad utilizando la sintaxis del punto como sigue:
frmCliente.Caption = ALTAS

y usando la misma notacin puede colocar el ttulo de una ventana en la


variable lctitulo, usando la sentencia:
lctitulo = frmCliente.Caption
La principal ventaja de utilizar propiedades de objetos contra los distintos
comandos usados hasta ahora, es la consistencia: ms que recordar muchos
diferentes comandos (probablemente cada uno con diferente sintaxis), solamente se
tiene que acordar el nombre de la propiedad, y la sintaxis es la misma.

Eventos
Todo lo que ocurra en Windows es el resultado de enviar un mensaje. Visual
Fox previene que Ud. se las tenga que ver con cientos de diferentes mensajes usando
la nocin de evento.
Un evento es una accin reconocida por un objeto, tal como el clic de un ratn,
o la presin de una tecla en el teclado. Cuando Ud. hace clic con el ratn en un
formulario, Windows enva un mensaje al formulario dicindole que alguien ha hecho
clic sobre l.
Entonces Visual Fox dispara el evento clic del formulario en respuesta a dicho
mensaje. Ud. solamente debe escribir la parte de cdigo que se ejecutar cuando
dicho evento ocurra.
Por ejemplo, puede poner cdigo que cambie el color de fondo del formulario
(Propiedad BackColor) en respuesta a dicho evento.
En la siguiente tabla estn algunos de los eventos ms comunes del objeto formulario:
Evento

Se dispara cuando...

Load
DblClick
MouseMove
Resize
GotFocus

Se carga el formulario por primera vez.


El usuario hace doble clic en el formulario.
El ratn se mueve sobre el formulario.
Se cambia de tamao del formulario
Formulario en foco, desde otro
formulario se hace clic en ste.
Se hace clic fuera del formulario

Lost Focus

Controles
Son aquellos objetos grficos a travs de los cuales los usuarios pueden recibir
y responder a los distintos tipos de mensajes Windows, de forma similar a las que lo
haca el formulario. Otra definicin de control: son una instancia de una clase,
combinada con datos y procedimientos.
Ejemplo: botn (push button), cajas de edicin (edit boxes), cajas de texto (text
boxes), lneas, texto o etiquetas (labels), etc.

Los controles pueden ser vistos como objetos autocontenidos, con propiedades
que le permiten manipular su propia apariencia, comportamiento, y responder a los
eventos mediante cdigo escrito (programacin).
Al igual que pasaba con los formularios, los controles tiene un nico nombre
(Propiedad Name), y se puede cambiar cualquier propiedad usando la notacin del
punto.
Por ejemplo, para hacer que el texto (propiedad Text) que est en una caja de
texto (text Box) que se llama txtCaja desde y hacia la variable lcVar, se usar:
txtCaja.Text = lcVar
lcVar = txtCaja.Text

Algunas propiedades son nicas para un determinado control (no existen en


otros controles), pero existen otras que son comunes a todos los controles, por
ejemplo:
Propiedad

Significado

Enabled
FontName
Left

El control est habilitado


Nombre tipografa usada (caracteres)
posicin del borde izquierdo del control
referida a su ventana contenedora
True (verdadero) si est visible.

Visible

Los controles pueden responder a eventos disparados tanto por accin del usuario como directamente desde el sistema.
Por ejemplo, si el usuario hace clic sobre un control botn de apretar (push
button), Windows le informa envindole un mensaje a dicho control que ha sido apretado (clicked). El control o botn entonces dispara el evento Clic, y ejecuta el cdigo
colocado o asignado a dicho evento.
Al igual que las propiedades, algunos eventos son inherentes a dicho control y
no existen en otros, pero hay eventos comunes a todos los controles, como seran los
siguientes caso tpico:
Evento

Se dispara cuando...

Click
MouseMove
GotFocus

el usuario hace click sobre el control


El ratn se mueve sobre el control.
Control en foco, desde otro control se
hace clic en ste.
Se hace clic en otro control

Lost Focus

Controles Custom
Uno de los principales factores que contribuyeron al xito del Visual Basic fue
la explosin en el mercado de controles suministrados por fabricantes externos o
terceras partes.
Estos controles aparecen en la paleta de controles del Visual Fox Pro junto con
los controles normales (built-in) y se manipulan de forma similar (fijando valores a sus
propiedades y codificando rutinas que dan respuesta a ciertos eventos).
Estos controles cubren un amplio espectro desde botones y cajas de texto
mejoradas, hasta complejas hojas de clculo (grid) o grficos comerciales (Pinacle
Graph).
5

Dichos controles estaban escritos generalmente en C y empaquetados en una


clase especial de libreras dinmicas (como las DLL) que verdaderamente extendieron
la eficacia del lenguaje, por lo que fueron llamadas. VBX (Visual Basic eXtensions),
luego OCX y actualmente se los llama ACTIVE X, ahora tambin soportados todos
ellos por Visual Fox Pro, que ahora en la versin 5, puede crear bibliotecas de enlace
dinmico o DLL.

6.- Tipos de Datos


Los datos con los que se trabaja probablemente incluyan perodos de
tiempo, dinero y elementos contables, as como fechas, nombres, descripciones,
etc.
Cada dato corresponde a un determinado tipo, es decir, pertenece a una
categora de datos que se manipula de maneras similares.
Se podra trabajar directamente con estos datos sin almacenarlos, si bien
perdera la mayor parte de la flexibilidad y potencia que ofrece Visual FoxPro.
Visual FoxPro aporta numerosos contenedores de almacenamiento con el fin de
ampliar su capacidad para manipular fcilmente los datos.

Tipos de datos
Los tipos de datos determinan la manera en que se almacenan los datos y la
forma en que se pueden utilizar tales datos.
Puede multiplicar dos nmeros, pero no puede multiplicar caracteres. Puede
imprimir caracteres en maysculas, pero no es posible imprimir nmeros en
maysculas.
En la siguiente tabla se enumeran algunos de los principales tipos de datos
de Visual FoxPro.

Tabla de Tipos de datos


Tipo

Byte

Numrico

Moneda
(Currency)
Character

Logical
Fecha - Fecha
y hora (Date DateTime)

1
256
1
8

RANGO - Ejemplo
.9999999999E+19 a

.9999999999E+20
922337203685477.5808 a
922337203685477.5807
Prueba
123
01/01/95
.T.(verdadero)
.F. (falso)
{01/01/95}
{01/01/95 12:30:00 pm}
01/01/0100 hasta 31/12/9999

Tipos de campos
Tipo

Byte

Ejemplos

Numrico

1 20 .9999999999E+19 a

Punto Flotante

1 20 .9999999999E+19 a

.9999999999E+20

.9999999999E+20
Texto longitud variable Mximo segn memoria
+/4.94065645841247E-324
a +/8.9884656743115E307
Prueba 123 01/01/95
Cualquier caracter
.T.(verdadero)
.F. (falso)
2147483647 a 2147483646

10

Sin tabla de cdigos

10
4

Sin tabla de cdigos


Limitado por
Memoria disponible
{01/01/95}

Memo

Doble
Precisin
Character

Logical
Integer
(Entero)
Carcter
(Binario)
Memo (Binario)
General
(Obj.OLE)
Fecha - Fecha
y hora (Date DateTime)

1
254
1

{01/01/95 12:30:00 pm}

Contenedores de datos
Los contenedores de datos le permiten realizar las mismas operaciones con
varios datos.
Por ejemplo, sumar las horas que ha trabajado un empleado, multiplicarlas
por el salario por hora y restar los impuestos para determinar el sueldo que ha
percibido el empleado.
Deber realizar estas operaciones para cada empleado y para cada perodo
de pago.
Si almacena esta informacin en contenedores y realiza las operaciones
sobre stos, bastar con sustituir los datos antiguos por los nuevos datos y volver
a ejecutar el mismo programa.
En la siguiente tabla se enumeran algunos de los principales contenedores
de datos disponibles en Visual FoxPro:

Contenedores de datos
Tipo

Descripcin

Variables Elementos individuales de datos


almacenados en la memoria
RAM (memoria de acceso
aleatorio) del PC.
Registro Varias filas de campos
s de
predeterminados, cada uno de
tabla
los cuales puede contener un
dato definido previamente. Las
tablas se guardan en disco.
Matrices Varios elementos de datos
almacenados en la memoria
RAM.

Uso de operadores
Los operadores se utilizan para vincular los datos formando expresiones. Las
expresiones producen un resultado que se puede asignar a un variable o campo
mediante un operador (el operador de asignacin o el signo igual).
Operador =
Tipos de datos vlidos
Ejemplo

Todos

?n=7

Resultado Imprime .T. si el valor almacenado en la variable es 7; de lo contrario,

imprime .F.
Operador +
Tipos de datos vlidos

Numeric, Character,Date, DateTime


Ejemplo
Resultado

? "Fox" + "Pro"

Imprime FoxPro

Operador *, /
Tipos de datos vlidos
Numeric
Ejemplo
? 5 * 5
Resultado
Imprime 25

TABLA DE Funciones de CONVERSIN entre tipos de datos.


Tipo ORIGEN

FUNCION

Carcter o
Memo
Numrico,
Flot, Doble o
Entero
Numrico
Moneda
Carcter o
Memo
Fecha

VAL ( )

Numrico

STR( )

Caracter

NTOM( )
MTON( )
CTOD( )

Moneda
Numrico
Fecha

Carcter
Carcter
Binario
Carcter o
Memo
FechaHora
Fecha
FechaHora
Lgico

Tipo DESTINO

DTOC o Carcter
DTOS
CTOBIN( ) Carcter
Binario
BINTOC( ) Carcter
CTOT( )

FechaHora

TTOC( )
DTOT( )
TTOD( )
IIF( )

Carcter
FechaHora
Fecha
Cualquiera

FUNCION TYPE
Evala una expresin de caracteres y devuelve el tipo de datos de su
contenido.
Sintaxis TYPE (cExpresin)

Tipos devueltos: Character


Argumentos: cExpresin Especifica la expresin que va a ser evaluada, que
puede tratarse tanto de una variable como de un campo, de un campo de memoria o
de cualquier otra expresin.
La expresin tiene que pasarse como una cadena de caracteres, hay que
entrecomillar los nombres de variables de memoria, de campos, etc. Si no entrecomilla
la expresin, la funcin TYPE( ) devolver U (expresin indefinida).
Tipo de datos

Carcter
devuelto

Character
Numeric (tambin flotante,
doble y entero)
Currency
Date
DateTime
Logical
Memo
Object
General
Indefinido

C
N
Y
D
T
L
M
O
G
U

Jerarqua de operadores
El orden de prioridades segn el cual se aplican los operadores al evaluar una
expresin matemtica, se llama en Visual FoxPro, la precedencia de los operadores,
que es de mayor a menor jerarqua:

( ) (agrupamiento de subexpresiones),
^ o ** (exponenciacin),
* y / (multiplicacin y divisin),
% (mdulo),
+ y (suma y resta).

Control del flujo del programa


Visual FoxPro incluye una categora especial de comandos que envuelven a
otros comandos y funciones, determinando cundo y con qu frecuencia se ejecutan
los otros comandos y funciones.
Estos comandos permiten realizar bifurcaciones condicionales y bucles, dos
herramientas de programacin sumamente potentes.
Una estructura de control muy usada es la estructura condicional SI (IF en
ingls). De la ayuda de Vfox sacamos lo siguiente:
IF : Ejecuta condicionalmente un conjunto de comandos dependiendo del
resultado de una expresin lgica.
Sintaxis
IF lExpresin [THEN]
Comandos
[ELSE
Comandos]

ENDIF
Argumentos:
lExpresin
Especifica la expresin lgica evaluada. Si lExpresin da como
resultado verdadero (.T.), se ejecutarn cualesquiera instrucciones posteriores a IF y
anteriores a ELSE o ENDIF (lo que suceda primero).

Si lExpresin es falsa y se incluye ELSE, se ejecutan los comandos


situados despus de ELSE y antes de ENDIF.

Si lExpresin es falsa (.F.) y no e incluye ELSE, se pasarn por alto


todas las instrucciones entre IF y ENDIF. En este caso la ejecucin del programa
continuar con la primera lnea de comando a continuacin de ENDIF.
Comentarios : Puede anidar IF ... ENDIF dentro de otro bloque IF ... ENDIF.

Los comentarios precedidos de && se pueden colocar en la misma lnea


despus de IF, ELSE y ENDIF. Estos comentarios se pasan por alto durante la
compilacin y la ejecucin del programa.

Continua...

Curso de Visual Foxpro


Entorno de Desarrollo de Visual Foxpro (II)
(Diseadores y Asistentes - Gestin de Ficheros - Creacin de
Tabla mediante asistente)
Toda la interfaz de desarrollo incorporada por "Visual Foxpro" est orientada a
la generacin rpida de aplicaciones (RAD). El objetivo final es la generacin de
aplicaciones seguras en un tiempo razonablemente pequeo. Todo esto se consigue
dejando que el trabajo a bajo nivel lo efecte el sistema, quedando para el
programador el aspecto visual y el anlisis de la aplicacin. 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
gestin de todos los archivos manejados por una aplicacin. A partir de la informacin
contenida en un proyecto se generan las aplicaciones que pueden ser distribuidas

10

libremente a todos los usuarios. Adems, Visual Foxpro incorpora una herramienta
que asiste al programador para crear disquetes de instalacin que incluyan toda la
informacin necesaria para instalar esta aplicacin en otros ordenadores.
Diseador de Bases de Datos
Como apoyo al sistema, incorpora un potente gestor de bases de datos. Este
gestor maneja bases de datos que actan como referente de la informacin adicional
relacionada con tablas, ndices, relaciones, reglas de validacin, integridad referencias
y un sin nmero ms de informacin. De esta forma, una base de datos mantiene
actualizada y centralizada toda la informacin de funcionamiento de las tablas que con
ella estn relacionadas. Por ejemplo, cada vez que se modifica un registro en una
tabla perteneciente a una base de datos, se comprueban las reglas de modificacin
para esta tabla. Si por cualquier razn no es posible actualizar la tabla porque una de
las reglas de validacin ha fallado, se devuelve la tabla a su estado original,
advirtiendo, por supuesto, al usuario de esta eventualidad.
Diseador de formularios
Totalmente orientados al objeto, permiten disear el aspecto grfico final de una
aplicacin. Permiten la inclusin de objetos estndar en Windows, tales como casillas
de verificacin, grupos de opciones, marcos de pgina, imgenes, controles OLE.
Gracias al diseador 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 slo eso, es posible que cada entorno de datos sea
privado para cada formulario. De esta forma pueden abrirse varias instancias de un
mismo formulario sin que existan problemas de colisin de datos entre las dos
instancias definidas.
Diseador de informes y etiquetas
A la hora de visualizar datos, ya sea por pantalla o impresora, Visual FoxPro
incorpora un potente diseador de informes y etiquetas. En un informe se pueden
definir objetos dentro de las tres bandas, cabecera, pie o detalle, y, adems, distribuir
el informe en varios grupos que muestren el resultado de clculos sumatorios u otros
realizados desde el propio formulario.
A estas prestaciones hay que aadir 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.
Diseador de mens
Este diseador se utiliza para crear mens personalizados en la aplicacin y as
sustituir el men incorporado por Visual FoxPro. El sistema utilizado se basa en la
creacin de unos ficheros donde estn las definiciones de men. A posteriori, la
informacin contenida en estos ficheros de men es analizada por un generador de
cdigo con la finalidad de generar de forma automtica cdigo fuente con las
definiciones de men.
Asistentes
Para usuarios incipientes, los asistentes pueden ayudar a crear nuevos tipos de
ficheros de forma sencilla y rpida. No por ello se elimina la posibilidad de modificar
los ficheros creados, ya que stos pueden ser alterados posteriormente mediante su
diseador correspondiente.
Los generadores de controles ayudan en la creacin de nuevos controles
insertados en los formularios. Estos generadores se encuentran totalmente abiertos y
el usuario puede incorporar sus propios generadores.

11

Diseador de consultas y vistas


Cuando se trata de recuperar informacin, los generadores de consultas y vistas
constituyen un apoyo indispensable para poder generar expresiones SQL. Si estas
sentencias extraen informacin de la propia base de datos, se denominan vistas
locales. Cuando estas vistas extraen informacin de una base de datos externa, se
denominan vistas remotas.
Apariencia de la ventana de sistema
El sistema intrprete se basa en la utilizacin de la ventana Comandos. Desde
esta ventana se escriben sentencias que usualmente provocan una accin 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 accin 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 segn las necesidades del usuario.

Tipos de Ficheros
Como se han dicho, el proyecto guarda informacin acerca de la localizacin de
cada archivo. Como ayuda se presenta una lista de las posibles extensiones
asociadas con cada tipo de ficheros y una breve descripcin de cada tipo.
Tipo
Proyecto

Extensiones
relacionadas
PJX, PJT

Descripcin

Bases de Datos

DBC, DCX, DCT

Formulario

SCX,SCT

Bibliotecas de
Clases Visuales
Tablas

VCX,VCT
DBF,FPT

Bibliotecas conteniendo varias clases


definidas por el usuario.
Tablas y fichero memo asociados.

ndices

CDX,IDX

Ficheros ndice compactos y simples.

Documentacin

ACT

Informes

FRX,FRT

Fichero conteniendo el diagrama de


acciones de un fichero PRG generado
por el asistente de documentacin.
Informes.

Etiquetas

LBX,LBT

Etiquetas.

Libreras Windows

DLL

Librera de enlace dinmico Windows

Errores

ERR

Fichero de seguimiento de errores de


compilacin.

Ncleo central de desarrollo. Efecta


el seguimiento a todos los ficheros
relacionados con una aplicacin.
Tabla contenedora para informacin
relacionada con tablas, ndices,
relaciones, vistas y conexiones.
Ficheros de definicin de formularios.

12

Ejecutables

EXE

Fichero ejecutable Visual Foxpro.

Macros

FKY

Fichero de definicin de macros.

Bibliotecas API

FLL

Programas

PRG,FXP

Biblioteca
de
enlace
dinmico
Windows.
Programa Fuente y Compilado.

Ayuda

HLP

Fichero de ayuda grfica.

Memoria

MEM

Mens

MNX,MNT

Fichero de almacenamiento
variables de memoria.
Fichero de definicin de mens.

Mens generados

MPR,MPX

Control OLE

OCX

Fichero generado y compilado. A


partir de una definicin de mens.
Fichero control ActiveX

Consulta SQL

QPR,QPX

Fichero de consulta SQL.

Copias de seguridad

TBK,BAK

Texto

TXT

Copias de seguridad de diversos


ficheros.
Ficheros de Texto.

Constantes

Fichero de constantes predefinidas.

de

Gestin de ficheros
Desde el men Archivo se realizan las acciones relacionadas con archivos. Consta de
las opciones:
Opcin
Nuevo
Abrir
Cerrar
Guardar
Guardar como...
Revertir

Descripcin
Crea un nuevo fichero de cualquier tipo
Abre un fichero de cualquier tipo.
Cierra el archivo en uso.
Actualiza las modificaciones efectuadas al fichero actual en
disco.
Salva el fichero actual en disco con un nuevo nombre.
Recupera la versin guardada en disco del fichero actual.

Cuando se desea crear un nuevo fichero, se muestra el cuadro de dilogo tal


como vemos en la Figura. Este cuadro de dilogo permite seleccionar el tipo de fichero
que se desea crear. Existen diversos tipos de ficheros que permiten su creacin
mediante asistentes, que facilitan enormemente la tarea de crear nuevos ficheros.

Los Asistentes
Los asistentes proporcionan el mtodo ms eficaz y sencillo de apoyo a los nuevos
usuarios en Visual Foxpro. Cubren prcticamente todos los tipos de ficheros bsicos

13

que se pueden crear, desde tablas a formularios, pasando por informes, consultas, etc.
Veamos cules son:
Asistentes
Asistente para formularios
Asistente para formularios
uno a varios
Asistentes para tablas
Asistente para importar
datos a tablas
Asistente para tablas
dinmicas
Asistentes para consultas
Asistente para tablas de
referencias cruzadas
Asistentes para grficos
Asistente para informes
Asistente para informes de
uno a varios
Asistente para informes
de grupos/totales
Asistentes para etiquetas
Asistente para combinacin
de correspondencia
Asistente para vistas
Asistente para vista remota

Descripcin
Crea nuevos formularios. Crea ficheros de tipo
SCX.
Crea formularios con soporte de ficheros
relacionados de uno a muchos. Crea ficheros
SCX.
Crea nuevas tablas libres o definidas en una base
de datos. Crea ficheros de tipo DBF.
Importa datos a una tabla procedentes de otro
origen.
Crea tablas de hoja de clculo utilizables desde
Microsoft Excel.
Crea consultas con sentencias SQL almacenadas
en ficheros de tipo QPR.
Crea una consulta en formato hoja de clculo.
Crea ficheros de tipo QPR.
Crea un nuevo grfico en Microsoft Graph a
partir de la informacin contenida en una tabla.
Crea una nueva definicin de informe. El tipo de
fichero creado es FRX.
Crea una nueva definicin de informe
relacionando una tabla primaria con otra
secundaria. Crea fichero de tipo FRX.
Crea un informe con definicin de resumen para
grupos y totales. Crea ficheros de tipo FRX.
Crea un nuevo fichero de definicin para imprimir
etiquetas postales. Crea un fichero de tipo LBX.
Crea un origen de datos compatible con el
procesador de texto Microsoft Word o cualquier
otro.
Crea una nueva definicin de vista en una base de
datos. La informacin generada por este asistente
se guarda en una base de datos DBC.
Crea una nueva definicin de vista remota. El fin
es acceder a otro tipo de informacin contenida a
su vez en un servidor de datos. Esta nueva vista
se almacena en una base de datos DBC.

Crear una nueva tabla mediante el asistente


Para crear una nueva tabla mediante el Asistente para tablas, debe proceder
de alguna de estas dos formas:

Desde el men Herramientas, escoja el submen Asistentes. De este


men, escoja la opcin Tabla.
Desde el men principal, escoja del men Archivo la opcin Nuevo CTL+N
o escoja el botn de comando Nuevo de la barra de herramientas Estndar.
Visualice a continuacin el cuadro de dilogo para la eleccin del nuevo tipo
de fichero a crear. Escoja Tabla y pulse en el botn de comandos Asistente.

14

El asistente genera una nueva tabla siguiendo tcticamente 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 estndar aportadas por el propio asistente. De esta forma,
se puede crear una nueva tabla basndose en tipos ms o menos ajustados a las
necesidades del usuario.
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 modificacin de los parmetros
definitorios de un campo, como son su nombre, el ttulo, el tipo, el ancho, decimales y
soporte de valores nulos. Bien, en cuanto al ttulo, slo hay que hacer una
diferenciacin, y es que si no hay una base de datos definida y abierta en el sistema,
no se puede crear o modificar un ttulo asociado a un campo. Esta es una de las
caractersticas aportadas por las bases de datos, la posibilidad de ampliar la
informacin relativa a tablas. Otro caso es el nombre del campo: si no existe una base
de datos abierta, no se puede ampliar su descripcin ms all de diez caracteres.
Como se ver ms adelante, es posible asignar nombres de campo hasta 255
caracteres.
Paso 3. lndexacin
Para poder localizar cualquier tipo de informacin de una tabla es necesario recurrir a
la creacin de ndices. Los ndices proporcionan un mtodo rpido de localizacin de
registros basndose en expresiones. La expresin a localizar se va comparando con el
contenido del ndice, hasta localizar el registro cuyo valor en la clave de ndice
coincide con la expresin buscada.
Paso 4. Finalizar
Una vez que 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 modificarla mediante el diseador de tablas para aadirle prestaciones adicionales

Manejo de tablas
Suponiendo que hubiramos elegido la opcin Guardar la tabla y examinarla
en el Asistente para tablas, obtendra una nueva ventana Examinar con la nueva
tabla vaca.
Lo que aqu vemos es una ventana tpica utilizada para examinar tablas. En este
caso estamos visualizando una tabla con registros. Dentro de la ventana distinguimos
varios apartados.

Columnas Dependiendo del tamao de la ventana Examinar, se muestran


ms o menos columnas. Cada columna visualiza en el encabezado el
nombre del campo, o bien, el ttulo definido en la base de datos para este
campo. Usualmente, marcando en el ttulo de un campo y arrastrndolo a
una nueva posicin, modificamos el orden de visualizacin de columnas.
Seleccin de celda. Para indicar en qu registro est posicionado, existe un
indicador situado a la izquierda de la primera columna visualizada. Este
indicador una flecha indicando que el puntero de registro est posicionado
en esa fila. Asimismo, la celda que tiene el enfoque de lectura visualiza el

15

cursor de edicin y est remarcada con un cuadro cuyos bordes son


ligeramente mayores que las lneas separadoras. Como se puede observar
en la figura, todas las funciones de edicin estn disponibles, tales como
marcar un determinado segmento de caracteres, insertar o incluso marcar
todo el contenido del campo.
Estado del registro. Adyacente al indicador de registro se encuentra el
indicador de estado de la marca de eliminacin. Si el registro est marcado
para borrar, este cuadro cambia su contenido de color negro.

Edicin de registro interactivo


Desde la venta Comando se pueden utilizar estos comandos para abrir la ventana
Examinar y realizar modificaciones en cualquier tabla.
Comando/Funcin
APPEND [BLANK]
[IN nreaTrabajo | cAliasTabla]
[NOMENU]
BROWSE y CHANGE/EDIT
MODIFY GENERAL CampoGeneral1
[,CampoGeneral2 ...]
[NOMODIFY]
[NOWAIT]
[[WINDOW NombreVentana1]
[IN [WINDOW] NombreVentana2 |
IN SCREEN]]
MODIFY MEMO CampoMemo1
[,CampoMemo2 ...]
[NOEDIT]
[NOMENU]
[NOWAIT]
[RANGE nCarcterInicial,
nCarcterFinal]
[[WINDOW NombreVentana1]
[IN [WINDOW ] NombreVentana2 |
IN SCREEN]]
[SAME]
[SAVE]

Descripcin
Abre la ventana Cambiar para aadir
registros a una tabla interactivamente.
Abren las ventanas Examinar y Cambiar,
respectivamente.
Abre una nueva ventana para poder editar
un campo de tipo general.

Abre una nueva ventana para permitir


editar un campo de tipo memo.

Opciones del men tabla


Cuando se abre una nueva ventana Examinar, se crea un nuevo men en la
barra de mens de sistema. El men Tabla contiene las opciones bsicas para el
manejo de tablas. Veamos algunas:
Aadir un nuevo registro
Elija la opcin Aadir nuevo registro, o bien, pulse la combinacin de teclas
CTRL+Y. Se inserta un nuevo registro en la tabla que se est examinando. Tambin es
posible aadir registros desde la ventana Comandos emitiendo alguna de las
sentencias:

16

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 eliminacin de todos los registros marcados, cuyo proceso requiere el
uso del comando PACK. Como es evidente, tambin se puede realizar esta accin
como todas las dems, desde la ventana 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.
Ir a un registro determinado
Se puede ir a un registro determinado modificando la celda activa mediante el
ratn y las barras de desplazamiento vertical, o el teclado mediante los cursores. Pero
tambin se utilizar el submen Ir al registro, cuyo contenido analizado es el siguiente:
Opcion
Primero

ltimo

Siguiente

Anterior

Registro nmero

Descripcin
Va al primer registro de la tabla.
Desde la ventana Comandos habra
que utilizar:
GO TOP
Va al ltimo registro de la tabla.
Desde la ventana Comandos habr
que escribir:
GO BOTTOM
Posiciona el puntero de registro en el
siguiente registro. Obteniendo el
mismo resultado que utilizando esta
sentencia
desde
la
ventana
Comandos:
SKIP 1
Posiciona el puntero en el registro
anterior.
Desde
la
ventana
Comandos:
SKIP -1
Cambia el puntero de registro a un
registro especfico. Desde la ventana
Comando habra que emitir la
siguiente sentencia:
GO nRegistro

Encontrar

Donde nRegistro es el nmero de


registro donde se desea posicionar el
puntero de registro.
Encuentra el registro que cumpla la
expresin de bsqueda. Veremos ms

17

adelante la sintaxis del comando


LOCATE utilizado por esta opcin de
men

Continua...

Curso de Visual Foxpro


Entorno de Desarrollo de Visual Foxpro (III)
(Diseadores y Asistentes - La ventana Sesin de datos Manejo de Registros Borrados - Importacin/Exportacin de
Datos - Asistente para importar datos
- Formularios - Crear un Formulario Rpido)

Bsqueda de registros
Al realizar una consulta en busca de uno o varios registros que cumplan los
criterios de bsqueda en una tabla es necesario aclarar algunos conceptos bsicos.
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 combinacin vlida.
Por otra parte, existe el concepto de expresin de bsqueda. Una expresin de
bsqueda se evala y compara con el registro activo. Si no se cumple la expresin de
bsqueda, contina con el siguiente registro, y as hasta llegar al final de la tabla. Se
puede comprobar si una bsqueda ha tenido xito observando en qu posicin se
encuentra el puntero de registro.
Por ltimo, esta bsqueda contina mientras se cumpla una segunda
expresin. Es decir, se recorre toda la tabla mientras esta expresin sea verdadera; en
cuanto evale a falsa, finaliza la bsqueda, aunque no haya recorrido toda la tabla.
Cuando se elige la opcin Encontrar del submen Ir al registro, se visualiza el
cuadro de dilogo, que resume los tres conceptos que se acaban de perfilar. La
utilidad de este cuadro de dilogo es construir a partir de la informacin introducida en
el mismo una sentencia completa utilizando el comando LOCATE. Por tanto, lo que
vaya introduciendo en este cuadro de dilogo se incorporar como argumento tras el
comando LOCATE. Cuando se pulse en el botn de comando Encontrar, la sentencia
LOCATE se emite desde la ventana Comandos.
Veamos estos conceptos aplicados a la bsqueda de registros.

18

Alcance
El Alcance delimita la cantidad de registros que se van a procesar e incluso
desde y hasta qu registro va a cubrir la bsqueda. Cuando se aceptan las
modificaciones introducidas en este cuadro de dilogo se aaden los argumentos
necesarios en la sentencia LOCATE.
Alcance

Argumento

Descripcin

Todos

ALL

Incluye la totalidad de los registros en la


bsqueda. El lmite de bsqueda va desde el
registro nmero 1 hasta el ltimo.

Siguiente

NEXT n

Incluye slo los n registros siguientes al actual en


la bsqueda. Es decir, especificando 10 en el
cuadro de texto, incluir slo los 10 siguientes
registros a partir del actual en la bsqueda. Por lo
tanto, el lmite se centra desde el registro actual
hasta el nmero de registros especificados.

Registros

RECORD n

La bsqueda se limita nicamente al nmero de


registro especificado por este cuadro de texto.

Restantes

REST

Comienza la bsqueda a partir del registro actual


y contina hasta el final de la tabla. Por tanto, el
intervalo de bsqueda se limita desde el registro
actual al ltimo de la tabla.

Clusula FOR
Este es el ncleo bsico de toda sentencia de bsqueda. Veremos que hay
multitud de comandos que pueden incorporar esta clusula para delimitar aquellos
registros que cumplen los criterios especificados por esta misma clusula.
Cuando se elige este botn de comando, se activa el generador de expresiones
de Visual Foxpro. Esta es una herramienta de gran utilidad para la construccin de
expresiones, desde la ms simple hasta la ms compleja. Veremos el generador de
expresiones ms ampliamente en secciones siguientes.
Para confeccionar el ejemplo que veremos, ha bastado elegir el campo del
cuadro de lista Campos. A continuacin se ha escrito la comparacin. Por tanto,
estamos buscando aquel registro cuyo nombre de empresa sea igual a Centro, o al
menos comience con esos caracteres.
Clusula WHILE
La seleccin de registros efectuada mediante la clusula FOR se refiere a toda
la tabla por completo, y eso precisamente se diferencia de la clusula WHILE. Esta
ltima restringe el mbito de bsqueda a que la expresin lgica incluida con esta
clusula sea cierta. En el momento en que no se cumpla la expresin, el comando que
incluye esta clusula finaliza inmediatamente.
Por esta razn se puede decir que en este caso la bsqueda se realizar
mientras se cumpliera la clusula WHILE, finalizando la bsqueda cuando no se
cumpliera, aunque no se hubiera recorrido toda la tabla.

19

La ventana Sesin de datos


Este cuadro de dilogo se utiliza como gestor para las tablas abiertas. Consta
de dos cuadros de lista que visualizan, por una parte, las tablas abiertas y, por otra, las
relaciones establecidas entre ellas. Cada tabla tiene asociadas una serie de
propiedades a las cuales es posible acceder desde el botn de comando
Propiedades. Asimismo, es posible abrir, cerrar tablas o establecer nuevas relaciones
entre las tablas abiertas. Pero la funcin primordial puede ser la de examinar el
contenido de la tabla seleccionada en el cuadro de lista Alias utilizando el botn de
comando Examinar. La particularidad de esta opcin reside en que se recupera el
estado en que se cerr la ventana Examinar para esa tabla la ltima vez, incluyendo
tamao y posicin de la ventana o el tipo y tamao de la fuente utilizada.

Modificar las propiedades de la Tabla


Cuando se pulsa el botn de comando Propiedades, se accede al cuadro de
dilogo 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 se
encuentra la posibilidad de activar un ndice determinado, filtrar los registros de una
tabla o restringir la informacin que se muestra en una ventana Examinar
predeterminada.
Bfer de datos
El bfer de datos se activa si se elige la opcin Activar almacenamiento en
bfer de datos. Esto significa que los cambios que se efecten sobre la tabla no
sern actualizados en forma inmediata, y dependiendo del tipo de bfer de datos
elegidos, son potencialmente descartables en un momento determinado.
Siempre es posible cambiar el estado del bfer de datos, y de hecho, si no se
indica lo contrario, la tabla no se abre inicialmente con ningn bfer de datos activo.
Por tanto, si se desea utilizar el bfer de datos, es necesario activarlo desde este
cuadro de dilogo, o bien, desde la ventana Comandos mediante la funcin DBSET
PROP().
Seleccin de ndice
Desde este cuadro combinado se elige el orden activo para el rea de trabajo
actual. Se muestran en l todas las etiquetas del ndice definidas para esta tabla. De
este modo se pueden utilizar el comando SEEK y la funcin SEEK() para encontrar el
registro que cumpla el criterio de bsqueda.
Filtro de datos
Desde el cuadro de texto o utilizando el generador de expresiones, llamado al
pulsar el botn de comando, generamos una expresin de filtro de datos. Esto significa
que cuando abramos una ventana Examinar para esta tabla, slo se van a visualizar
aquellos registros que cumplan la condicin escrita aqu.
Filtro de campos

20

Del mismo modo que se establecen filtros para visualizar una parte de los
datos presentes en una tabla, es posible realizar una accin anloga con las columnas
definidas en una tabla. De este modo, slo aparecen en la ventana Examinar aquellas
columnas pedidas en esta opcin.

Examinar
La Ventana Examinar tiene una serie de caractersticas interesantes, entre las
cuales podemos destacar las siguientes:
Modificar el aspecto de las columnas
Las columnas de datos pueden cambiar su posicin y tamao.
Definicin de particiones
Una Ventana Examinar puede dividirse verticalmente en dos particiones. Cada
particin puede funcionar de forma independiente y presentar un aspecto distinto.
Fuentes
Cualquier fuente definida en Windows puede utilizarse para visualizar, en
cualquier tamao y tipo, informacin en una ventana Examinar.

Abrir y Cerrar tablas


Estos dos botones de comando permiten abrir y cerrar tablas. Cuando se pulsa
en el botn de comando Abrir se selecciona la ltima rea de datos activa y se abre
en esa rea. Si existe una tabla seleccionada en la lista de alias activo, el comando de
cierre se refiere al rea que est ocupando esa tabla.

Establecer relaciones
Si existen al menos dos tablas abiertas, es posible establecer relaciones entre
ambas. La forma de establecer relaciones entre la s dos consiste en pulsar el botn de
comando Relaciones teniendo una de las dos seleccionada en el cuadro de lista
Alias. En ese momento, en el cuadro de lista Relaciones aparece la tabla elegida.
Para establecer una relacin 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 relacin. En primer lugar elegimos un campo de la tabla principal,
y a continuacin, el orden activo en la tabla secundaria.

Manejar registros borrados


La eliminacin de registros puede realizarse de tres formas distintas, desde la
ventana Examinar, utilizando el marcador de registros borrados; desde la opcin
Alternar marca de eliminacin del men Tabla, o bien, mediante el comando
DELETE desde la ventana Comandos.

21

El efecto inmediato es que el registro actual queda marcado para borrar y se


requiere la posterior intervencin 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 Examinar, mediante la
opcin Alternar marca de eliminacin, presente en el men 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 opcin
Eliminar registros del men 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 opcin Desmarcar registros del men
Tabla. La finalidad de este comando es eliminar fsicamente todos los registros
marcados. Despus de efectuar esta operacin no ser posible recuperar los registros
eliminados de ninguna forma.

Uso de registros borrados


A continuacin se detallan todos los comandos y funciones relacionados con el
uso de registros borrados.

22