Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Visual Foxpro 9 PDF
Visual Foxpro 9 PDF
Aprendizaje - Ayuda
Conceptos - Eventos - Controles
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
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.
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
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
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
Significado
Enabled
FontName
Left
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
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
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.
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
10
4
Memo
Doble
Precisin
Character
Logical
Integer
(Entero)
Carcter
(Binario)
Memo (Binario)
General
(Obj.OLE)
Fecha - Fecha
y hora (Date DateTime)
1
254
1
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
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
imprime .F.
Operador +
Tipos de datos vlidos
? "Fox" + "Pro"
Imprime FoxPro
Operador *, /
Tipos de datos vlidos
Numeric
Ejemplo
? 5 * 5
Resultado
Imprime 25
FUNCION
Tipo
DESTINO
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
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.
8
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).
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).
Continua...
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
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
Formulario
SCX,SCT
Bibliotecas de
Clases Visuales
Tablas
VCX,VCT
DBF,FPT
ndices
CDX,IDX
Documentacin
ACT
Informes
FRX,FRT
Etiquetas
LBX,LBT
Etiquetas.
Libreras Windows
DLL
Errores
ERR
12
Ejecutables
EXE
Macros
FKY
Bibliotecas API
FLL
Programas
PRG,FXP
Biblioteca
de
enlace
dinmico
Windows.
Programa Fuente y Compilado.
Ayuda
HLP
Memoria
MEM
Mens
MNX,MNT
Fichero de almacenamiento
variables de memoria.
Fichero de definicin de mens.
Mens generados
MPR,MPX
Control OLE
OCX
Consulta SQL
QPR,QPX
Copias de seguridad
TBK,BAK
Texto
TXT
Constantes
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.
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
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.
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.
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.
16
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
Continua...
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.
Alcance
18
Argumento
Descripcin
Todos
ALL
Siguiente
NEXT n
Registros
RECORD n
Restantes
REST
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
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.
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.
21
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
ZAP
[IN nreaTrabajo | cAliasTabla]
BLANK
[FIELDS ListaCampos]
[Alcance]
[FOR lExpresin1]
[WHILE lExpresin2]
[NOOPTIMIZE]
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
FrameWork II (FW2)
24
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.
25
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.
26
a continuacin y que son las que incorpora Visual FoxPro en el momento de ser
instalado:
Macro
Descripcin
Accin
F2
F3
F4
F5
F6
F7
Muestra el contenido de la
memoria por pantalla
F8
F9
Nombre
LEFTARROW
27
RIGHTARROW
UPARROW
DNNARROW
Inicio (Home)
HOME
Fin (End)
END
PGUP
PGDN
Sup (Del)
DEL
Borrar (Backspace)
BACKSPACE
SPACEBAR
Ins
INS
Tabulador
TAB
BACKTAB
Intro (Enter)
ENTER
F1 a F12
Ctrl+F1 a Ctrl+F12
Ctrl+F1, Ctrl+F2...
Shift+F1 a Shift+F12
Shift+F1, Shift+F12...
Alt+F1 a Alt+F12
Alt+0 a Alt+9
Alt+A a Alt+Z
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
RIGHTMOUSE
LEFTMOUSE
MOUSE
Esc
ESC
28
29
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 .
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>
32
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.
33
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 2
Para lo cual, debemos crear primero la BASE DE DATOS a quien va estar asociado, nuestras tablas.
34
Nota: Observe este grfico y la de Clientes ( Pgina 2), ambos son de creacin de estructuras, pero tienen una
marcada diferencia.
FACTURAS.DBF
Al final de un trabajo arduo, Ud. deber llegar a la siguiente presentacin:
35
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:
Agregar tabla
Relaciones:
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.
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:
36
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
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.
Modificar
3. Hacer Click en la ficha: ndices (ver fig. inferior)
37
3.
Cliecod
4.
Principal
5.
...
6.
ClieCod
de la lista de campos.
7.
Aceptar
8.
38
Aceptar
Venta de expresin
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).
40
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)
CREACION DE VISTA:
Las vistas como un archivo virtual, se crean ejecutando la siguiente secuencia:
Archivo
Men Principal
Nuevo
() Vista
Nuevo Archivo
41
Ahora aparece una ventana, mostrando las tablas origen para la vista a preparar, haga:
Doble Click en :
Facturas
Clientes
Articulo
Tabla padre
Cerrar
En la ficha Campos, seleccione, los siguientes campos, haciendo:
Facturas.Numfac
Facturas.ArtCod
Facturas.Cliecod
Facturas.Cant
Facturas.Preven
Articulo.ArtPre
Articulo.ArtStock
Clientes.ClieNom
Clientes.ClieApe
Clientes.ClieDir
Articulo.Nom
42
Existen varias maneras, pero la ms fcil, es talvez, hacer click en el smbolo ( ) (Signo de
Admiracin)
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.
43
Laboratorio N 2
Archivo
Abrir
En
Buscar
en:
seleccione la carpeta:
Practica.
Base de Datos
(*.dbc)
Luego haga doble
Click en:
Ventas .
44
CREACION DE VISTA:
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.
46
Nota: Las tablas fuente (facturas, Clientes y Articulo), no deben repetirse, si eso no fuera el caso, borrar la
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.
Facturas.Numfac
Facturas.ArtCod
Facturas.Cliecod
Facturas.Cant
Facturas.Preven
Articulo.ArtPre
Articulo.ArtStock
Clientes.ClieNom
Clientes.ClieApe
Clientes.ClieDir
Articulo.Nom
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
Ficha: Combinacin.- Muestra el tipo de enlace entre tablas: Interna, Izquierda, Derecha y
Full
Filtro
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:
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:
Ahora, estimado usuario, despus de una amena explicacin, creo que est en la posibilidad
48
1.
2.
3.
4.
5.
6.
Fecha de venta 28 de Julio a las 10:30 AM (Es un buen peruano, que trabaj este da)
7.
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.
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.
49
Click en:
Archivo
Nuevo
() Consulta
Nuevo Archivo
Facturas
Clientes y
Articulo
Facturas.Numfac
Clientes.ClieApe
Facturas.FecVen
Clientes.ClieDir
Facturas.ArtCod
Articulo.ArtNom
Facturas.Cliecod
Articulo.ArtPre
Facturas.Cant
Aritculo.ArtStock
Facturas.PreVen
Clientes.ClieNom
50
ON Articulo.artcod = Facturas.artcod ;
ON Clientes.cliecod = Facturas.cliecod
Observamos que por defecto est seleccionado destino Examinar para la consulta.
1.
Seleccionamos Cursor
Click en Ejecutar
Lleg a observar algo?, Continue
2.
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.
3.
4.
Aceptar
Ejecutar
Ctrl+Shift+Alt
52
cursor sobre: Asistente para Informes, y haga Click en: Aceptar. Tendremos la siguiente
figura.
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
53
5.
6.
Archivo, Quit
Gracias...
Laboratorio No 03
Objetivo: Crear un informe personalizado, simples y con quiebres grupos.
54
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.
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.
1.
2.
3.
56
4.
5.
6.
7.
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.
Barra de Herramientas...
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.
58
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
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.
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.
59
Observe que est agrupado por Clientes, ordenado por descripcin y con un sub-total por
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
Pasos:
Click en Men:
Informe
Agrupar datos
60
...
(Punto punto )
Vista2.ClieCod
(ver grfico)
61
62
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 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
63
Modelo de diseador
64
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
65
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.
2.
3.
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.
66
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.
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
67
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
12. Aqu se muestra un ejemplo a donde debemos llegar, cuando nuestro formulario ya est completamente
preparado y ejecutndose:
68
El ttulo actual del formulario se observa como: Universidad Nacional de Ingeniera, pero ya
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:
.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)
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:
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 ( ! ),
69
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.
4.
5.
6.
7.
8.
70
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.
11. Haga Click en cada objeto y re-ubicar los objetos, asimismo cambie el ttulo de las etiquetas.
( Observe el siguiente grfico)
71
12. Haga Click en el Botn Ver Clases del Control de Formularios ( Esta se encuentra al lado derecho de
la Flecha)
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)
72
21. Suerte
Pruebe.
73
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
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.
74
Ejemplo:
SET STATUS off
SET HEADING off
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
VARIBLES DE MEMORIA
75
FEC={10/19/78}
VAR=.T.
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..
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
76
Propsito :
Permite editar una variable o un campo en una posicin de la pantalla, permitiendo su
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
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
Descripcin
N
!
9
77
Funcin
A
!
E
Z
M
Descripcin
Slo carcteres de tipo alfabtico.
COLOR
PROPOSITO
78
Video Inverso
I
U
X
W
N
W/N
B
BG
G
GR
GR+
R
RB
*
+
Subrayado
Vaco (usado para el ingreso de
claves)
Blanco
Negro
Video Normal
Azul
Cyan
Verde
Caf
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)]
Donde:
f1, c1 : Coordenadas del primer punto ubicado en la esquina superior izquierda.
f2,c2
Expresin
79
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
Funcin FOUND( )
Propsito:
Un valor verdaero, si la bsqueda con SEEK tuvo xito, en caso contrario
reporta falso.
Sintaxis:
Found ( )
80
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( )
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)
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 : Regresa a evaluar la condicin.
81
EXIT
: Direcciona la salida con el DO WHILE hacia la siguiente orden que siga a ENDDO.
Bucle Infinito
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
82
detendr y pasar el
Orden DO CASE...ENDCASE
Propsito :
Permite evaluar mltiples condiciones.
Sintaxis :
DO CASE
CASE
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
83
84