Anda di halaman 1dari 81

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.
Comando/Funcin
DELETE [Alcance] [FOR lExpresin1]
[WHILE lExpresin2]
[IN nreaTrabajo | cAliasTabla]
[NOOPTIMIZE]
DELETE FROM
[NombreBaseDatos!]NombreTabla
[WHERE CondicinFiltro1
[AND | OR CondicinFiltro...]]
DELETE ([cAliasTabla | nreaTrabajo])
RECALL
[Alcance] [FOR lExpresin1]
[WHILE lExpresin2]
[NOOPTIMIZE]
PACK [MEMO] [DBF]

SET DELETED ON|OF

Descripcin
Borra uno o ms registros de una tabla.
Puede utilizarse el alcance o las
expresiones FOR y WHILE para
determinar el rango de registros a borrar.
Marca registros para eliminar mediante
SQL
Indica si el registro actual est marcado
para borrar.
Recupera uno o ms registros marcados
para borrar. Puede utilizarse la clusula de
alcance o las expresiones FOR y WHILE
para delimitar el rango de registro a
recuperar.
Elimina de la tabla activa todos los
registros marcados para borrar. Indicando
la clusula MEMO compacta el espacio
utilizado por el archivo de campos memo
FPT. Si se incluye la clusula DBF, se
ignora la compactacin del archivo memo.
Indica si los registros marcados para
22

ZAP
[IN nreaTrabajo | cAliasTabla]
BLANK
[FIELDS ListaCampos]
[Alcance]
[FOR lExpresin1]
[WHILE lExpresin2]
[NOOPTIMIZE]

borrar estn disponibles cuando se utilizan


otros comandos.
Elimina todos los registros de la tabla
especificada, estn o no marcados para
borrar.
Borra toda la informacin de uno o ms
registros sin marcarlos para borrar.

Reemplazar valores en campos


Mediante la ventana Examinar, tal como hemos ido viendo hasta ahora, es
posible alternar el contenido de uno o ms 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 operacin encontramos la opcin Reemplazar campo en el
men Tabla. Esta opcin muestra un cuadro de dilogo que permite efectuar este tipo
de modificaciones masivas.

Importacin/Exportacin 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
ficheros creados por otras aplicaciones. De esta forma podemos extraer informacin
de los mismos, tratarla y, si resulta til, enviarla de nuevo al tipo de datos de origen.
Comando/Funcin
EXPORT
IMPORT
APPEND FROM
APPEND MEMO
COPY TO

Descripcin
Exporta datos de una tabla de Visual
FoxPro a cualquiera de los tipos
soportados.
Importa datos desde un fichero de datos
externo en alguno de los formatos
soportados.
Agrega registros de otra tabla al final de la
tabla activa.
Copia en un campo memo el contenido de
un archivo de texto.
Crea una tabla nueva a partir del
contenido de la tabla activa.

Importar datos
Microsoft Visual FoxPro soporta los siguientes tipos de ficheros, de los cuales
puede extraerse informacin si elegimos la opcin Importar del men Archivo:
Tipo
Microsoft Excel 5.0 (XLS)

Descripcin
Esta opcin permite importar datos de
hojas de clculo creadas con Microsoft
Excel 5.0.

23

Microsoft Excel 2.0, 3.0 y 4.0 (XLS)


Lotus 1-2-3 3.x (WK3)
Lotus 1-2-3 2.x (WK1)
Lotus 1-2-3 1-A (WKS)
Paradox 3.5 y 4.0 (DB)
Symphony 1.10 (WR1)
Symphony 1.01 (WRK)
FrameWork II (FW2)
Multiplan 4.01 (MOD)
RapidFile (RPD)

Esta opcin importa datos de hojas de


clculo de Microsoft Excel Versiones 2.0,
3.0 y 4.0.
Importa datos procedentes de una hoja de
clculo realizada con Lotus 1-2-3 versin
3.x.
Importa datos procedentes de una hoja de
clculo realizada con Lotus 1-2-3 versin
2.x.
Importa datos procedentes de una hoja de
clculo realizada con Lotus 1-2-3 versin
1-A
Importa datos procedentes de la base de
datos Paradox en su versin 3.5 y 4.0.
Permite importar datos procedentes de la
hoja de clculo del paquete integrado
Symphony versin 1.10.
Permite importar datos procedentes de la
hoja de clculo del paquete integrado
Symphony versin 1.01.
Permite importar datos procedentes de la
hoja de clculo del paquete integrado
FrameWork II.
Permite importar datos procedentes de la
hoja de clculo Multiplan versin 4.01.
Importa datos procedentes de RapidFile

Asistente para importar datos


Este asistente es adecuado en aquellas ocasiones en las que se necesita
moldear algunos aspectos de la importacin de datos. Este sencillo pero potente
asistente permite especificar el origen y destino de los datos, ver qu datos se estn
importando directamente y especificar el nombre y tipo de cada uno de los campos
que se estn importando.
Paso 1. Archivos de origen y de destino.
En este primer paso especificamos el tipo de fichero de datos del que se
van a extraer los datos. A continuacin se indica el fichero de datos y,
por ltimo, el nombre de la tabla sobre la que se van a copiar los
registros importados.
Paso 2. Determinar el formato de los datos
En este se puede tener una vista previa de la informacin que se
pretende importar. Esto es importante, pues permite identificar
correctamente los datos que pretendemos insertar, ya que podemos
volver atrs y especificar otro origen de datos en cualquier momento.
Paso 3. Definir campos importados
Antes de efectuar la importacin de datos podemos ver la estructura de
la informacin. Esta pantalla permite el cambio de los siguientes
parmetros: Nombre, Tipo, Ancho y posiciones Decimales.
Paso 3. Especificar opciones internacionales.

24

A la vista de la informacin, se puede alternar unas cuantas


propiedades de la informacin a importar. Por ejemplo, si se ha
especificado un archivo de texto como origen de datos, podemos
modificar diversos aspectos de esta transformacin, tal como especificar
el carcter separador de campos.

Formularios. Introduccin
En principio, la ventana Examinar puede se suficiente herramienta para la
visualizacin y modificacin de tablas, pero, adems, podemos utilizar formularios para
dar una presencia ms til y verstil a la misma informacin.
Los formularios contienen cualquier tipo de control, desde etiquetas, pasando
por cuadros de texto, cuadros de edicin, hasta cuadros combinados o cuadros de
lista. Existe un nmero suficiente de controles disponibles de forma estndar,
pudindose ampliar esta lista con controles diseados por el propio usuario o controles
universales OCX.
Un formulario tiene asociado un entorno de datos que permite abrir y cerrar de
forma automtica las tablas que el mismo formulario necesita. Incluso es posible
utilizar el resultado de consultas de una base de datos.
Otra caracterstica importante relativa a los controles insertables en un
formulario es la vinculacin 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 Productos, o una casilla de
verificacin indicando si ese producto dispone de existencia suficientes. En definitiva,
se trata de visualizar informacin de forma que el usuario identifique claramente el tipo
de informacin que necesita para tomar decisiones.

Crear un formulario rpido


La forma ms sencilla de crear formularios es, en principio, recurrir al asistente
para la creacin de formularios. Puede llamar a este asistente cuando crea un nuevo
formulario, o bien desde el men Asistentes, escogiendo la opcin Formulario.
Como datos bsicos, tal como se va a comprobar a continuacin, este asistente
slo necesita una tabla y qu campos de la misma van a participar en la generacin
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 Campos
disponibles hacia el cuadro de lista Campos seleccionados.
Paso 1. Seleccin de campos
El primer paso consiste en la eleccin 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 visualizacin y edicin 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 edicin, el encabezado que se
haya definido en la base de datos si la tabla pertenece a una.
Paso 2. Estilo

25

Existe una serie de estilos predefinidos que el asistente utiliza como


patrn en el momento de generar el aspecto visual general del
formulario y cada uno de los controles que lo contienen. Esta prestacin
se completa con la posibilidad de elegir botones de comando grfico 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, adems, insertar o
eliminar registros de la tabla.
Paso 3. Orden.
Si la tabla no dispone de una secuencia de ordenacin, 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
atrs o adelante cuando se utilizan los botones de comando de
desplazamientos por registros.
Paso 4. Finalizar
Como informacin final, el asistente necesita saber el ttulo 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 presentacin
del formulario en proceso de generacin, con el fin de alterar cualquier informacin de
las que se han definido en los tres pasos anteriores.
Ejecutar el nuevo formulario
Una vez que se ha generado el formulario y tras realizar unas pequeas
modificaciones podemos obtener un formulario. Como se podr observar, en la parte
superior del formulario figura el ttulo elegido para el mismo: Empleados

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 ms posible y de esta forma aprovechemos mejor el tiempo. Las macros
permiten grabar secuencias de caracteres y asociarlas a una combinacin de teclas.
De esta forma, la pulsacin de esta combinacin de teclas a posteriori ejecuta la
secuencia de caracteres guardada.

Las Macros de sistema


Quiz la macro ms conocida, pero no por ello reconocida como tal, sea F1,
utilizada para activar la ayuda de sistema. Existen otras macros ms que vamos a ver

26

a continuacin y que son las que incorpora Visual FoxPro en el momento de ser
instalado:
Macro

Descripcin

Accin

F2

Abre la ventana Sesin de Datos

Ejecuta la siguiente secuencia de teclas:


SET (INTRO).
Es decir, escribe en la ventana de
comandos el comando SET y a
continuacin la tecla INTRO.

F3

Lista los registros de la tabla


activa por pantalla

Ejecuta la siguiente secuencia de teclas:


LIST (INTRO).
Tal como hemos visto en la macro
anterior, escribe en la ventana de
comandos el comando LIST y a
continuacin la tecla INTRO.

F4

Efecta un directorio por pantalla

Ejecuta la siguiente secuencia de teclas:


DIR (INTRO).

F5

Muestra la estructura de la tabla


activa por pantalla

Ejecuta la siguiente secuencia de teclas:


DISPLAY STRUCTURE (INTRO).

F6

Muestra el estado del sistema por


pantalla

Ejecuta la siguiente secuencia de teclas:


DISPLAY STATUS (INTRO).

F7

Muestra el contenido de la
memoria por pantalla

Ejecuta la siguiente secuencia de teclas:


DISPLAY MEMORY (INTRO).

F8

Muestra el contenido del registro


actual de la tabla activa por
pantalla

Ejecuta la siguiente secuencia de teclas:


DISPLAY (INTRO).

F9

Abre la ventana de insercin de


nuevos registros en formato ficha
de la tabla activa

Ejecuta la siguiente secuencia de teclas:


APPEND (INTRO).

Cmo grabar una macro?


Es muy sencillo; para ello basta con pulsar las teclas MAYSCULAS-F10.
Visualizamos un cuadro de dilogo pidiendo la combinacin de teclas a la cual vamos
a asociar la secuencia de teclas que estn a punto de ser grabadas. Es decir, cada vez
que pulsemos la secuencia de teclas que se indica en este momento, se repetir las
teclas pulsadas a continuacin de la salida de este cuadro de dilogo.
Cuando pulsemos Aceptar en este cuadro de dilogo, todas las teclas
pulsadas quedarn registradas en la macro llamada Control-Alt-F, invocada siempre
que se pulse la combinacin de teclas CTRL-ALT-F.
Conozcamos los nombres de cada una de las teclas para poder identificarlas
correctamente.
Nomenclatura de teclas
Tecla

Nombre

LEFTARROW

RIGHTARROW
27

UPARROW

DNNARROW

Inicio (Home)

HOME

Fin (End)

END

AvPg (Page Up)

PGUP

RePg (Page Down)

PGDN

Sup (Del)

DEL

Borrar (Backspace)

BACKSPACE

Borrar espaciadora (Spacebar)

SPACEBAR

Ins

INS

Tabulador

TAB

Retroceder tabulador (Shift Tab)

BACKTAB

Intro (Enter)

ENTER

F1 a F12

F1, F2, F3 ...

Ctrl+F1 a Ctrl+F12

Ctrl+F1, Ctrl+F2...

Shift+F1 a Shift+F12

Shift+F1, Shift+F12...

Alt+F1 a Alt+F12

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

Alt+0 a Alt+9

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

Alt+A a Alt+Z

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

Ctrl+

Ctrl+LEFTARROW

Ctrl+

Ctrl+RIGHTARROW

Ctrl+inicio

Ctrl+HOME

Ctrl+Fin

Ctrl+END

Ctrl+AvPg

Ctrl+PGUP

Ctrl+RePg

Ctrl+PGDN

Ctrl+A a Ctrl+Z

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

Botn derecho ratn

RIGHTMOUSE

Botn izquierdo ratn

LEFTMOUSE

Cualquier botn del ratn

MOUSE

Esc

ESC

Cmo visualizar y editar las macros activas?


Para acceder al cuadro de dilogo para el mantenimiento de macros elija la
opcin Macros del men Tools. Se visualiza una ventana, esta ventana est
subdividida en los siguientes elementos:
Lista de macros definidas. Este cuadro de lista visualiza los nombres de
las macros definidas en este momento en el sistema. Cada elemento de la

28

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 combinacin de teclas que la ejecuta.
Grabar. Inicia la secuencia de grabacin de una macro. Es similar a la
pulsacin de las teclas MAYSCULAS+F10.
Nueva. Crea una macro nueva.
Editar. Edita el contenido de una macro existente.
Borrar. Borra una macro definida.
Conjunto de macros. Los botones de comando definidos en esta zona
permiten recuperar un conjunto de macros guardadas en un fichero, salvar
las existentes en un fichero o hacer que las macros definidas en este
momento sean las predeterminadas cada vez que se arranca Visual
FoxPro.
Grabacin de macros
Este ejemplo trata de una macro para crear un nuevo proyecto cada vez que se
pulsa la tecla F3. Se puede iniciar la secuencia de grabacin de la macro de dos
formas:
Pulsar la combinacin de teclas MAYSCULAS-F10.
Escoger del cuadro de dilogo que aparece al pulsar Tools-Macros la
opcin Record.
En cualquier de los dos casos se visualiza el cuadro de dilogo
correspondiente. A continuacin pulsaremos F3 para que quede registrada como tecla
de inicio de la macro. Como nombre de macro la vamos a llamar NuevoProyecto.
Dado que ya existe la macro F3 definida en el sistema, vemos una ventana de
alerta advirtiendonos esta circunstancia. Esta ventana admite tres repuesta totalmente
distintas:
a) Sobrescribir. Esta ser la accin lgica que escogeremos para continuar
con este ejemplo. Vamos a sobreescribir el contenido de la macro F3 con
las teclas que vamos a dejar registradas a continuacin.
b) Aadir pulsaciones. Como veremos ms adelante, es posible aadir a
una macro existentes nuevas pulsaciones al final de la misma.
c) Cancelar. Cancela la grabacin de la macro.
Desde el momento en que hemos pulsado sobre el botn de comando
Sobrescribir, todas las teclas que se pulsen a partir de ese momento quedarn
registradas en la definicin de la macro NuevoProyecto.
El objetivo de esta macro es escribir de forma automtica en la ventana de
comando la instruccin CREATE PROJECT y a continuacin la tecla Intro.
Para asegurar que vamos a escribir en la ventana de comandos, la
activamos mediante CTRL-F2. Por tanto pulsamos:
Ctrl-F2

29

A continuacin, sobre la ventana de comando, continuamos escribiendo


la instruccin CREATE PROJECT y por ltimo pulsamos Intro.

Cuando se haya pulsado intro, se visualiza el cuadro de dilogo de apertura


de ficheros. En este momento y para finalizar la grabacin de la macro, volvemos a
pulsar MAYSCULA-F10. Vemos el cuadro de dilogo:
Insertar literal. Inserta en la definicin de macro la tecla tal cual se ha
pulsado.
Insertar pausa. Este botn de comando permite insertar una pausa en la
macro de dos formas distintas:

Tecla para reanudar: Cuando se inserta una pausa de este tipo en


una macro, sta no reanuda su ejecucin hasta que no se pulsa
una tecla.
Segundos. Esta pausa paraliza momentneamente la macro los
segundos especificados en el control numrico.

Pulsamos Aceptar y finalizamos la grabacin de la macro.


De esta forma, cada vez que deseemos crear un fichero nuevo de proyecto, tan
slo tendremos que pulsar F3.
Edicin de macros
Dado que a veces es difcil recordar la secuencia de teclas que conducen a
realizar una accin, 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. Elija la opcin Macros del men Herramientas.
2. Seleccione de la lista de macros definidas la que desee modificar. Para editar la
macro, pulse el botn de comando Editar. Aparecer un cuadro de dilogo.
En el ejemplo anterior habamos creado una macro (NuevoProyecto) que se activaba
mediante la pulsacin de la tecla F3. Veamos su contenido:
(CTRL+F2)CRATE(SPACEBAR)PROJECT(ENTER).
Tal como se grab, en primer lugar detect la pulsacin de la combinacin de teclas
CTRL+F2 para asegurar que escribamos en la ventana comando. A continuacin, el
texto CREATE PROJECT separado por un espacio, y finalmente, la tecla INTRO.

Continua...

30

31

Laboratorio N 1
Objetivo: Creacin de tablas libres y dependientes, Bases de Datos, Relaciones
temporales y permanentes, Integridad Referencial.
(El usuario debe tener Instalado en su PC. Visual FoxPro 5.0)
Nota: Sr. Usuario siga la secuencia paso a paso, mayormente todo ser va men .

1.- Cargando el Sistema desde Windows 98/95:


Haga Click en Men:
Inicio
Programas
Microsoft Visual FoxPro
Microsoft Visual FoxPro 5.0

Carga completada (Esto debe estar observando en su pantalla), luego digite en la Ventana de
Comandos:
RUN MD C:\PRACTICA <Enter>
Esta orden: Crea una Carpeta
SET DEFA TO C:\PRACTICA <Enter>

: Activa Carpeta por Defecto

2.- Creacin de una Tabla Libre


Nos proponemos ahora, crear una tabla Libre, para lo cal Ud. Haga:
Click en las siguiente opciones desde el Men Principal:
Archivo
Nuevo
() Tabla
Nuevo Archivo
Ver la siguiente Figura
(Pag. 2)

32

Viendo la pantalla de la derecha,


Seleccione la carpeta donde
desea guardar su tabla.
Guardar en: PRACTICA
Nombre de la Tabla: CLIENTES
Guardar como tipo: Tabla /DBF

Luego Click en Guardar

En las siguientes lneas tiene Ud. La estructura de la tabla Clientes.


CLIENTES.DBF
Nombre de Campo
ClieCod
ClieNom
ClieApe
ClieDir
ClieRuc

Tipo
C
C
C
C
C

Ancho
3
40
40
40
8

Decimales

Descripcin
Cdigo del Cliente
Nombre del Cliente
Apellidos: Paterno y Materno
Direccin del Cliente
Nmero de RUC del Cliente

En esta pantalla es
donde Ud. Va ha
disear la estructura
de la tabla.
Adelante Ud.
Nota:

No
presione
ENTER, si desea pasar, de
una lnea a otra. VFP,
puede interpretar, que ya,
a terminado. Para este fin
utilice la tecla TAB el
MOUSE.

Despus de haber terminado, Haga Click en: ACEPTAR


Aparecer la siguiente consulta:

33

+Responda afirmativamente, haciendo Click en S. Luego, ingrese par de registros.


TABLAS DEPENDIENTES
Las siguientes tablas, cuya estructura se muestra en la parte inferior, las vamos a crear como tablas
dependientes.
ARTICULO.DBF
ArtCod
ArtNom
ArtPre
ArtStock
ArtFoto

C
C
N
N
G

FACTURAS.DBF
3
25
7
5
4

2
0

NumFac
FecVen
ArtCod
ClieCod
Cant
PreVen

C
T
C
C
N
N

5
8
3
3
5
8

Para lo cual, debemos crear primero la BASE DE DATOS a quien va estar asociado, nuestras tablas.

Creacin de una Base de Datos


Crearemos nuestra Base de Datos, haciendo Click, en las siguientes opciones, iniciando desde el MENU
PRINCIPAL.
Click en: (En otras latitudes dicen Pinchar, en lugar de decir Click:)
Archivo
Nuevo
(*) Base de Datos
Nuevo Archivo
Aparece el grfico de la derecha,
Digitar en:
Base de datos: Ventas
Luego Click en: Guardar
Luego aparecer el grfico de la
parte inferior.

Creacin de una Tabla Dependiente

34

Para crear tablas dependientes, de nuestra Base de datos, existen muchas formas, pero una de ellas, es del
siguiente modo:
Llevamos el Mouse sobre el rea
libre de la Base de Datos y luego,
presionamos el Botn Derecho de
la misma.
En el men contextual, eligimos:
Nueva Tabla,
y otra vez Click en
Nueva Tabla
Asignar nombre de tabla:
ARTICULO
Luego Click en:
GUARDAR
Observe el grfico inferior y disee la estructura de las tablas dependientes, las estructuras se encuentran
en la pgina anterior.

Nota: Observe este grfico y la de Clientes ( Pgina 2), ambos son de creacin de estructuras, pero tienen una
marcada diferencia.

Finalmente, cuando haya terminado a crear la estructura. Haga Click en opcin:


Aceptar
e introduzca los datos correspondientes ( dos registros como mnimo).
Ahora, usando los pasos anteriores se le pide a Ud. Crear la tabla:

FACTURAS.DBF

35

Al final de un trabajo arduo, Ud. deber llegar a la siguiente presentacin:

En

estos momentos tenemos Articulo y Facturas como se observa en el grfico anterior, pero al inicio
habamos creado CLIENTES.DBF, como una tabla libre, el cual ahora desearamos que forme parte de
nuestra Base de Datos de nombre Ventas, para tal fin haremos los siguientes pasos:

Conversin de Tabla Libre en Dependiente


Click en:

Botn Derecho del Mouse, sobre el diseador de Base de Datos

Agregar tabla

Doble Click en Clientes

(Opcin del Men Contextual)

Luego tendremos, como muestra la sgte. figura:

Relaciones:

36

Con la finalidad de manipular simultneamente, datos de las tres tablas, debemos relacionar
estas. Para ello, no debemos olvidar, las dos condiciones principales para la existencia de Relaciones:
1.

Se debe garantizar existencia de Campos Claves Llaves, entre las tablas participantes (datos
iguales coincidentes, del mismo tipo y aveces del mismo tamao. Pero no necesariamente con
nombres iguales).

2.

Se debe indexar las tablas por su campo clave:


-

Tablas hijo de tipo principal Candidato, y

Tablas padre de tipo Normal (Aqu, sobre todos sus campos claves)

El autor duda de su comprensin. Por tanto, antes de continuar le interrumpe para hacerle la
siguiente consulta:
Entre Clientes y Facturas. A qu campos de ellas, los podra considerar como campos Claves?
.......................
y
..........................,
porqu? .............................................................................................

En el cuadro inferior, escriba los campos claves de las tablas, asimismo identifique tablas hijo y
Padre
Nombre Tabla

Nombre del Campo Clave

tipo de tabla (Padre Hijo)

Clientes.dbf

........................................

..................................

Articulo.dbf

.........................................

..................................

Facturas.dbf

.........................................

..................................

INDEXACION:
Dada las reglas anteriores y cumpliendo exactamente, iniciamos a indexar las tablas. Como un
ejemplo, de qu manera se realizan, se hace aqu una indexacin, para la tabla CLIENTES.
Nota: Para el resto de las tablas, el usuario, deber seguir la misma secuencia. Es aqu donde el
usuario podr usar su razonamiento y su habilidad de comprensin. Caso contrario, puede volver a leer
las lneas anteriores.

Indexacin de Clientes.dbf
1.

Ubicar el puntero del Mouse sobre la tabla Clientes y presionar el botn

Derecho del Mouse


2.

En el men Contextual, hacer Click sobre:

37

Modificar
3. Hacer Click en la ficha: ndices (ver fig. inferior)

3.

Digitar el nombre de la etiqueta (Tag) para nuestro archivo ndice (ver graf.). Asignamos
por ejemplo el mismo nombre del campo (aunque no siempre debe ser as). Digitar:

Cliecod
4.

Seleccionamos el tipo de ndice, sabemos que Clientes es tabla hijo, por tanto que sea:

Principal
5.

...
6.

El ficha de Expresin, podemos Digitar, la expresin el nombre del campo, por el cal
deseamos, que nuestra sea indexada. Pero mucho mejor Es hacer Click en:
(Punto Punto)

que se encuentra al costado de expresin.

Llegamos a la ventana que se muestra en la siguiente pgina. Aqu usando: Funciones


(matemticas, lgicas, fecha y Cadena), Variables y Campos, podemos preparar una
expresin ndice, por muy complicadas que este fuera. Nuestro caso Es sencillo. Hacemos
Doble Click sobre el campo:

ClieCod

de la lista de campos.

38

7.

Hacemos Click en:

Aceptar
8.

de esta ventana de expresiones.

Habremos vuelto a la ventana anterior, en ella tambin hacemos Click en:

Aceptar

que se encuentra en esta ventana.

Venta de expresin
Finalmente Visual FoxPro, nos hace la siguiente consulta:

Podemos responder Afirmativamente.


De esta manera, habremos indexado, la tabla Clientes. Observe su pantalla. La tabla Clientes
tiene un ndice que se muestra identificado por una llavecita, por ser de tipo principal.

39

Ahora,
Ud.
tiene la dura tarea de
indexar,
las
otras
tablas (Articulo y
Facturas).
Al final del
camino,
como
alumbrase una luz.
Deber
mostrar una figura,
como se muestra en la
parte derecha.
As,
hemos
terminado el tema de
ndexaciones. Ahora
nos toca hacer la
Relacin.

(2)Ejecucin de la Relacin
Haga Click en:

Indice ClieCod de Clientes y arrastre hacia el ndice ClieCod de Facturas y libere el Mouse. (esto es
arrastrar la etiqueta de ndice hijo hacia el padre).

Haga similar con el ndice ArtCod de Articulo y arrastre


Luego debe una presentacin similar a la siguiente grfica

40

Bueno, hasta aqu parece que todo va bien.


Despus de tanto trabajar, no quisiramos que el resultado sea un desastre. Por ello, primero
vamos a verificar los datos de los campos claves.
Para ello haga doble Click en cada una de las tablas y con la ayuda del Mouse, puede mostrar
igual que en pantalla inferior, las tablas abiertas. As asegurse que haya datos comunes iguales en los
campos claves, tanto en la tabla padre e hijos (ver figura)

Finalmente para poder mostrar examinar la informacin de la Base de Datos (anteriormente


preparados) vamos ha crear una Vista rpida. Es de notar que no podemos usar con toda elegancia el
comando Browse, como lo hacamos ante una relacin temporal.

CREACION DE VISTA:
Las vistas como un archivo virtual, se crean ejecutando la siguiente secuencia:
Desde men principal.
Haga Click en:

Archivo

Men Principal

Nuevo

Submen del men Archivo

() Vista
Nuevo Archivo

Tipo de archivo a crear


Vista personalizada.

41

Ahora aparece una ventana, mostrando las tablas origen para la vista a preparar, haga:

Doble Click en :

Facturas

Clientes

Luego las tablas hijo.

Articulo

Despus hacemos Click en :

Tabla padre

Cerrar
En la ficha Campos, seleccione, los siguientes campos, haciendo:

Doble Click en:

Facturas.Numfac

Facturas.ArtCod

Facturas.Cliecod

Facturas.Cant

Facturas.Preven

Articulo.Nom

Articulo.ArtPre
Articulo.ArtStock
Clientes.ClieNom
Clientes.ClieApe
Clientes.ClieDir

Debe mostrarse un grfico similar.


Preparada la vista y seleccionada los campos, lo que esperamos es ejecutar, para ver el resultado.

42

Existen varias maneras, pero la ms fcil, es talvez, hacer click en el smbolo (


Admiracin)

) (Signo de

Que se encuentra en la Barra de herramientas. Otra forma es presionar Botn Derecho y ejecutar
Consulta

Mas o menos as debe ser el resultado, si no observa ningn dato en esta ventana, debe haber
fallado: bien en los campos claves , en la preparacin de ndices talvez en el arrastre de etiquetas.
Puede volver a revisar y luego ejecutar la vista.
Fin del laboratorio

43

Laboratorio N 2
Objetivo: Creacin de Vistas y Consultas y comparacin entre ellas
1.- Cargando Visual FoxPro desde el Sistema Oper. Windows 98
Haga Click en Men:
Inicio
Programas
Microsoft Visual FoxPro
Microsoft Visual FoxPro 5.0

2.- Abrir Una Base de Datos Ventas


Hacer Click en:

Archivo
Abrir

En
Buscar
en:
seleccione la carpeta:

Practica.

En: Archivos de tipo:


seleccione:

Base de Datos
(*.dbc)
Luego haga doble Click en:

Ventas .

44

La siguiente pantalla, muestra la base de datos VENTAS, abierta.

Similar como hicimos en el primer laboratorio, vamos a crear vistas.


CREACION DE VISTA:
Haga Click en:
Archivo
Nuevo
() Vista (ver grfico)
Nuevo Archivo

En la siguiente pantalla se observa, a seleccionar la clase del fuente para vista a crearse (tablas
de vistas anteriores)

45

Asumiendo que se van ha crear vistas desde tablas, haga doble Click en:
Facturas,

luego en:

Clientes

Articulo.

Finalmente haga Click en Cerrar


En la siguiente pgina, tenemos el generador de vistas. Ya conocida en el laboratorio anterior

Nota: Las tablas fuente (facturas, Clientes y Articulo), no deben repetirse, si eso no fuera el caso, borrar la

46

tabla que se est cargado mas de una vez


.

Debajo de las tablas, se podr observar las fichas: Campos, Combinacin, Filtro, ordenar por,
Agrupar por, Criterio de actualizacin y Varios.

En la Ficha Campos: Seleccionemos los siguientes campos:

Facturas.Numfac

Facturas.ArtCod

Facturas.Cliecod

Facturas.Cant

Facturas.Preven

Articulo.Nom

Articulo.ArtPre
Articulo.ArtStock
Clientes.ClieNom
Clientes.ClieApe
Clientes.ClieDir

Haciendo doble CLICK en la misma.

Para probar que todo va bien, haga Click en Botn EJECUTAR

( ! ) de la barra de herramientas.

presione Botn Derecho y Ejecutar Consulta


Nota: Si no observa ningn dato, revisar datos del campo clave (en la BD) la relacin y los ndices

Si cree conveniente, antes de iniciar a usar las fichas, puede pedir al Asistente del Lab.,
una breve explicacin de la funcin de cada una de las fichas. Caso que Ud. Es un autodidacta,
puede recurrir al material bibliogrfico. Ejm. Rubn Iglesias
Esta podra ser una breve explicacin:
Ficha: Combinacin.- Muestra el tipo de enlace entre tablas: Interna, Izquierda, Derecha y
Full
Filtro

.- Especifica la condicin que debe cumplir los registros a visualizar.

Ordenar por .- Provee opcin de clasificar en forma ascendente descendente.


Agrupar por .- Facilita crear grupos de datos
Criterios de Actualizacin.- ofrece las maneras como se debe actualizar nuestros
datos
Varios

.- Si sern afectados todos los registros y los duplicados.

En la siguiente pgina, usaremos la ficha filtro, para realizar resolver las ciertas
interrogantes.

47

Tales como: deseamos saber qu artculos han sido facturadas un da viernes a las 10 de la
maana, cuantas ventas se transaron con precio inferior al costo de compra, etc.

Extraccin de Datos:

Hacemos Click en ficha FILTRO

En nombre de campo seleccionamos un campo preparamos una expresin.

En Criterios asignamos el operador.

En ejemplo completamos la condicin


Ejm:

Facturas.Cant

50

(ver grfico)

Esta condicin significa, que deseamos observar o mostrar aquellos Artculos facturados,
cuya cantidad sea igual a 50 unidades. Para ver ejecutamos haciendo:

Click en botn EJECUTAR, y la siguiente sera un ejemplo:

Ahora, estimado usuario, despus de una amena explicacin, creo que est en la posibilidad
de resolver, las siguientes interrogantes, sobre nuestra base de datos.
48

Mostrar: Artculos facturados con las siguientes condiciones:


1.

Cuyo Nombre del artculo empiece con la letra A

2.

Cuya fecha de venta sea un Viernes

3.

Cuya cantidad sea mayor que 30 y stock menor igual a 20

4.

Tenga hora de venta a las 10 de la maana

5.

Fecha de venta Viernes 13 a las 08 de la maana, ordenado por fecha.

6.

Fecha de venta 28 de Julio a las 10:30 AM (Es un buen peruano, que trabaj este da)

7.

Precio de Compra sea mayor que precio de venta (Remate)

2.- Retire todas las condiciones, y en la ficha agrupar por, elija Nombre del Cliente para agrupar,
y Ejecute. Luego diga sus observaciones y conclusiones.
Terminada nuestra labor, hacemos click en botn cerrar de la ventana vista.

Ante consulta anterior, responda afirmativamente (S) y luego asigne un nombre, para vista (ejm.
Vista1). Finalmente haga Click en Aceptar.

CREACION DE CONSULTAS
Las consultas, a diferencia de vistas, son archivos reales.

Para crear consultas hacemos:

49

Click en:

Archivo

Nuevo

() Consulta

Nuevo Archivo

Similar que en Vistas, hacemos doble en:

Facturas

Clientes y

Articulo

Seleccione los siguientes campos:

Facturas.Numfac
Clientes.ClieApe

Facturas.FecVen
Clientes.ClieDir

Facturas.ArtCod
Articulo.ArtNom

Facturas.Cliecod
Articulo.ArtPre

Facturas.Cant
Aritculo.ArtStock

Facturas.PreVen

Clientes.ClieNom

Haga Click en Ejecutar de la Barra de herramientas, observe y cierre el previo.

Haga Click en Consulta del Men principal

Luego en opcin: Ver SQL


SELECT Facturas.numfac, Facturas.fecven, Facturas.cant, Facturas.preven,;
Clientes.clienom, Clientes.clieape, Clientes.cliedir, Clientes.clieruc,;
Articulo.artnom, Articulo.artpre, Articulo.artstock;
FROM ventas!clientes INNER JOIN ventas!facturas;
INNER JOIN ventas!articulo ;

50

ON Articulo.artcod = Facturas.artcod ;
ON Clientes.cliecod = Facturas.cliecod

Haga Click en Consulta del men principal

Click en Opcin: Destino de Consulta

Observamos que por defecto est seleccionado destino Examinar para la consulta.
1.

Seleccionamos Cursor

Asignamos un nombre (ejm): UNI

Click en Aceptar, luego

Click en Ejecutar
Lleg a observar algo?, Continue

2.

Haga Click en Men: Consulta


Destino de la Consulta, y
Seleccione Tabla, en esta oportunidad.

Asigne nombre (ejm): CEPS

Click en Aceptar

Click en Ejecutar
Esta vez s observ, algo?. Talvez tu respuesta es NADA.

51

En verdad tiene razn, la respuesta es que, en la primera vez ha creado una tabla temporal
(Cursor) y ha enviado a la memoria del computador. Y la segunda ha creado una tabla, que por su puesto
debe haberse guardado en el disco duro, en la carpeta por defecto de su computador.
Como comprobar lo que se dice?
Paso 1.- Haga Click el men Ventana (Men principal), luego en Sesin de Datos. Vea si existe
tablas UNI y CEPS cargadas en diferentes reas. (justificada su existencia)
Paso 2.- Presione la combinacin de teclas: Ctrl+F2
Digite: DIR y presione Enter
Tenga Presionado simultneamente las teclas: Ctrl+Shift+Alt
(Debe estar observando la existencia del CEPS.DBF)
Interrogante: No se observa UNI que sucede? que es realmente UNI?
3.

4.

Consulta, Destino de la Consulta, Pantalla (Observando datos en toda la pantalla)

Aceptar

Ejecutar

Ctrl+Shift+Alt

Consulta, Destino de la Consulta, Informe (Generando Informes va Consulta)

Haga Click en Barra de Asistente ( a la derecha de: Abrir informe.. ver grfico anterior)

Se observa una pantalla con tres opciones, ubique el cursor sobre: Asistente para Informes, y
haga Click en: Aceptar. Tendremos la siguiente figura.

52

Seleccione todos los campos de: Articulo, haciendo Click en doble Flecha, luego click en: Siguiente

Seleccione el estilo de informe que deseara preparar y luego haga Click en: Siguiente

Puede cambiar si gusta: Nmero de Columnas, distribucin de campos y Orientacin del papel, luego
haga Click en: Siguiente

Puede Ordenar los artculos, ejm: por nombres, para ello haga doble Click en ArtNom, Ascendente y
Click en: Siguiente

Click en: Presentacin Preliminar

Eh aqu algo de presentacin preliminar de un reporte

53

5.

Por ahora hasta aqu el Laboratorio, si el tiempo ya no lo permite.

6.

Archivo, Quit
Fin del Laboratorio 2
Gracias...

Laboratorio No 03
Objetivo: Crear un informe personalizado, simples y con quiebres grupos.

54

Abrir Base de Datos ventas


0.

Click en: Archivo, Abrir, Tipo de archivo: Base de Datos, luego doble Click en Ventas.

Creacin de Vistas
Deseamos preparar, tres informes, para lo cual vamos ha crear tres vistas:
1.

Crear una vista con los siguientes campos:

Facturas.numfac

Facturas.fecven

Facturas.cant

Facturas.preven

Clientes.clienom

Clientes.clieape

Clientes.cliedir

Clientes.clieruc

Articulo.artnom

Articulo.artpre

Articulo.artstock;

2.

Ejecutar y guardar presionando Ctrl+W, asigne nombre Vista01, luego haga Click en Aceptar.

3.

Cree otra vista, esta vez agregar el campo Facturas.ClieCod a la lista anterior. Ingrese a la ficha:
Ordenar por, haga doble Click en Cliecod, Ejecutar y Guardar (presionando Ctrl+W ) con el
nombre Vista02

4.

Crear otra Vista usando los mismos campos anteriores, pero esta vez ordenar por los campos:
FecVen, ClieCod y NumFac (para ello haga primero Doble Click en: FecVen, luego en ClieCod y
finalmente enNumFac) y guarde como Vista03.

55

Aqu se observan las tres vistas, que nos servirn para preparar nuestros informes.

CREACION DE INFORMES
Para crear nuestro informes, iniciamos haciendo:
Click en:
1.

Archivo

2.

Nuevo

3.

() Informe

4.

Nuevo Archivo.
En la siguiente pantalla se muestra el diseador de informes, las bandas y el men contextual

Diseador de Informes compuesta de tres Bandas (ver grfico).


Necesitamos indicar el origen de datos para nuestro
informe, para lo cual vamos damos la secuencia a seguir:
1.

En el rea del diseador, presione Botn Derecho

2.

En el men contextual, Elija: Entorno de datos

3.

Dentro del Entorno de datos, Presione Botn Derecho

4.

En el men contextual, Elija: Agregar

56

5.

Seleccione, opcin: ()Vistas (ver grfico)

6.

Haga Doble Click en Vista01

7.

Luego, Click en: Cerrar

Usando el Mouse acomode el diseador de informes y el entorno de datos, de tal como que
quede, tal como se muestra en la figura, de la siguiente pgina.

1.

Si no tiene la barra de controles de informe

Haga Click en: Men Ver

Barra de Herramientas...

Marcar como en el grfico de parte derecha.

Luego, Click en: Aceptar

57

Nuevamente acomode las figuras, por ejm. puede ser como observa en la parte inferior.

Luego. Vamos a iniciar a preparar el informe. Para lo cual, debemos tener presente el resultado
que deseamos obtener. En la siguiente pgina se muestra un previo de lo que queremos conseguir
diseando un informe, con nuestro diseador y que imprima el modelo propuesto.

Para poder obtener este resultado. Usando los botones del control de informes, prepare Ud. un
diseador de informes del siguiente modelo.
1.

Si desea Digitar un texto en el diseador de informes, haga Click sobre el botn que tiene la letra A
del control de Informes y en seguida haga Click en el lugar donde desea Digitar.

2.

Si desea agregar, una funcin variable, haga click en botn ab del control de informes. Luego
sobre el diseador.

3.

Si desea agregar un campo, lo puede arrastrar desde la vista, que se encuentra a la derecha, del

58

diseador.
Nota: Nombre de la Empresa, Descripcin, Precio, Nota .. y Pag. Son etiquetas, mientras Date()
es funcin, _Pageno es una variable. Finalmente ArtNom y ArtPre son campos que se encuentran en el
Entorno de Datos.
Para ver un Previo:

Haga Click en el Botn Derecho, luego seleccione: Preliminar (observar un previo)

Lo anterior tambin lo puede realizar haciendo Click en botn de Hoja y Lupa de la barra de
herramientas. Esta vez el botn del signo de Admiracin Es para Imprimir.

Puede ir observando su avance, cada vez que crea necesario. Si desea mejorar la presentacin haga
click en el objeto, luego Click en formato y fuente. Cambie y mejore su presentacin

Para prevenir prdida de archivos, puede ir guardando el Informe con el Nombre: Informe1
Para ello haga click en Men:: Archivo
Guardar.
Informe No 2.- debemos preparar otro informe, similar al que se muestra en la parte inferior.
Observe que est agrupado por Clientes, ordenado por descripcin y con un sub-total por

59

clientes.

Para preparar nuestro segundo informe, podemos re-utilizar diseo del informe anterior.
Guardando la primera y luego guardando con nuevo nombre. Para ello utilice
Archivo
Guardar como
Asigne nombre informe2
luego puede modificar sobre ella.
Pasos:

Modificar Lista de Precios por Informe de ventas


Creacin de Grupo quiebre:

Click en Men:

Informe

Agrupar datos

Sobre ventana de agrupar datos, en el rea en blanco de: expresiones de agrupacin,


podemos Digitar la expresin del quiebre, pero hacemos Click en:

...

(Punto punto )

Luego haga, Doble click sobre: Vista2.ClieCod (ver grfico)

Finalmente Click en: Aceptar

60

El diseador que logre, nuestro propsito ser similar al grfico siguiente:

Observe que el monto, subtotal y total son expresiones como (Cantidad) * (Precio de Venta)
(Vista2.Cant*Vista2.PreVen) (ver grfico)

Para que Subtotal


muestre la suma, hacemos:

total,

Click Derecho sobre el objeto que


representa la expresin (Cant*Preven), luego
click, en la opcin: Propiedades.

Luego en la ventana que se presente, mostrar un


grupo de opciones, seleccionamos la opcin Clculos,
haciendo Click sobre ella.
Finalmente en el grfico de la parte derecha,
seleccionamos opcin SUMA
Para terminar, hacemos click en: Aceptar.
En esta pantalla y en la otra
De esta manera, habremos creado el segundo reporte.

61

Reporte con mas un Grupo


El siguiente grfico, muestra un Modelo, de un reporte con ms de un grupo. Esta agrupado por
Mes, clientes y Nmero de factura. Tiene un sub-total de cada factura , mes y por pgina. Asimismo el
nmero de factura se imprime a la altura de los otros datos y no se repite.

El modelo de Informe a prepararse.

El diseador de Informes, que genera este tipo de reportes, se encuentra en la siguiente pgina.

1. Haga Click en el Botn Ver Clases del Control de Formularios ( Esta se encuentra al lado derecho de
la Flecha)

2. Elija Agregar

62

Modelo de diseador

Suerte en preparar el informe propuesto:


Fin del laboratorio.

63

Laboratorio No 4
Objetivo: Sentar las bases de la Programacin Orientada a Objetos, crear formularios y
codificar.
Formulario: Una clase contenedora. Una coleccin de una o ms pginas que se comporta como
una ventana o un cuadro de dilogo estndar. Un formulario contiene controles para mostrar y modificar
datos. Los formularios pueden estar contenidos dentro de un conjunto de formularios.
Creando un Formulario:
Click en:
Archivo
Nuevo
( ) Formulario
Nuevo archivo

64

Diseador de formulario
Nota: para hacer diseo en formulario, tambin utilizaremos los controles, tal como se observan en la
pantalla anterior. Similar como lo haca en Informes, hacer Click en control A, luego hacer Click en el formulario. De
esta manera estar creando un Label (Etiqueta), para Text lo har con ab, etc.
En esta oportunidad vamos a disear, un formulario que nos pida Digitar un texto y que esta al
ser aceptado, se refleje como un nuevo mensaje en el ttulo del formulario.
Pasos a seguir:
1.

Haga Click en control A

2.

Lleve el Mouse sobre el formulario y haga click en ella

3.

Haga Clicke en Control ab

4.

Lleve el Mouse sobre alguna ubicacin del formulario, donde crea sea til y haga Click en ella.

5.

Supongo que ya entendi, como funciona esto. Complete lo resto, hasta que su pantalla presente
similar al siguiente grfico.

65

El usuario a de observar, que en el formulario existen cuatro objetos

Cada objeto del formulario anterior, lleva un nombre por defecto. Pero nosotros como buenos
programadores, las podemos cambiar a nuestra voluntad. Y eso los vamos a hacer.
6.

Presione Botn Derecho del Mouse, sobre Label1, y luego haga Click en Propiedades.

7.

En la lista de propiedades, ubique propiedad NAME y haga click en ella.

8.

Al costado del smbolo de funcin fx, aparece label1 en azul, Digite obre ella lblmensage.

9.

Haga click en Text1, esta vez tambin vuelve a aparecer, el nombre inicial, cambie por Txtmensaje.

10. Asigne Ud. los nombres a los objetos que faltan: Comand1 como CmdAceptar y Command2 por
CmdSalir
Ahora vamos a cambiar la etiqueta (titulo) de los objetos (recuerde text no lo tiene), los pasos
son los mismos, esta vez la propiedad que satisface nuestra necesidad es: CAPTION

66

11.

Aqu se dan un listado de las etiquetas para los Objetos (reconocidos por sus nuevos nombres).
Etiqueta

Objeto
Digite un Texto
LblMensaje
Aceptar
CmdAceptar
Salir
CmdSalir

Hasta aqu Ud. ha aprendido, cambiar nombre y ttulo del Objeto.

12. Aqu se muestra un ejemplo a donde debemos llegar, cuando nuestro formulario ya est completamente
preparado y ejecutndose:

El ttulo actual del formulario se observa como: Universidad Nacional de Ingeniera, pero ya

67

hemos digitado en Txtmensaje, el mensaje: Centro de Extensin y Proyeccin Social. VFP, para cambiar el
ttulo, est solo a la espera que el usuario haga Click en Aceptar presione la tecla: Enter.
Pero si el usuario desea abandonar el sistema, puede presionar ESC. hacer click en Salir. Asimismo
al acercar el Mouse sobre cualquiera de los botones comando, esta debe hacer mostrar un mensaje de ayuda,
explicando lo que debe suceder si hace Click sobre ella.

Para que VFP, haga todo lo que hemos echo mencin en la parte anterior, haga los siguientes pasos:

13. Seleccione el Objeto CmdAceptar (Aceptar) y cambie las propiedades:


DEFAULT por

.T. (Verdadero)

enTOOL TIP TEXT, Digite el texto: Click Aqu Actualiza el Ttulo del Formulario
14. Similar en el Objeto CmdSalir (Salir):
CANCEL por
en

.T. (Verdadero)

TOOL TIP TEXT, Digite el texto: Termina la ejecucin del sistema.

15. Haga Click en ttulo del Formulario, luego en la lista de propiedades busque:
SHOW TIPS. Cambie por .T. Verdadero ( Show Tips pertenece al formulario, y n a otro
objeto cualquiera)

Tiempo de Ejecucin:
16. Haga doble Click en Aceptar, luego Digite tal como observa en la figura:

Presione Ctrl+W, para Salir y guardar

17. Similar que en la parte anterior haga sobre el objeto Salir, esta vez Digite:
Release Thisform
18. Ejecutar el Formulario:
Haga Click en botn Ejecutar ( ! ),

68

19. A la consulta anterior, responda S y guarde.


20. Debe ejecutarse sin problemas, caso contrario consulte con su asistente.

PARTE 2
Vamos a preparar un formulario aplicativo, a la Base de Datos. Por ejemplo: hacer
mantenimiento de la tabla Articulo.dbf.

Pasos a seguir:
3. Abrir la Base de Datos
Archivo
Abrir
Base de Datos: Ventas

4. Crear un Nuevo Formulario


Archivo
Nuevo
( ) Formulario
Nuevo Archivo

5. Presionar: Botn Derecho, sobre el rea del Formulario


6. Click en: Entorno de datos (del Men contextual)
7. Doble Click en Articulo.dbf
8. Usando Mouse, puede presentar similar ala figura.

69

9. Podemos crear en nuestro formulario, los objetos: Etiquetas, Texts y Commands, luego con la
propiedad: Control Source direccionar a los campos de la tabla. Pero esta vez, vamos a hacer uno
ms simple:

10. Haga Click sobre la palabra Campos de Articulo y arrastre hacia el formulario y suelte.

As debe de observarse, los campos

11. Haga Click en cada objeto y re-ubicar los objetos, asimismo cambie el ttulo de las etiquetas.
( Observe el siguiente grfico)

70

(Aqu debe llegar, usando propiedad: Caption)

12. Haga Click en el Botn Ver Clases del Control de Formularios ( Esta se encuentra al lado derecho de
la Flecha)

13. Elija Agregar


14. buscar la Carpeta WIZARDS, que se encuentra dentro de la carpeta del Visual FoxPro.

15. Haga Doble Click en, objeto Wizstyle.


16. En el siguiente grfico, se observa una gama de botones de clases. Ubique aquel botn de nombre
PICBTNS (Para ello utilizar los Tool Tip Text de cada botn. En el siguiente grfico, este botn se
encuentra en la quinta fila y cuarta columna)

71

17. Haga Click sobre el formulario debajo de Stock


18. Vuelva a acomodar similar al siguiente grfico .

19. Guardar (asigne el nombre que desee)


20. Ejecutar

21. Suerte

Pruebe.

72

INSTRUCCIONES DE PROGRAMACIN.
El Foxpro en modo programacin, es la forma como se puede
almacenar un conjunto de rdenes en un archivo llamado programa,
el cual posteriormente ser ejecutado.
Orden MODIFY COMMAND

Propsito : Permite crear y editar un programa en Foxpro (con


extensin .PRG), o tambin cualquier archivo de texto.
Sintaxis :
MODIFY COMMAND [D:][CAMINO]NOMBRE[.EXT]
Si la unidad y el camino no son especificados, se asumir la unidad y camino por
defecto.cuando se usa Modify Command, Foxpro busca el archivo indicado; si el
archivo no existe entonces se crea uno, de lo contrario ste ser editado. Cada vez que
un archivo es grabado la versin previa es grabado en un archivo de seguridad con
extensin .BAK. Al crear un programa, para grabarlo presionaremos las teclas [Ctrl]+
[W]. Si desea salir sin grabar presionaremos la tecla [Esc].
Orden DO

Propsito : Permite ejecutar un programa anteriormente creado.


Sintaxis :
DO [D:][CAMINO]NOMBRE[.EXT]
Orden TYPE

Propsito : Permite visualizar el contenido de un archivo programa.


Sintaxis:
TYPE[D:][CAMINO]NOMBRE[.EXT]
ESTRUCTURA DE UN PROGRAMA

Prembulo
Contiene informacion tal como: el nombre del programa, que hace, quin lo escribi, la
fecha y una breve historia sobre su edicin.
Ejemplo:
*--------------------------------------------------------------------------------------*
*PROGRAMA : STOCK.PRG
*DESCRIPCION: CONTROL DE STOCK
*AUTOR : LUIS LOZADA PORTAL
*FECHA : 05 DE NOVIEMBRE DE 1998
*--------------------------------------------------------------------------------------*
Area de Seteos
Define los comandos SET que el programa necesita para trabajar eficientemente. En
esta parte se puede especificar la relaciones entre las bases de datos, activar los archivos
indexados as como inicializacin de las variables de memoria, etc.
Ejemplo:
SET STATUS off
SET HEADING off

73

USE personal ORDER codi


NUM=0
Cuerpo de Programa
Contiene los comandos que hacen trabajar al programa.
Ejemplo:
LOCATE FOR apel="VARGAS" DISPLAY nomb,apel,sbas
Seccin de Cierre
Aqu se cierran las bases de datos y se restablecen los valores de los comandos SET.
Ejemplo:
USE SET STATUS on
SET HEADING on
RETURN
ORDENES DE ENTORNO
Para modificar el entorno de Foxpro y ajustarlo a nuestras necesidades, debemos usar
las rdenes Sets denominadas tambin Seteos.La opcin por defecto est en mayscula.
Sintaxis

Propsito

SET STATUS on/OFF

Activa la lnea de estado.

SET HEADING on/off

Muestra el nombre de los campos cuando se usa


las rdenes LIST o DISPLAY.

SET TALK on/off

Muestra los mensajes interactivos que retornan


rdenes como Replace, Index, Copy, Calculate,
Locate, etc.

SET BELL on/off

Emite un sonido cuando el cursor alcanza el


final de un campo.

SET SCOREBOARD on/off

Muestra el estado de las teclas CapsLock, Ins y


Numlock en la fila cero cuando se desactiva la
lnea de estado.

VARIBLES DE MEMORIA

Definicin : Son espacios de memoria que permiten almacenar datos temporalmente


fuera de la estructura de la Base de Datos. Estos espacios de memoria poseen un
nombre que los identifica y quedan definidos segn el dato que almacenan.
CREACION DE VARIABLES
Ejemplos:
CLASE="FOXPRO"
NUM=0
FEC={10/19/78}
VAR=.T.

Variable cuyo nombre es CLASE de tipo carcter y


cuyo contenido es "FOXPRO".
Variable cuyo nombre es NUM de tipo numrica y
cuyo contenido es 0.
Variable cuyo nombre es FEC de tipo fecha y
almacena la fecha 19 de Octubre de 1978.
Variable cuyo nombre es VAR de tipo lgico con un
estado de verdad .T..

74

Orden DISPLAY MEMORY

Propsito : Lista las variables de memoria.


Sintaxis :
DISPLAY MEMORY [TO PRINTER]
LIST MEMORY[TO PRINTER]
Se debe evitar que el nombre de una variable sea igual al nombre de un campo o de un
comando resrevado por FOXPRO.
Orden STORE

Propsito : Permite asignar un dato a un conjunto de variables.


Sintaxis:
STORE [DATO] TO [LISTA DE VARIABLES]
Ejemplo:
Si desea inicializar con 0 a las variables N1, N2 y N3, procederamos de la siguiente
manera:
N1=0
N2=0
N3=0
Mejor hubiera sido inicializar simultneamente el 0 a stas variables, as:
STORE 0 TO N1, N2, N3
Orden WAIT

Propsito : Permite detener la ejecucin de un programa y espera el ingreso de


informacin proveniente del teclado.
Sintaxis :
WAIT [expresin] [WINDOW][TIMEOUT(expN)]
Donde:
expresin : Es un mensaje ilustrativo para el usuario. Si se omite, FOXPRO enviar
el mensaje por defecto, que es:
"Press any key to continue..."
WINDOW : Se utiliza para enviar el mensaje dentro de una ventana de mensajes, en
la esquina superior derecha.
TIMEOUT expn : Es el tiempo en segundos que estar la orden WAIT sin que se
reciba informacin.
Ejemplos:
1.Para detener la ejecucin de un programa, ingresemos la orden WAIT en cualquier parte del programa,
as:
WAIT
el programa cuando ejecute la orden WAIT enviar el mensaje por defecto:
Press any key to continue...

2.Si sedesa especificar un mensaje diferente con la orden WAIT, como por ejemplo:
WAIT "Presione ENTER para seguir..."
el programa mostrar exactamente dicho mensaje al momento de ejecutar
dicha orden, as:
Presione ENTER para seguir...
Orden @...SAY...GET

Propsito :
Permite editar una variable o un campo en una posicin de la pantalla, permitiendo su
75

modificacin. Para activar los GETS definidos previamente se debe hacer uso del
comando READ.
Sintaxis :
@F,C[SAY "mensaje"][GET(variable|campo)][PICTURE(formato)]
Donde:
F : Es el nmero de fila en le rango 0 - 24.
C : Es el nmero de columna en le rango 0 - 79.
mensaje: Es un mensaje que ayuda al usuario a ingresar el dato desde el teclado.
variable|campo : Variable o campo a editar.
Picture: Permite establecer un formato de entrada o de salida para los datos, adems
de restringir el tipo de dato que puede ser ingresado a un campo o variable de memoria.
Formato : Especifica un formato mediante el cual se deben ingresar los datos. El
formato puede consistir de una funcin o una mscara y debe estar delimitada por
comillas.
Orden READ

Propsito : Permite activar uno o ms @...SAY...GET.


Sintaxis :
READ
Formato para Capturar o Presentar Datos

Es la manera como se pueden ingresar o presentar los datos en pantalla usando la orden
@...SAY...GET.
Si se utiliza PICTURE (Mscara) se llama Mscara.
Si se utiliza PICTURE (Funcin) se llama Funcin.

Mscara
A
N
!
9

Funci
n
A
!
E
Z
M

Descripcin
Permite el ingreso de slo letras para datos carcter (cada A es
para representar un slo caracter).
Permite el ingreso slo de letras y dgitos para datos tipo
carcter.
Convierte la minscula a mayscula (cada smbolo es para un
carcter).
Permite el ingreso de slo dgitos para datos tipo carcter y
dgitos y signos para datos nmericos.

Descripcin
Slo carcteres de tipo alfabtico.

Convertir a maysculas todos los


carcters alfabticos.
Formato de fecha Europeo (dd/mm/aa).
Sustituye con espacios un campo con
valor igual a 0 (cero)
Permite la creacin de una lista de
opciones mltiples, las mismas que se

76

deben separar por comas.


Una funcin se usa anteponindole el smbolo @
Clausula COLOR en @...SAY
Sintaxis:
@F,C SAY "Expresin" COLOR
Donde:
Expresin: Puede ser una combinacin de campos, variables de memoria, operadores, funciones,
mensajes, etc. Si se
necesita mostrar en pantalla mas de una expresin, se deber convertir todas las
expresiones a carcter y luego conctenarlas. De nmero a carcter usando STR( ) o de fecha a carcter
usando DTOC( ) o DTOS( ).
COLOR (color): Se usa para reportar los datos de una expresin con un color diferente al estndar.

COLOR

PROPOSITO
Video Inverso

I
U

Subrayado

Vaco (usado para el ingreso de


claves)

Blanco

Negro

W/N

Video Normal

Azul

BG

Cyan

Verde

GR

Caf

GR+
R
RB

Amarillo
Rojo
Magenta

Parpadeante

Alta intensidad

Los Smbolos+ o * se deben utilizar despus de especificar el color para la expresin, as: Color
W/N+

Orden @...BOX
Propsito :
Permite dibujar un recuadro en la pantalla.
Sintaxis :
@f1,c1,f2,c2 BOX [(expresion)]

77

Donde:
f1, c1
f2,c2

: Coordenadas del primer punto ubicado en la esquina superior izquierda.


: Coordenadas del segundo punto ubicado en la esquina inferior derecha.

Expresin

: Especifica los caracteres que formarn el cuadro.

Cuando no se especifica la expresin despus de Box, se crea un recuadro de lnea


simple.

Orden @...CLEAR
Propsito :
Permite borrar un sector de la pantalla.
Sintaxis :
@f1,c1 [CLEAR( TO f2,c2)]

Orden @...FILL
Propsito :
Permite cambiar los colores de una detrminada rea de la pantalla.
Sintaxis :
@f1,c1 FILL TO f2,c2 [COLOR(color)]

Ejemplo:
1. @5,10 FILL TO 15,40 COLOR R
ESTRUCTURAS CONDICIONALES

Una estructura condicional es aquella que al evaluar una condicin realiza una
determinada accin.
Orden IF...ENDIF
Propsito :
Permite ejecutar una seccin del programa evaluando una condicin.
Sintaxis 1:
IF
Bloque de Ordenes
ENDIF
Sintaxis 2:
IF
Bloque de Ordenes1
ELSE
Bloque de Ordenes2
ENDIF
IF ANIDADOS
Se denomina as cuando se usa simultaneamente varias estructuras condicionales IF.
Sintaxis 3:
IF
Bloque de Ordenes1
ELSE
IF
Bloque de Ordenes2
ELSE
Bloque de Ordenes3
ENDIF
ENDIF

78

Funcin FOUND( )

Propsito:
Un valor verdaero, si la bsqueda con SEEK tuvo xito, en caso contrario
reporta falso.
Sintaxis:
Found ( )
Ejemplo:
Hacer un Programa que permita eliminar registros de la base de datos "Alumnos"
USE Alumnos Order codi
Cod=spac(6)
@5,10 SAY "Ingrese Codigo:" GET cod PICT "@!AAAA99"
read
SEEK cod
IF FOUND( )
*Tuvo xito la bsqueda*
Delete
Pack
ELSE
@10,10 SAY "Codigo No Registrado"
ENDIF
WAIT
USE
...

Funcin SEEK( )

Propsito:
Retorna verdadero si la bsqueda. con SEEK fue exitosa, caso contrario
reportar falso.
Sintaxis:
SEEK ( )
Ejemplo:
Hacer un Programa que permita ingresar registros de la base de datos "Alumnos"
USE Alumnos Order codi
Cod=spac(6)
@5,10 SAY "Ingrese Codigo:" GET cod PICT "@!AAAA99"
read
IF SEEK (cod)
*Tuvo xito la bsqueda*
@10,10 SAY "codigo ya Existente"
ELSE
:
Pedir todos los datos
:
APPEND BLANK
REPLACE
:
ENDIF

Orden DO WHILE
Propsito :
Permite la ejecucin de un grupo de ordenes mientras que la condicin sea cierta.
Sintaxis :
DO WHILE
:
:
[LOOP]
[EXIT]
ENDDO
Donde:
LOOP
EXIT

: Regresa a evaluar la condicin.


: Direcciona la salida con el DO WHILE hacia la siguiente orden que siga a ENDDO.

Bucle Infinito

79

DO WHILE .T.
?"FOX"
ENDDO
Ingresa en pantalla la palabra FOX infinidad de veces. Para detener sta impresin presionar la tecla ESC.
Bucle Infinito
X=0
DO WHILE X<3
X=X+1
?"FOX"
ENDDO
Imprimir en pantalla la palabra FOX tres veces.
Ejemplos:
Hacer un programa que permita consultar registros de la B/D "Alumnos"
USE ALUMNOS ORDER CODI
OP="S"
DO WHILE OP="S"
CLEAR
COD=SPAC(6)
@5,10 SAY "INGRESE CODIGO:" GET COD
READ
IF SEEK (COD)
DISPLAY
ELSE
@10,10 SAY "CODIGO NO REGISTRADO"
ENDIF
OPI=" "
@20,20 SAY "DESEA CONTINUAR [S/N]:" GET OPI PICT "@M S,N"
READ
IF OPI="S"
LOOP
ELSE
EXIT
ENDIF
ENDDO

Orden FOR...ENDFOR
Propsito :
Permite ejecutar un bloque de rdenes un nmero especificado de veces.
Sintaxis :
FOR Var=inicio TO final [STEP incremento]
:
:
[EXIT]
[LOOP]
ENDFOR | NEXT
Donde:
Var : Variable de memoria a analizar.
inicio

: Es un valor de inicio para el contador.

final
: Es el valor final del contador. Cuando var sea igual o mayor que final, el bucle se
detendr y pasar el
control a la siguiente lnea despus de ENDFOR.
incremento : Es la cantidad en la que se incrementar el contador. Si no se indica, el valor
por defecto para el
incremento es 1.

Orden DO CASE...ENDCASE
Propsito :
Permite evaluar mltiples condiciones.
Sintaxis :
DO CASE
CASE

80

CASE
:
[OTHERWISE
]
ENDCASE

DO CASE es una estructura condicional mltiple y excluyente, en donde slo una de las
condiciones se podr ejecutar.
En caso de no cumplirse ninguna condicin y se ha usado OTHERWISE se ejecutarn
todas las rdenes comprendidas entre OTHERWISE y ENDCASE, caso contrario se
ejecutar la orden que sigue a ENDCASE.
Funcin INKEY( )
Propsito :
Se usa sta funcin para obtener el valor nmerico correspondiente a una tecla.
Sintaxis :
INKEY ( [ExpN] )

Ejemplo:
1. Para detener la ejcucin de un programa se debe agregar la siguiente lnea:
:
:
=inkey(0)
&& se asigna al vaco
:
para continuar con el programa presionar cualquier tecla.
TECLA

CODIGO

TECLA

CODIGO

F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
INSERT
HOME

28
-1
-2
-3
-4
-5
-6
-7
-8
-9
133
134
22
1

DEL
END
PgDn
PgUp

7
6
3
18
4
19
24
5
27
13
129
9
32
15

ESC
ENTER
BACKSP
TAB
Barra Espac
TAB

81

Anda mungkin juga menyukai