Anda di halaman 1dari 51

Guis del Usuario

Prcticas FoxPro

Revista Compus

INTRODUCCION
En este mdulo daremos a conocer al estudiante el lenguaje de programacin Visual
Fox Pro 6.0. Se pretende familiarizar al alumno con el entorno de desarrollo de
aplicaciones para base de datos.
Visual Fox Pro pertenece a la familia Xbase lo que hace que su programacin sea
sencilla, estructurada y ms fcil de entender tanto para programadores principiantes como
programadores expertos.
Es una potente herramienta orientada a objetos para la creacin y administracin de
bases de datos y para el desarrollo de aplicaciones profesionales. Ofrece todo lo necesario
para organizar la informacin en tablas, realizar consultas, crear bases de datos
relacionales, programar aplicaciones, informes, etc.

Prof. Jos de La Rosa

Pgina 1

Guis del Usuario


Prcticas FoxPro

Revista Compus

VISUAL FOXPRO
Visual FoxPro es un gestor de base de datos, orientado a la programacin de
objetos. Se dice esto porque utiliza objetos prediseados, a la vez Visual FoxPro es una
aplicacin que permite gestionar y manipular informacin organizada en una base de datos.
Puede elaborar consultas, informes, pantallas, mens y proyectos sobre una o varias
tablas.
Desarrolla aplicaciones en un ambiente orientado a objetos con caractersticas
cliente/servidor.
CONCEPTOS BSICOS:
Base de Datos: Una base de datos o banco de datos es un conjunto de datos pertenecientes
a un mismo contexto y almacenados sistemticamente para su posterior uso. En este
sentido, una biblioteca puede considerarse una base de datos compuesta en su mayora por
documentos y textos impresos en papel e indexados para su consulta.
Existen unos programas denominados sistemas gestores de bases de datos, abreviado
SGBD, que permiten almacenar y posteriormente acceder a los datos de forma rpida y
estructurada. Las propiedades de estos SGBD, as como su utilizacin y administracin, se
estudian dentro del mbito de la informtica. Las Bases de datos se agrupan en tablas.
Tablas o entidades: Tabla en las bases de datos, se refiere al tipo de modelamiento de
datos, donde se guardan los datos recolectados por un programa. Su estructura general se
asemeja a la vista general de un programa de Hoja de clculo.
Las tablas se componen de dos estructuras:
Campo: Corresponde al nombre de la columna. Debe ser nico y adems de tener un tipo
de dato asociado.
Registro: Corresponde a cada fila que compone la tabla. All se componen los datos y los
registros. Eventualmente pueden ser nulos en su almacenamientos.
En la definicin de cada campo, debe existir un nombre nico, con su tipo de dato
correspondiente. Esto es til a la hora de manejar varios campos en la tabla, ya que cada
nombre de campo debe ser distinto entre s.
A los campos se les puede asignar, adems, propiedades especiales que afectan a los
registros insertados. El campo puede ser definido como ndice o autoincrementable, lo cual

Prof. Jos de La Rosa

Pgina 2

Guis del Usuario


Prcticas FoxPro

Revista Compus

permite que los datos de ese campo cambien solos o sean el principal indicar a la hora de
ordenar los datos contenidos.
Cada tabla creada debe tener un nombre nico en la cada Base de Datos, hacindola
accesible mediante su nombre o su sinnimo (dependiendo del tipo de base de datos
elegida).
Ingreso al programa:

Haga clic en el botn de Inicio.

Elija Programas.

Luego Microsoft Visual FoxPro.

Luego el icono de Microsoft Visual FoxPro 6.0

Descripcin del Entorno del Programa:


Barra de Ttulo
Barra de Mens
Barra de
Herramientas

Ventana de
Comandos
Barra de Estado

BARRA DE MENS: Contiene rdenes para.


Archivo:

Abrir, guardar, cerrar, revertir, importar, exportar, imprimir y preparar


pgina, abrir archivos utilizados recientemente y salir de un archivo o de
Visual FoxPro.

Edicin:

Deshacer operaciones, seleccionar y editar texto, buscar y reemplazar


caractersticas; vnculos e informacin sobre el objeto.

Ver:

Visualizar las barras de herramientas.

Prof. Jos de La Rosa

Pgina 3

Guis del Usuario


Prcticas FoxPro

Herramientas:

Revista Compus

Asistentes, ortografa, macros, examinador de clases, ventanas de


seguimiento y de depuracin y opciones.

Programa:

Ejecutar, cancelar, reanudar, suspender y compilar.

Proyecto:

Nuevo, agregar, modificar, ejecutar, quitar y cambiar nombre de archivos;


incluir, establecer principal y editar descripcin; informacin de proyecto,
errores y generar; limpiar proyecto.

Ventana:

Visualizar ventanas.

Ayuda:

Contenido, bsqueda de ayuda y soporte tcnico.

BARRA DE HERRAMIENTAS: Posee conos para los accesos directos.


VENTANA COMANDOS: Se puede introducir rdenes para realizar unas tareas
especficas.

EL ADMINISTRADOR DE PROYECTOS:
EL Administrador de proyectos est organizado de forma muy parecida a un archivador.
Consta de varias fichas, tales como: TODO, DATOS, DOCUMENTOS, CLASES,
CODIGO y OTROS. Estas fichas le proporcionan un rpido y fcil acceso a los objetos
que utilizar en el proyecto. Cuando se desarrolla una aplicacin se utilizan las tcnicas de
ratn sealar y pulsar o arrastrar y colocar para poder acceder y manipular los
componentes de la aplicacin.

PASOS PARA CREAR UN PROYECTO:


- Desde el Men de Archivo de Visual FoxPro, seleccione NUEVO
- Debajo del Botn de tipo de Archivo, selecciones PROYECTO

Prof. Jos de La Rosa

Pgina 4

Guis del Usuario


Prcticas FoxPro

Revista Compus

- Pulse el botn NUEVO ARCHIVO

- Introduzca el nombre del proyecto.


- Pulse el Botn CREAR.
- Establezca la va de acceso del Proyecto desde la ventana de Comandos con la orden
SET DEFAULT TO ejemplo:

SET DEFAULT TO D:\VFP\PROYEC1

Una recomendacin, cree un directorio para su aplicacin y dentro de el, uno para
las tablas, otro para los informes, formularios y recursos (archivos BMP, libreras, etc.), es
importante mantener un orden, le ahorrara dolores de cabeza para ubicar un archivo, o
diferenciar cuales son externos (que deben acompaar al ejecutable, como son las tablas,
libreras, archivos BMP, etc.)
COMANDOS BSICOS PARA TRABAJAR CON PROYECTOS:
Create Project: Crea un nuevo Proyecto
Modify Project: Modifica la estructura del proyecto.
He aqu algunos de los elementos que se fijan en la configuracin del sistema:
SAFETY = OFF && no avisa antes de sobrescribir archivos

Prof. Jos de La Rosa

Pgina 5

Guis del Usuario


Prcticas FoxPro

Revista Compus

TALK= OFF && no despliega el progreso


ECHO= OFF && inicialmente desactiva el rastreo
DEBUG= ON && habilita el rastreo y la depuracin
RESOURCE=FOXUSER && elige un archivo de recursos
RESOURCE=OFF && no se use hasta que se solicite
COMMAND= DO PROG && corre PROG al inicio
Otros comandos de configuracin son:
SET CENTURY ON/OFF
SET CLOCK ON/OFF
SET DATE
SET DELETE ON/OFF
SET ECHO ON/OFF
SET SYSMENU
CREACIN DE UNA BASE DE DATOS:
En un proyecto, una base de datos se crea colocando la informacin en tablas con sus
respectivas relaciones utilizando de ventana de diseo.
Desde el administrador de proyectos, pulse la ficha DATOS.

- Desde la lista de apartados de datos seleccione BASE DE DATOS.


- Pulse el Botn NUEVO.

Prof. Jos de La Rosa

Pgina 6

Guis del Usuario


Prcticas FoxPro

Revista Compus

- Escriba el Nombre de la nueva base de datos.


- Pulse el botn CREAR (Debe aparecer la Ventana de Diseo de la Base de Datos )
Al comenzar un nuevo proyecto, el generador estar vaco. Se deben crear las
tablas para almacenar la informacin en contenedor (Ventana de Diseo) de la Base de
Datos y Luego se establecen la relaciones entre cada una de ellas.

Contendedor de
la Base de Datos

Barra de herramientas
para BD

Comandos Bsicos para el manejo de de una Base de Datos


Create Database
Modify Database
Open Database
Close Database

Crea una nueva Base de Datos.


Modifica la estructura de la Base de Datos.
Abre una Base de Datos guardada.
Cierra la Base de Datos.

Descripcin de los botones de la Barra de herramientas (Diseador de Base de


Datos):
Crear

una nueva tabla.

Agregar una tabla existente


Eliminar una tabla seleccionada
Modificar una tabla seleccionada

Prof. Jos de La Rosa

Pgina 7

Guis del Usuario


Prcticas FoxPro

Revista Compus

Creacin de Vistas remotas


Creacin de Vistas locales
Editar Procedimientos almacenados en la Base de Datos
Creacin de Conexiones con vistas remotas
Examinar el contenido la tabla (BROWSE)
Los nombres de las tablas deben ser de una a ocho caracteres de largo y deben tener la
extensin predeterminada .dbf (database file: archivo de Base de Datos)
CREACIN DE TABLAS:
Las tablas pueden agregarse a una base de datos utilizando dos herramientas : El Asistente
de Tablas o el Generador de Tablas. Para realizarlo seguirm los pasos siguientes:

Click en el botn de Nueva tabla, aparecer la ventana Nueva Tabla.

Se selecciona Nueva Tabla, luego aparece la ventana de guardar el archivo,


seleccione el directorio y el nombre de la tabla y luego presione el boton de guardar.

Nos aparecer la ventana del Diseador de tablas:

Comandos bsicos para el manejo d las tablas:


Create <Nombre> Crea una nueva tabla.
Use <Nombre>
Selecciona la tabla respectiva.
Use <Nombre> Alias <Alias> Abre la tabla y selecciona el rea de trabajo en la cual se
desea trabajar.

Prof. Jos de La Rosa

Pgina 8

Guis del Usuario


Prcticas FoxPro

Revista Compus

Use
Modify Structure
Select <N>

Cierra las tablas en el rea de trabajo activo.


Modifica la estructura de la tabla abierta.
Selecciona el rea N de trabajo.

CREACIN DE CAMPOS:
Los campos no deben de contener caracteres especiales, fuera del carcter "Guin bajo", y
tampoco puede empezar con un nmero. Pueden ser cuales quiera de varios tipos:
Ingreso de campos: Igual que en las versiones anteriores, la definicin de campos es igual.
Se introduce el nombre del campo, el tipo de datos que soportar y el tamao. Los nombres
de los campos pueden tener hasta 254 caracteres sin espacios en blanco.
Tipos de Campos
Los campos no deben de contener caracteres especiales, fuera del carcter "Guin bajo", y
tampoco puede empezar con un nmero. Pueden ser cuales quiera de varios tipos:
Tipo

Descripcin

Ejemplo

Carcter

Texto alfanumrico

La direccin de un cliente

Monetario

Unidades monetarias

Precio de compra

Numrico

Nmeros enteros o decimales de Cantidad de artculos pedidos


hasta 20 dgitos

Flotante

Este no lo utilizaremos en este Poblacin en el mundo.


manual pues slo sirve por
compatibilidad con dBASE V, es
equivalente al formato numrico.

Fecha

Da, mes y ao, el formato puede Fecha en que se realiz un pedido


depender del estado del comando
SET DATE

FechaHora

datos cronolgicos que constan de Fecha y hora en que un empleado


da, mes, ao, horas, minutos y lleg al trabajo
segundos

Doble

Puede guardar un valor numrico de Datos procedentes de experimentos


signo flotante de doble precisin
que requieren un elevado grado de
precisin

Entero

Valores numricos no decimales Nmero de lnea de un pedido


(nmeros enteros)

Lgico

Verdadero o Falso

Memo

Texto alfanumrico de
indeterminada,
similar
procesador de texto

Prof. Jos de La Rosa

Si se ha completado o no un pedido
longitud Notas de un registro telefnico
a
un sobre las llamadas

Pgina 9

Guis del Usuario


Prcticas FoxPro

Revista Compus

General

Permite guardar datos tipo OLE, por Hoja de clculo de Excel, un control
ejemplo imgenes, sonidos u otros ActiveX
creados por una aplicacin diferente.

Carcter
(binario)

Igual que Character, pero los valores Las


contraseas
de
usuario
no se traducen cuando cambia la almacenadas en una tabla y usadas
tabla de cdigos
en distintos pases

Memo
(binario)

Igual que Memo, pero los valores no Un archivo de comandos de inicio


se traducen cuando cambia la tabla de sesin empleado en distintos
de cdigos
pases

Definicin del Display:


Formato: Es el formato de salida del campo, ejemplo si fuera nmerico 9,999.99 o si fuera
carcter !!!!!!!!!!!!, para que solo acepte mayusculas
Mscara de entrada: Igual que el Format, lo nico que es para la entrada de datos.
Ttulo: Descripcin mas precisa del campo, es de utilidad al disear los Formularios.
Definicin de reglas de validacin a nivel de campo:
La validacin son triggers o eventos que se ejecutan a nivel de campo. Ejemplo: una
validacin de un campo que solo acepte nmeros positivos. (id > 0)
Regla: Es la regla de validacin, ejemplo: id > 0, si queremos que acepte valores positivos.
Mensaje: Es el mensaje personalizado que queremos que aparezca en pantalla a la hora de
violarse la regla de validacin del campo. Ejemplo : Solo se aceptan nmeros positivos
(nota: el texto debe escribirse entre comillas).
Valor Predeterminado: (nota: hay que respetar el tipo de dato del Campo)
Proceso de Indexacin:
Cuando haya creado una tabla, puede ordenar los datos para acelerar la obtencin de datos
mediante ndices. Con los ndices, puede procesar rpidamente los registros para
mostrarlos, consultarlos o imprimir. Tambin puede seleccionar registros, controlar si se
introducen valores duplicados en un campo y admitir relaciones entre tablas.
VFP ofrece cuatro tipos de ndice diferentes, cada uno con caractersticas predeterminadas:

Principal

Candidato

Normal

nico

Prof. Jos de La Rosa

Pgina 10

Guis del Usuario


Prcticas FoxPro

Revista Compus

Los ndices principales, aseguran que slo se introducen valores nicos en un campo y
determinan el orden en el que se procesan los registros. Puede crear un ndice principal
para cada tabla si la tabla est incluida en la base de datos. Si la tabla ya tiene un ndice
principal, agregue un ndice candidato. Este ndice es el que define el campo clave
Los ndices candidatos, tambin imponen valores nicos y determinan en qu orden se
procesan los registros, como un ndice primario. Puede tener varios ndices candidatos por
tabla en bases de datos y en tablas libres.
Los ndices normales, determinan el orden en que se procesan los registros pero permite
que se introduzcan valores duplicados en un campo. Puede agregar ms de un ndice
normal a una tabla.
Por compatibilidad con versiones anteriores, tambin puede crear un ndice nico que
selecciona y ordena un subconjunto de registros segn la primera aparicin de un valor en
el campo que especifique. Si quiere seleccionar registros de esta manera, es posible que
quiera crear una consulta o una vista en lugar de ello.
Por ejemplo si en este momento necesitramos una lista de precios probablemente la
querramos en orden alfabtico y en otras ocasiones segn el cdigo, solucionaremos
ambos casos creando dos ndices:
Relacin entre Tablas:
Relacin temporal: Es la que consigue usando el comando SET RELATION, su mismo
nombre lo indica la relacin se efecta solo por un instante, al dar la orden CLOSE DATA
se pedrera inmediatamente.
Relacin permanente: se consigue al construir la base de datos, este tipo de relacin es
persistente.
Comandos para vincular tablas:
SET RELATION TO
Crea una relacin entre una base de datos padre, la que deber estar abierta en el rea de
trabajo actualmente seleccionada, y una base de datos hija, ya abierta en otra rea de
trabajo.
SINTAXIS

Prof. Jos de La Rosa

Pgina 11

Guis del Usuario


Prcticas FoxPro

Revista Compus

SET RELATION TO [<expresin1> INTO <expresin numrica1>|<expresin carcter1>]

Luego que creamos una tabla nos saldr la siguiente ventana:

Si presionamos que SI nos aparecer una nueva ventana en la cul vamos a empezar a
rellenar los registros para dicha tabla.
Comandos para el manejo de registros:
Cuando utilizamos inicialmente una tabla de FoxPro, t ests ubicado en el primer registro
de la tabla. Puedes mover este puntero de registro imaginario alrededor de la tabla, en
diversas formas:
Skip Mueve el puntero hacia adelante un registro
Skip -<N> mueve el puntero hacia los N registros atrs. (Retroceder)
Go TOP Mueve el puntero al primer registr
Go bottom Mueve el puntero al ltimo registro en la tabla
Go +<N> Mueve el puntero del registro a los N registros adelante. (Avanzar)
* Prueba estos comandos primero digita uno de ellos y luego digita list y vers los
resultados.
Mencionaremos otros comandos que son de gran ayuda al momento de manipular los
datos:
APPEND Agrega registros a la base de datos seleccionada.
APPEND FROM Agrega registros desde otra tabla al final de los registros de la tabla
seleccionada.
APPEND BLANK Agrega un registro en blanco en la tabla abierta.
DELETE Borra el registro activo.
DELETE ALL Borra todos los registros de la tabla abierta.
DELETE ALL FOR <CONDICION> Borra todos los registros que cumplan con la
Condicin.

Prof. Jos de La Rosa

Pgina 12

Guis del Usuario


Prcticas FoxPro

Revista Compus

COPY FILE Copia cualquier tipo de archivos


COPY STRUCTURE Almacena la estructura de una base de datos en una nueva base
COPY TO Copia datos de una base de datos a un archivo
COUNT Determina el nmero de registro en la base de datos
DISPLAY FILES Muestra informacin de base de datos
DISPLAY MEMORY Despliega la informacin de las variables de memoria
DISPLAY STATUS Despliega informacin de la condicin de FOX
DISPLAY STRUCTURE Muestra la estructura de una base de datos
MODIFY COMMAND Abre una ventana de modificacin de texto
REPLACE Actualiza los registros en una base de datos.
Otro tipo de comandos tiles para la manipulacin de tablas y registros son las
FUNCIONES, las cuales se dividen en:
)

Cadenas o manejo de caracteres: este grupo de funciones gestiona el manejo de


caracteres.

Matemticas: permiten efectauar operaciones con valores numricos.

Manejo de fechas y hora: se encarga de gesstionar las variables de tipo fecha.

Lgicas: Se encargan de efectuar operaciones de tipo lgico.

Funciones de convercin de tipos: conviertes variables de un tipo a otro.

Funciones:
Son procesos internos programadores que pueden ser llamados desde cualquier punta de
Visual Fox lo que diferencia de los mandatos de las funciones es que estas devuelven un
valor. Aceptan una serie de parmetros, y se reconocen por el uso de parntesis para
encerrar los argumentos, por ejemplo DATE( ) y TIME ( ).
Las funciones se dividen de la siguiente forma:

Tipos de datos

Funciones de manejo de cadenas de caracteres.

Funciones de conversin de tipos

Funciones de fecha y hora

Funciones de manejo de valores numricos

Funciones definidas por los usuarios (FDU)

Prof. Jos de La Rosa

Pgina 13

Guis del Usuario


Prcticas FoxPro

Revista Compus

Antes de mostrar ejemplos definiremos dos componentes que se hacen necesarios en la


manipulacin de datos:
Constante:

Son valores predefinidos que no cambian nunca por ejemplo: valor1=15478,

cadena=abcd.
Variable:

Se utilizan como identificadores de secciones de memoria donde se guarda

informacin, por ejemplo: var1=campo1, var2=tabla.campo.


Las variables se pueden definir como: publicas, privadas y locales ejemplo:
PUBLIC nombre, apellidos
PRIVATE sueldo
Operadores relacionales:
Los operadores se utilizan en tiempo de ejecucin para unir dos o ms elementos del
lenguaje.
Operadores aritmticos
( )

Agrupa subexpresiones

**, ^ Exponenciacin
*, /

Multiplicacin y divisin

Mdulo (resto de la divisin)

+, -

Suma y resta

Operadores relacionales:
<

Menor que

>

Mayor que

<=

Menor o igual que

>=

Mayor o igual que

igual a

<>, #, =Distinto de
$

Contenido en

Ahora te daremos unos ejemplos con funciones en Visual FoxPro.


* Declaracin de variables
cadena1 = SPACE(15)
cadena2 = SPACE(15)
nmero = 0
Prof. Jos de La Rosa

Pgina 14

Guis del Usuario


Prcticas FoxPro

Revista Compus

cuenta = 0
* Asignacin de datos
cadena1 = abcd efgh ijkl
* utilizando la funcin LEN para contar el nmero de la cadena
? LEN(Cadena1)

&& imprime en pantalla 14

? Cadena2= SUSBTR(cadena1,1,4) && imprime en pantalla abad


? DTOC(DATE())
? SIN (0)
ndices:
Cuando se insertan registros en una tabla estos no se encuentran ordenados, para ello es
necesario utilizar comandos que nos permitan ordenar los registros de acorde a la
informacin que necesitamos.
Comando SORT
Clasifica un archivo de base de datos
SINTAXIS
SORT TO <archivo> ON <campo> [/A] [/D] [/C]
[,<campo2> [/A] [/D] [/C]..]
[ASCENDING | DESCENDING]
[<alcances>]
[FOR <expresin lgica1>] [WHILE <expresin lgica2>]
[FIELDS <lista de campos>]
EJEMPLO:
USE persona
SORT TO persona_ordenada ON nombre
USE persona_ordenada
Persona
Juan Martnez

persona_ordenada
Eduardo Garay

Roxana Cuellar

Juan Martnez

Margarita Rosales

Margarita Rosales

Pedro Lpez

Pedro Lpez

Eduardo Garay
Comando INDEX ON

Prof. Jos de La Rosa

Roxana Cuellar

Pgina 15

Guis del Usuario


Prcticas FoxPro

Revista Compus

Crea un ndice en un archivo de ndices compuestos o bien un archivo de ndice simple.


SINTAXIS
INDEX ON campo TO nombre de archivo IDX | TAG etiqueta
[OF archivo CDX][FOR expresin lgica] [COMPACT][ASCENDING | DESCENDING]
[CANDIDATE |UNIQUE ][ADDITIVE]
EJEMPLO:
USE persona
INDEX ON nombre TO persona.idx
El comando INDEX ON crea una archivo ndice llamado persona.idx, el cual tendr el
ndice de el archivo persona.
Una mejor forma de crear un ndice y en el cual Fox trabaja a una mejor capacidad es
creando un ndice compuesto.
INDEX ON nombre TAG persona
De la forma anterior se crea un archivo ndice persona.CDX.
Tambin se pueden crear ndices combinados con dos o ms campos por ejemplo: INDEX
ON UPPER(LEFT(apellido,10) + LEFT(nombre,10)) TO nombre.
Consultas:
Las consultas son pedidos de informacin a Base de Datos. Se utilizan las consultas
cuando queremos realizar pedidos de datos a una base de datos.
Creando una consulta: Para crear una nueva consulta se puede de ingresar al men
Archivo, luego seleccionar el submen Nuevo, y de la ventana que nos muestra seleccionar
la opcin Consulta, seguidamente de Nuevo Archivo.

Creacin de Consultas Por Asistente


Paso 1 - Seleccionar campos.

Prof. Jos de La Rosa

Pgina 16

Guis del Usuario


Prcticas FoxPro

Revista Compus

En este caso como las tablas ya estn relacionadas, segn las estructuras de los ndices
indicados, el paso siguiente es el Paso 3 de filtro de registro. En Valor Vamos a Poner un dato de
la tabla que corresponde al Cdigo.
Paso 4 - Ordenar registros

Paso 4a -Limitar registros

5.Finalizar

Guarda la consulta con el nombre: consulta1

Informes:
Los informes son la representacin grfica de las consultas y tablas que posee una Base de
datos, utilice el Diseador de informes para crear y modificar informes.
Para crear rpidamente un diseo sencillo de info.
me, elija Informe rpido del men Informe. Informe rpido le solicita la entrada de los
campos y el diseo que desea para su informe.

Prof. Jos de La Rosa

Pgina 17

Guis del Usuario


Prcticas FoxPro

Revista Compus

Opciones de la ventana
Bandas
De forma predeterminada, el Diseador de informes muestra tres bandas: Encabezado de
pgina, Detalle y Pie de pgina. En la parte inferior de cada banda hay una barra
separadora. El nombre de la banda aparece en la barra gris junto a una flecha azul, que
indica que la banda est encima, no debajo, de la barra gris.
Puede agregar las siguientes bandas a su informe.
Banda
Encabezado

Se imprime
de Una vez por columna

Contenido tpico
Ttulo de columna

columna
Pie de columna
Una vez por columna
Encabezado de Una vez por grupo

Resumen, totales
Precede los datos siguientes

grupo
Pie de grupo
Ttulo

Valores calculados para grupos de datos


Ttulo

Una vez por grupo


Una vez por informe

Fecha
Logotipo
Resumen

Una vez por informe

nmero
de

de
la

pgina
compaa

Cuadro alrededor del ttulo


Totales
Texto como Suma total

Regla:
El Diseador de informes tiene una regla vertical y otra horizontal que puede utilizar para
colocar de forma ms precisa los objetos en las bandas. Utilice las reglas junto con el
comando Ver del men Mostrar posicin para ayudarle en la colocacin de los objetos.
La escala de la regla viene determinada por las configuraciones de medidas de su sistema.
Puede cambiar de la escala predeterminada del sistema (pulgadas o centmetros) a pxeles
desde dentro de Visual FoxPro. Si desea cambiar al valor predeterminado del sistema,
cambie la configuracin de medidas de su sistema operativo.
Creacin de Reportes Con Asistente.
Paso 1 - Seleccionar campos

Prof. Jos de La Rosa

Paso 2 Agrupar Registros

Pgina 18

Guis del Usuario


Prcticas FoxPro

Revista Compus

Paso 3. Estilo

Paso 4 - Distribucin

Paso 5 - Orden---codi_peli

Paso 6. Finalizar

3. PROGRAMACIN:
Conceptos:
Usualmente se agrupa el cdigo fuente en archivos de programa. Un archivo de programa
esta compuesto de varias sentencias, que incluyen comandos, funciones y estructuras de
control de flujo.
El compilador traduce el contenido de estos archivos de texto ASCII a cdigo interpretado.
En cuanto el compilador ha traducido el cdigo fuente crea un archivo con extensin .FXP
que es el que va a utilizar a partir de ese momento. Cada vez que el programador
introduce algn cambio en el archivo .PRG el compilador compara la fecha de ambos
archivos y crea una nueva versin compilada del programa.

Prof. Jos de La Rosa

Pgina 19

Guis del Usuario


Prcticas FoxPro

Revista Compus

Haciendo el cdigo legible:

Espacios en blanco: Significan reas vacas dentro del cdigo de programa, tambin
espacios, tabulaciones o lneas vacas.

Sangrado: Sangrar es la mejor manera de optimizar el cdigo. Es una prctica


comn sangrar dentro de comandos pares anidados, por ejemplo:

DO ENDDO
IF ENDIF
SCAN..ENDSCAN
DOCASE...ENDCASE
WITHENDWITH

Maysculas y minsculas: Muchos programadores utilizan maysculas y


minsculas para distinguir entre los elementos del programa; maysculas para los
comandos y minsculas para las variables.

Comentarios: Los comentarios pueden existir en una lnea precedidos por un


asterisco y despus de una lnea de cdigo, si estn separados de && consecutivos.

Continuar lneas largas de cdigo: Puede continuar lneas largas de cdigo en la


siguiente lnea insertando un ; al final de la lnea.

Una de las tcnicas ms tiles en la programacin son los encabezados de programa, por
ejemplo:
* Nombre del programa

: nombre

* Autor

: Hctor Hernndez

* Propsito

: Dibujar cuadros en la pantalla

* Fecha

: 12/12/2001

Comandos de Asignacin:
Para crear variables de memoria y darles valores al mismo tiempo, escriba lo siguiente:
Input: Imprime por pantalla un mensaje y me da la opcin para capturar un valor en una
variable.
X=3
STORE lunes TO da
Para solamente crearlas:
PUBLIC a, b, c

Prof. Jos de La Rosa

Pgina 20

Guis del Usuario


Prcticas FoxPro

Revista Compus

PRIVATE x, y, z
LOCAL nombre, trabaja
DIMENSION nombres(3)
Declaracin de Variables.
Las variables temporales se pueden declarar utilizando los comandos anteriores,
nicamente, hay que tomar en cuenta la forma en que se van a declarar o escribir, como
ejemplo: Nom_Empleado; NomEmpleado,

si son variables de memoria se le puede

anteponer una m x de la forma siguiente, mNom_Empleado; xNom_Empleado, tambin


se pueden declarar variables haciendo saber el tipo de datos que maneja por ejemplo:
cNom_Empleado, nSueldo_Empleado; dFecha_Ingreso, etc.
Operadores:
Los operadores + y son, por supuesto, usados para aadir y substraer nmeros, pero
tambin se pueden usar en campos de caracteres. El operador ms eslabona dos
expresiones de caracteres, campos o variables de memoria, de forma que Fred + Smith;
producir: FredSmith. El operador menos quita espacio rezagado.
Operadores cclicos y ramificaciones:
Las operaciones cclicas y de ramificacin son los mecanismos para crear la lgica de un
programa, ejemplo:
FOR I=1 TO 10
?I

&& Imprime los nmeros del 1 al 10

ENDFOR
SELECT clientes
SCAN
? Clientes.nombre&&Lee un archivo desde el inicio hasta el final
ENDSCAN
SELECT clientes
GO TOP
DO WHILE NOT EOF()
? Clientes.nombre&& Lee un archivo desde el inicio hasta el final
SKIP
ENNDO

Prof. Jos de La Rosa

Pgina 21

Guis del Usuario


Prcticas FoxPro

Revista Compus

Puede salir de estas construcciones cclicas en cualquier momento mediante el comando:


EXIT.
La ramificacin en VF es controlada con la construccin IF.. ENDIF, por ejemplo:
IF I >10
? [El contador excedi 10]
ENDIF
Los contadores se utilizan a menudo para salir de operaciones cclicas:
L=1
DO WHILE L=LEN(nombrelista)
IF [CRUZ]$ nombrelista(L)
SEEK nombrelista(L)
IF nombre= [John]
DO prgnombre
LOOP
ENDIF
ENDIF
ENDDO
Se recomienda que cuando se utiliza un operador cclico, un operador condicional, o
cualquier otro operador que abra y cierre una estructura se escriba el comando primero y
luego se realice el proceso, esto para no perderse en la programacin.
Tipos de comandos
Vamos a dividir los comandos segn su funcionalidad en los siguientes tipos:
1. Base de datos: Todos los que sirven para manipular bases de datos, tablas y
campos.
2.

Entorno: Entorno del sistema operativo y de Visual Fox Pro.

3. Acceso compartido a datos: Acceso multiusuario a tablas y base de datos.


4. Entrada y salida: Los que permiten la interfaz entre la computadora y el usuario.
5. Programacin: Los que tienen relacin con el entorno de desarrollo de aplicaciones.
4. FORMULARIOS:
Creando un Formulario:
Click en: Archivo > Nuevo > ( ) Formulario > Nuevo archivo
Diseador de formulario
Prof. Jos de La Rosa

Pgina 22

Guis del Usuario


Prcticas FoxPro

Revista Compus

Conceptos bsicos:
Objeto: Una instancia de una clase que combina datos y procedimientos. Por ejemplo, un
control de un formulario en ejecucin es un objeto.
Formulario: Se utilizan para visualizar e introducir cualquier tipo de informacin y son el
medio de comunicacin entre el usuario y los datos.
Propiedades: Un atributo de un control, campo u objeto de base de datos que se establece
para definir una de las caractersticas del objeto o un aspecto de su comportamiento. Por
ejemplo, la propiedad Visible afecta a la visibilidad en tiempo de ejecucin de un control.
Puede cambiar los valores de las propiedades de objeto mediante la ventana Propiedades.
Evento: Una accin, reconocida por un objeto, para la cual puede escribir cdigo de
respuesta. Los eventos pueden estar generados por una accin del usuario, como hacer clic
con el mouse o presionar una tecla, por cdigo de programa o por el sistema, como ocurre
con los cronmetros.
Mtodo: Una accin que un objeto es capaz de realizar. Por ejemplo, los cuadros de lista
tienen mtodos llamados AddItem, RemoveItem y Clear para mantener el contenido de las
listas.
Barra de herramientas: Una serie de botones en los que se hace clic para realizar tareas
frecuentes. Las barras de herramientas pueden flotar en su propia ventana o bien puede
acopladas en los extremos superior, inferior o laterales de la ventana principal de Visual
FoxPro. Puede personalizar las barras de herramientas suministradas con Visual FoxPro,
Prof. Jos de La Rosa

Pgina 23

Guis del Usuario


Prcticas FoxPro

Revista Compus

as como crear barras de herramientas propias mediante la clase de base ToolBar incluida
con Visual FoxPro.
BARRAS DE HERRAMIENTAS:
Nos muestra los controles bsicos y disponibles del Visual FoxPro,
estos son llamados clases bases.
Tipos de Controles: Los controles son aquellos objetos que se
colocan en un formulario.
VENTANA DE PROPIEDADES: Nos permite editar
las propiedades de un formulario o sus objetos. La
ventana de propiedades se compone de dos partes, la
seccin de controles ubicado en la parte superior, en el
cual dentro de una lista desplegable se encuentran todos
los objetos seleccionados.
En la parte inferior se encuentran las propiedades
existentes, las cuales se pueden dividir en fichas.
VENTANA DE CDIGO (SCRIPT):
Al hacer doble clic en un objeto determinado, se
muestra la ventana de cdigo. En esta ventana es donde se escriben las sentencias propias
de Visual FoxPro para detallar la aplicacin generada.

Objetos y propiedades bsicas


Form
El formulario es un objeto de tipo contenedor.

Prof. Jos de La Rosa

Pgina 24

Guis del Usuario


Prcticas FoxPro

Revista Compus

Los conjuntos de formularios acogen a uno o ms formularios, o incluso barra de


herramientas. Ala hora de ejecutar el conjunto de formularios, se activan todos los
formularios definidos en el mismo.
Propiedad
Caption
Autocenter
ShowTips
Closable
MaxButton
MinButton
ControlBox
Eventos o Mtodos
Init
Load
Destroy
Unload

Uso
Ttulo de la ventana o forma
Centra el formulario
Para que se muestren los Tooltips
Visualiza el botn cerrar de la ventana
Visualiza el botn maximizar
Visualiza el botn minimizar
Visualiza el men de control de la ventana
Uso
Se dispara a la hora que se inicializan todos los objetos del
formulario
Se dispara antes que se inicialicen los objetos del formularios
(antes que el init)
Se dispara al cerrar el formulario
Se dispara despus de Destroy

Vietas y cuadros de texto


Las vietas o Labels se utilizan para escribir etiquetas a los objetos.
Propiedad
Caption
Alignment
Name
BackColor
ForeColor

Uso
Ttulo de la ventana o forma
Especifica la alinacin del texto
Nombre del objeto
Color de fondo
Color de la letra

Evento o Mtodo
Click
MouseDown

Uso
Se dispara al dar clic en el objeto
El evento MouseDown se desencadena al presionar un botn del
mouse
Ocurren cuando el usuario presiona (MouseDown) o suelta
(MouseUp) un botn del mouse

MouseUp

Los cuadros de texto sirven para capturar los datos de los campos.
Propiedades
ControlSource
Value
Visible
Enabled
Evento o Mtodo
Click
GotFocus

Prof. Jos de La Rosa

Uso
Es la variable o nombre del campo al cual se hace referencia
Contenido de la variable o campo referenciado al ControlSource
Si el control es visible al usuario
Si el control esta habilitado o no
Uso
Se dispara al dar clic en el objeto
Cuando el control toma el enfoque

Pgina 25

Guis del Usuario


Prcticas FoxPro

LostFocus

Revista Compus

Cuando el control pierde el enfoque

Botones de comando
Un control que est asociado a un comando. Cuando hace clic en el botn de comando en
tiempo de ejecucin, el comando asociado al botn se ejecuta.
Propiedades
Uso
Captio
Etiqueta del comando
Visible
Si el control es visible al usuario
Enabled
Si el control esta habilitado
Evento o Mtodo
Click
SetlFocus
LostFocus
Refresh
Init

Uso
Se dispara al dar clic en el objeto
El cursor se va al objeto
Cuando el control pierde el enfoque
Refresca el objeto
Se dispara a la hora que se se inicializa el objeto

Botones de opcin y casillas de verificacin


Un control OptionButton muestra una opcin que se puede activar o desactivar.
Propiedades
ControlSource
Value
Visible
Enabled

Uso
Es la variable o nombre del campo al cual hace referencia
Contenido de la variable o campo referenciado en ControlSource
Si el control es visible al usuario
Si el control esta habilitado o no

Evento o Mtodo
InteractiveChange
Init
Click
Valid

Uso
Se dispara cuando modificamos el campo
Se dispara a la hora en que se inicializa el objeto
Se dispara al dar click en el objeto
Se dispara despus de presionar Enter o Tab, se utiliza para
validar
Refresca el objeto

Refresh

Un control CheckBox muestra una X cuando est activado; la X desaparece cuando el


control CheckBox se desactiva. Utilice este control para ofrecer al usuario una opcin de
tipo Verdadero o Falso o S o No. Puede usar controles CheckBox en grupos para mostrar
mltiples opciones entre las cuales el usuario puede seleccionar una o ms. Tambin puede
establecer el valor de CheckBox mediante programacin con la propiedad Value.
Listas y cuadros combinados
Los cuadros de lista y los cuadros combinados presentan al usuario una lista de opciones.
De forma predeterminada, las opciones se muestran verticalmente en una nica columna,
aunque tambin puede establecer mltiples columnas. Si el nmero de elementos supera a
los que se pueden mostrar en el cuadro combinado o el cuadro de lista, aparecen
automticamente barras de desplazamiento en el control. El usuario puede entonces
desplazarse por la lista hacia arriba o hacia abajo o de izquierda a derecha.
Los cuadros de lista y los cuadros combinados son una manera efectiva de presentar al
usuario gran cantidad de opciones en un espacio limitado.

Prof. Jos de La Rosa

Pgina 26

Guis del Usuario


Prcticas FoxPro

Propiedades
ControlSource
RowSource
rowSourceType
Visible
Enabled
BoundColumn
BoundTo
Evento o Mtodo
Click
SetlFocus
LostFocus
Refresh
Init

Revista Compus

Uso
Variable a que hace referencia (campo donde se almacena el
valor de la lista)
Tabla o query de los elementos de la lista
Tipo de la fuente (si es tabla o query)
Si el control es visible al usuario
Si el control esta habilitado o no
Valor que retorna la lisa (nmero de la columna de Rowsource)
Especifica si el valor de la lista esta determinado por los valores
o por la propiedad ListIndex
Uso
Se dispara al dar clic en el objeto
El cursor se va al objeto
Cuando el control pierde el enfoque
Refresca el objeto
Se dispara a la hora que se se inicializa el objeto

Cuadrcula:
Un control que crea una cuadrcula y que le permite presentar los datos en un formato
tabular. Los controles de tipo cuadrcula contienen encabezados de columna, columnas y
controles de columna.
Propiedades
RecordSource
Visible
Enabled
ColumnCount
DeleteMark

Uso
Nombre de la tabla
Si el control es viisible al usuario
Si el control esta habilitado o no
Nmero de columnas del Gris
Permite registro para borrar (Aparece en la parte izquierda del
Gris

Evento o Mtodo
Click
SetlFocus
LostFocus
Refresh
Init

Uso
Se dispara al dar clic en el objeto
El cursor se va al objeto
Cuando el control pierde el enfoque
Refresca el objeto
Se dispara a la hora que se inicializa el objeto

Imgenes, controles OLE, timer, Marcos de pgina


Un control que le permite incluir imgenes en un formulario.
Hipervinculo con cualquier tipo de aplicacin.
Un control Timer puede ejecutar cdigo a intervalos peridicos produciendo un evento
Timer.
Un marco de pgina es un objeto contenedor que contiene pginas. A su vez, las pginas
contienen controles. Las propiedades pueden establecerse a nivel de marco de pgina, de
pgina o de control.
Uso de Clases

Prof. Jos de La Rosa

Pgina 27

Guis del Usuario


Prcticas FoxPro

Revista Compus

Los diseadores ActiveX pueden proporcionar interfaces visuales para tareas que, de otro
modo, requeriran una gran cantidad de cdigo. Por ejemplo, el diseador UserConnection
incluido en la Edicin Empresarial de Visual Basic proporciona herramientas visuales para
definir consultas de bases de datos complejas. En tiempo de ejecucin, dichas consultas se
pueden invocar con muy poco cdigo.
Similitudes entre los diseadores ActiveX y los diseadores integrados
Los diseadores ActiveX son como los diseadores de formularios en los siguientes
aspectos:

Los diseadores ActiveX producen clases a partir de las cuales puede crear

objetos. Estas clases aparecen en la ventana Proyecto, igual que las clases de
formulario.

Las clases creadas con un diseador ActiveX tienen sus propios mdulos de

cdigo, en los que puede escribir cdigo para los procedimientos de evento
proporcionados por el diseador.

Puede personalizar una clase si agrega propiedades, mtodos y eventos a los

proporcionados por el diseador ActiveX.

Los objetos creados a partir de las clases diseadas pueden tener

caractersticas diferentes en tiempo de diseo y en tiempo de ejecucin.

La ventana de diseo del diseador ActiveX est totalmente integrada en el

entorno de desarrollo. Puede modificar su tamao y configurarla de la misma forma


que las ventanas de diseo incorporadas.

Puede agregar al proyecto tantas instancias de un diseador ActiveX como

considere necesario, de la misma forma que puede agregar tantos diseadores de


formularios como quiera.

Prof. Jos de La Rosa

Pgina 28

Guis del Usuario


Prcticas FoxPro

Prof. Jos de La Rosa

Revista Compus

Pgina 29

Guis del Usuario


Prcticas FoxPro

Revista Compus

PRACTICAS VISUAL FOXPRO


PRACTICA BASE DE DATOS:
Realizar las siguientes tablas para la base de datos Pizzera:

Para llevar a cabo la Prctica Realiza los Siguientes pasos:


1. Crea un nuevo Proyecto con el nombre Pizza
2. en el administrador de proyectos en la Ficha Datos, Selecciona la opcin
Databases, y despus la opcin Nuevo, para crear la base de datos con el nombre
Pizzera.
3. En el diseador de Base de datos da un clic en la opcin Nueva tabla. y haz lo sig;

En la Ficha
ndices,
selecciona
Clave_pizza
como principal.

4. Guarda esta tabla con el nombre de Pizza

Prof. Jos de La Rosa

Pgina 30

Guis del Usuario


Prcticas FoxPro

Revista Compus

5. Ahora debers crear otra tabla nueva con los siguientes campos.

En la Ficha
ndices, selecciona
Clave_tamao
como principal

6. Guarda esta tabla con el nombre de tamaos.


7. Ahora debers crear una tercera tabla con los datos siguientes:

8. Guarda esta tabla con el nombre de Venta.


9. por ultimo debers crear otra tabla como sigue:

10. Esta tabla la guardas con el nombre factura

Prof. Jos de La Rosa

Pgina 31

Guis del Usuario


Prcticas FoxPro

Revista Compus

11. Crea las relaciones entre las tablas de tal form que te queden de la siguiente
manera:

12. Ahora debemos introducir los datos a las tablas, comenzaremos por la tabla Pizza
y la llenaremos como sigue:
Clave_Pizza
an
pe
ha
sa

Nombre
Anchoas
Peperoni
Hawaiana
salami

13. seguimos con la tabla Tamao


Clave_tamao
ch
me
gr

Tamao
Chica
Mediana
Grande

14. Y Continuamos con la tabla Venta


Clave_Pizza
an
an
an
pe
pe
pe
ha
ha
ha
sa
sa
sa

Clave_Tamao
ch
me
gr
ch
me
gr
ch
me
gr
ch
me
gr

Precio
$ 20.00
$ 25.00
$ 30.00
$ 60.00
$ 65.00
$ 80.00
$ 55.00
$ 60.00
$ 68.00
$ 63.00
$ 87.00
$ 98.00

15. ahora crearemos una tabla a partir de una consulta, en la ventana explorador de
proyectos en la pestaa datos selecciona consulta y despus nuevo
16. Visual Fox te preguntara que tablas quieres agregar para la realizacin de tu
consulta, para eso tu debes agregar las siguientes tablas: Tamaa, Venta y Pizza.
Prof. Jos de La Rosa

Pgina 32

Guis del Usuario


Prcticas FoxPro

Revista Compus

17. Una vez con las tablas agregadas, en la ventana diseador de consultas en la ficha
campos, debemos escoger cuales son los campos que nosotros queremos que nos
muestre la consulta, pues bien vamos a seleccionar los siguientes: Pizza.nombre,
tamao.tamao, Venta.Precio, por ultimo agregaremos una expresin como
campo para esto en la misma ventana busca la opcin funciones y expresiones y
aparecer la ventana siguiente:

18. Cuando esta ventana aparezca lo primero que debemos de hacer es seleccionar de
la parte funciones Cadena, la opcin texto, Luego en la parte de abajo donde
dice Desde tabla Selecciona la tabla Pizza, en el cuadro campos aparecern los
campos de la tabla pizza de ese cuadro da doble clic al campo clave_pizza, una
vez esto hecho en el cuadro expresin deber de aparecer el siguiente texto:
Pizza.cleve.pizza, una ves con esto ve otra vez a la lista Cadena y ahora
selecciona el smbolo +, el smbolo aparecer dentro de las comillas, salte de las
comillas y pon un guion(-), la expresin deber quedar: Pizza.cleve.pizza+-,
ahora con lo que ya vimos has que la expresin final quede de la siguiente forma,
recuerda que para sacar los campo de Tamao primero debes seleccionar la tabla
tamao de Desde tabla.

Prof. Jos de La Rosa

Pgina 33

Guis del Usuario


Prcticas FoxPro

Revista Compus

19. Una vez que tengas la Expresin da un clic al botn aceptar y despus un clic en
Agregar. Te deber quedar como en la pantalla siguiente:

20. Realizar consultas diferentes para la base de datos:


PRACTICAS CON PROGRAMACIN:
Objetivos
Luego de completar este laboratorio, el estudiante ser capaz de:
Identificar los elementos del entorno integrado de
FoxPro 6.0.

Prof. Jos de La Rosa

desarrollo de Microsoft Visual

Pgina 34

Guis del Usuario


Prcticas FoxPro

Revista Compus

Implementar soluciones mediante programacin clsica.


Declarar y asignar valores tanto a las variables de memoria como a los arreglos.
Analizar como es el flujo de control de un programa.
Crear funciones y procedimientos definidos por el usuario.

Consideraciones
Para el desarrollo del presente laboratorio Ud. deber crear una carpeta
D:\P_VFP\PROGRAMA, para guardar sus trabajos correspondientes a este laboratorio.
Aplicacin N 1
En este primer ejercicio vamos a escribir un programa que lea tres nmeros enteros
y determine el nmero mayor, el nmero central y el nmero menor. Debemos asumir que
los tres nmeros son siempre distintos.
Para el desarrollo de la presente aplicacin ingresar a Microsoft Visual FoxPro. En
la Ventana de Comandos digite la siguiente orden:
Modify Command Aplicacion01
A continuacin se debe presentar el Editor de programas. En dicha ventana proceda
a ingresar el cdigo que se indica:
Close All
Clear
Input Ingrese el valor de A? To nA
Input Ingrese el valor de B? To nB
Input Ingrese el valor de C? To nC
If nA > nB Then
nMay = nA
nMen = nB
Else
nMay = nB
nMen = nA
EndIf
If nC > nMay Then
nCen = nMay
nMay = nC
Else
If nC > nMen Then
nCen = nC
Else
nCen = nMen
nMen = nC
EndIf
EndIf
? Mayor = + Str(nMay)
? Central = + Str(nCen)
? Menor = + Str(nMen)

Prof. Jos de La Rosa

Pgina 35

Guis del Usuario


Prcticas FoxPro

Revista Compus

Para ejecutar su programa dar click en el botn Ejecutar


herramientas Estndar, o realizar la combinacin Ctrl. + E

( ! ) de la Barra de

Para volver a ejecutar su programa digitar la siguiente orden desde la Ventana de


Comandos:
Do Aplicaion01
Aplicacin N 2
Un restaurante ofrece un descuento del 10% para consumos entre S/. 30.00 y S/.
50.00; un descuento del 20% para consumos mayores a S/. 50.00 nuevos soles; para todos
los dems casos no se aplica ningn tipo de descuento. El ejercicio consiste en elaborar una
programa que permita determinar el importe a pagar por el consumidor.
Para el desarrollo de la presente aplicacin abrir una nueva ventana de edicin e
ingresar el siguiente cdigo:
Close All
Clear
Do While .T.
Input Consumo S/. To nConsumo
If Type (nConsumo) = N
Exit
EndIf
EndDo
Do Case
Case nConsumo >= 30 And nConsumo <= 50
nImporte = nConsumo * 0.9
Case nConsumo > 50
nImporte = nConsumo * 0.8
Otherwise
nImporte = nConsumo
EndCase
? Importe a pagar S/. + Str(nImporte)
Aplicacin N 3
El ejercicio consiste en escribir un programa que lea n enteros y calcule la suma
total, la media aritmtica, el mximo y el mnimo de los datos.
Para el desarrollo de la presente aplicacin, de manera anloga que para los casos
anteriores abrir una nueva ventana de edicin e ingresar el siguiente cdigo:
Close All
Clear
Input Ingrese cantidad de nmeros? To nN
Declare aVector(nN)
For nI = 1 To nN
Input Nmero [ + Str(nI) + ]? To aVector(nI)
Next
nMax = aVector[1]

Prof. Jos de La Rosa

Pgina 36

Guis del Usuario


Prcticas FoxPro

Revista Compus

nMin = aVector[1]
nSuma = 0
For nI = 1 To nN
nSuma = nSuma + aVector[nI]
If aVector[nI] > nMax Then
nMax = aVector[nI]
EndIf
If aVector[nI] < nMin Then
nMin = aVector[nI]
EndIf
Next
nMedia = nSuma / nN
? Suma = + Str(nSuma)
? Media = + Str(nMedia, 10, 2)
? Mximo= + Str(nMax)
? Mnimo= + Str(nMin)
Aplicacin N 4
A continuacin vamos a escribir una funcin que reciba como argumento de entrada
una cadena de caracteres y la devuelva en forma inversa, por ejemplo si se ingresa la
cadena CORAZON deber retornar NOZAROC.
Para el desarrollo de esta aplicacin proceda de manera similar a los casos
anteriores e ingresar el cdigo que se muestra:
Close All
Clear
Accept Ingrese una cadena? To cCadena
? Cadena invertida = + CadInv(cCadena)
Function CadInv
Parameters cCadena
nN = Len(Alltrim(cCadena))
Declare cTemporal(nN)
For nI = 1 To nN
cTemporal(nI) = SubStr(cCadena, nI, 1)
Next
cInvertida =
For nJ = nN To 1 Step -1
cInvertida = cInvertida + cTemporal(nJ)
Next J
Return cInvertida
PRACTICAS CON FORMULARIOS
Objetivos
Luego de completar este laboratorio, el estudiante ser capaz de:
Implementar soluciones mediante programacin orientada a objetos.
Manejar las diferentes propiedades y eventos del formulario.
Aadir controles a un formulario.
Prof. Jos de La Rosa

Pgina 37

Guis del Usuario


Prcticas FoxPro

Revista Compus

Establecer las propiedades de los controles.


Trabajar con procedimientos de eventos.
Consideraciones
Para el desarrollo del presente laboratorio Ud. deber crear una carpeta
D:\P_VFP\FORMULARIO, para guardar sus trabajos correspondientes a este laboratorio.
Aplicacin N 1
Este ejercicio consiste en elaborar un formulario que permita leer un nmero entero
y visualice su tabla de multiplicar. Para construir la tabla de multiplicar vamos a utilizar un
control cuadro de edicin, el cual tiene propiedades similares a un cuadro de texto, pero
permite escribir texto en lneas diferentes.

Para el desarrollo de esta aplicacin, proceda a ubicar los siguientes controles en el


formulario:
1 etiqueta
1 caja de texto
1 cuadro de edicin
1 botn de comandos
En seguida proceda a establecer las propiedades segn se indica:
Form1
Name
Caption
MaxButton
MinButton

FrmTabla
Tabla de multiplicar
.F.-Falso
.F.-Falso

Name
Caption

LblNumero
Ingrese un nmero:

Label1

Prof. Jos de La Rosa

Pgina 38

Guis del Usuario


Prcticas FoxPro

Revista Compus

Text1
Name
Alignment

TxtNumero
2-Centro

Name
ScrollBars

EdtTabla
2-Vertical

Edit1

Command1
Name
Caption
Default

CmdLimpiar
\<Limpiar
.T.-Verdadero

Una vez diseada la interfaz, proceda a ingresar el cdigo que se indica a


continuacin:
Objeto: TxtNumero

Procedimiento: InteractiveChange

nN = Val(Thisform.TxtNumero.Value)
cS =
For nI = 0 To 12
nP = nN * nI
cS = cS + Str(nN) + * + Str(nI) + = + Str(nP) ;
+ Chr(13)
Next
Thisform.EdtTabla.Value = cS
Thisform.Refresh
Objeto: CmdLimpiar

Procedimiento: Click

Thisform.TxtNumero.Value =
Thisform.EdtTabla.Value =
Thisform.Refresh
Aplicacin N 2
Este ejercicio consiste en elaborar una aplicacin que permita cambiar el aspecto de
una caja de texto. El usuario debe elegir el tipo de fuente a utilizar, el estilo, el color y el
tamao. El diseo de la interfaz debe ser similar a:

Prof. Jos de La Rosa

Pgina 39

Guis del Usuario


Prcticas FoxPro

Revista Compus

Para el desarrollo de esta aplicacin, proceda a ubicar los siguientes controles en el


formulario:
5 etiquetas
1 caja de texto
1 cuadro combinado
1 lista
3 casillas de verificacin
1 grupo de botones de opcin
1 botn de comando
En seguida proceda a establecer las propiedades segn se indica:
Form1
Name
AutoCenter
Caption
MaxButton
MinButton

FrmEditor
.T.-Verdadero
Editor
.F.-Falso
.F.-Falso

Name
Caption

LblTexto
Texto

Name
Caption

LblFuente
Fuente

Name
Caption

LblTamao
Tamao

Name
Caption

LblEstilo
Estilo

Name

LblColor

Label1

Label2

Label3

Label4

Label5

Prof. Jos de La Rosa

Pgina 40

Guis del Usuario


Prcticas FoxPro

Caption
Combo1
Name

Revista Compus

Color
CboFuente

List1
Name

LstTamao

Name
ForeColor

TxtTexto
255, 0, 0

Name
Caption
FontBold

ChkNegrita
Negrita
.T.-Verdadero

Name
Caption
FontItalic

ChkCursiva
Cursiva
.T.-Verdadero

Name
Caption
FontUnderline

ChkSubrayado
Subrayado
.T.-Verdadero

Text1

Check1

Check2

Check3

OptionGroup1
ButtonCount

Option1
Name
ForeColor

OptRojo
255, 0, 0

Option2
Name
ForeColor

OptVerde
0, 255, 0

Option3
Name
ForeColor

OptAzul
0, 0, 255

Command1
Name
Caption
Default

CmdSalir
\<Salir
.T.-Verdadero

Prof. Jos de La Rosa

Pgina 41

Guis del Usuario


Prcticas FoxPro

Revista Compus

Una vez establecidas las propiedades de la interfaz, proceda a ingresar el cdigo


que se muestra a continuacin:
Objeto: FrmEditor

Procedimiento: Init

Thisform.CboFuente.AddItem(Arial)
Thisform.CboFuente.AddItem(Arial Black)
Thisform.CboFuente.AddItem(Courier New)
Thisform.CboFuente.AddItem(Garamond)
Thisform.CboFuente.AddItem(Impact)
Thisform.CboFuente.AddItem(MS Sans Serif)
Thisform.CboFuente.AddItem(Technical)
Thisform.CboFuente.AddItem(Times New Roman)
For nI = 8 To 20 Step 2
Thisform.LstTamao.AddItem(Alltrim(Str(nI)))
Next
Objeto: FrmEditor

Procedimiento: QueryUnload

#DEFINE vfpYesNo 4
#DEFINE vfpYes
6
#DEFINE vfpQuestion
32
If MessageBox(Desea terminar la aplicacin?, ;
vfpQuestion + vfpYesNo, Pregunta) = vfpYes Then
Release Thisform
Else
NoDefault
EndIf
Objeto: CboFuente

Procedimiento: Click

Thisform.TxtTexto.FontName = Thisform.CboFuente.Value
Thisform.Refresh
Objeto: LstTamao

Procedimiento: Click

nTamao = Val(Thisform.LstTamao.Value)
Thisform.TxtTexto.FontSize = nTamao
Thisform.Refresh
Objeto: ChkNegrita

Procedimiento: Click

If Thisform.ChkNegrita.Value = 1 Then
Thisform.TxtTexto.FontBold = .T.
Else
Thisform.TxtTexto.FontBold = .F.
EndIf
Thisform.Refresh
Objeto: ChkCursiva

Procedimiento: Click

Prof. Jos de La Rosa

Pgina 42

Guis del Usuario


Prcticas FoxPro

Revista Compus

If Thisform.ChkCursiva.Value = 1 Then
Thisform.TxtTexto.FontItalic = .T.
Else
Thisform.TxtTexto.FontItalic = .F.
EndIf
Thisform.Refresh
Objeto: ChkSubrayado

Procedimiento: Click

If Thisform.ChkSubrayado.Value = 1 Then
Thisform.TxtTexto.FontUnderline = .T.
Else
Thisform.TxtTexto.FontUnderline = .F.
EndIf
Thisform.Refresh
Objeto: OptRojo

Procedimiento: Click

Thisform.TxtTexto.ForeColor = RGB(255, 0, 0)
Thisform.Refresh
Objeto: OptVerde

Procedimiento: Click

Thisform.TxtTexto.ForeColor = RGB(0, 255, 0)


Thisform.Refresh
Objeto: OptAzul

Procedimiento: Click

Thisform.TxtTexto.ForeColor = RGB(0, 0, 255)


Thisform.Refresh
Objeto: CmdSalir

Procedimiento: Click

Thisform.QueryUnload
Bases de Datos con formulario:
Movimiento entre registros:
Realizar la siguiente base de datos denominada COMPAA, y relacionar las tablas:

Prof. Jos de La Rosa

Pgina 43

Guis del Usuario


Prcticas FoxPro

Revista Compus

Crear el siguiente formulario:

A todas las cajas de texto asigne la propiedad ENABLED = .f.


Oculte los Botones, Guardar y Guardar Cambios, con la propiedad VISIBLE=.f.
Codigo para los Botonos:
Boton Primero
Go top
Thisform.refresh

Procedimiento:Click

Boton Anterior
If .Not. bof () then
Skip -1
Else
Go bottom
EndIf
Thisform.refresh

Procedimiento:Click

Boton Siguiente
If .Not. eof() then
Skip +1
Else
Go Top
EndIf
Thisform.refresh

Procedimiento:Click

Boton Primero
Go Bottom
Thisform.refresh

Procedimiento:Click

Boton Salir
Release Thisform

Prof. Jos de La Rosa

Procedimiento:Click

Pgina 44

Guis del Usuario


Prcticas FoxPro

Revista Compus

Boton Eliminar
Procedimiento:Click
Mensaje= MESSAGEBOX(Desea eliminar el Registro,4+32+256,Eliminar)
Do Case
Case mensaje=6
Delete
Pack
Go Top
Thisform.refresh
Case mensaje=7
Thisform.refresh
EndCase
Boton Agregar
Procedimiento:Click
*Habilite todas las cajas de texto con la propiedad Enabled y muestre el boton Guardar con
*la propiedad Visible Ejm:
*Thisform.txtcod_empleado.enabled=.t.
*Thisform.cguardar.visible=.t.
Go Bottom
Thisform.refresh
Append blank
Thisform.refresh
Boton Guardar
Procedimiento:Click
Mensaje= MESSAGEBOX(Desea Guardar el Registro,4+32+256,Guardar)
Do Case
Case mensaje=6
Thisform.refresh
Case mensaje=7
Delete
Pack
EndCase
*Desabilite todas las cajas de texto con la propiedad Enabled y oculte el Botn Guardar
*con la propiedad Visible Ejm:
*Thisform.txtcod_empleado.enabled=.f.
*Thisform.cguardar.visible=.f.
Thisform.refresh
Boton Editar
Procedimiento:Click
*Habilite todas las cajas de texto con la propiedad Enabled y muestre el boton Guardar
*Cambios con la propiedad Visible Ejm:
*Thisform.txtcod_empleado.enabled=.t.
*Thisform.cguardar.cambios.visible=.t.
Mensaje= MESSAGEBOX(Desea Guardar el Registro,4+32+256,Guardar)
Do Case
Case mensaje=6
Thisform.refresh
Case mensaje=7

Prof. Jos de La Rosa

Pgina 45

Guis del Usuario


Prcticas FoxPro

Revista Compus

Delete
Pack
EndCase
Thisform.refresh
Boton Guardar Camhios
Procedimiento:Click
*Desabilite todas las cajas de texto con la propiedad Enabled y oculte el Botn Guardar
*Cambios con la propiedad Visible Ejm:
*Thisform.txtcod_empleado.enabled=.f.
*Thisform.cguardarcambios.visible=.f.
Thisform.refresh
Laboratorio N 02
Realizaremos el siguiente formulario de Facturacin, para ello las indicaciones se
encuentran en la parte inferior:

Carguemos Visual FoxPro


1. Para simular una Entidad vamos a crear las siguientes tablas en la Base de Datos
Ventas, a las tablas Artculos y Clientes ingresar algunos registros.
Articulo.dbf
Artcod
ArtDet
ArtPre
ArtStk
GuiaEnc.DBF
Nguia
ClieCod
IGV
Total

Prof. Jos de La Rosa

C
C
N
N
C
C
N
N

3
40
10
4
6
3
7
10

Clientes.DBF
ClieCod
ClieNom
3
ClieRuc

2
2

Guiadet.DBF
Nguia
C
ArtCod
C
ArtDet
C
PreUni
N
Cant
N
SubTotal
N

C
C
C

6
3
40
7
5
10

3
40
8

2
2

Pgina 46

Guis del Usuario


Prcticas FoxPro

Revista Compus

Temporal.DBF
Nguia
C
6
ArtCod
C
3
ArtDet
C
40
PreUni
N
7
2
Cant
N
5
SubTotal
N
10
2
Nota: Indexar la tabla GuiaEnc, campo Nguia con etiqueta Nguia
2. Creamos Nuevo formulario luego insertamos los objetos que se muestran en el
grafico inferior.

3. Para el Entorno de Datos asignamos las cinco tablas creadas anteriormente


4. En tiempo de Diseo
Modificamos las propiedades de los objetos segn la tabla siguiente:

Objeto:

Propiedad

ControlSource
Name
Combo1 Row SourceType
Row Source
Style
Value

Text2

Alignment
DisableBackColor
DisableForeColor
Enabled
Name
FontName

Prof. Jos de La Rosa

Valor
Clientes.Clienom
CmbCliente
Campos
Clientes.Clienom
2. Lista desplegable
1

Objeto:
Text1

2. Centro
A Criterio del Usuario
A Criterio del Usuario

FALSO
TxtTotal
A Criterio del Usuario

Grid1

Propiedad
Alignment
DisableBackColor
DisableForeColor
Enabled
Name
FontName
Column Count
Deleted mark
Name
RecordSource
BackColor
GridLineColor

Valor
2. Centro
A Criterio del Usuario
A Criterio del Usuario

FALSO
txtNguia
A Criterio del Usuario

4
.F. Falso
grdDetalle

Temporal
A Criterio del Usuario
Azul

Pgina 47

Guis del Usuario


Prcticas FoxPro

Revista Compus

Antes de continuar con ms cambios, vamos a insertar objetos Combo y Spinner en la


columna1 y columna2 del Grid respectivamente, para ello prepare el control de
Formularios luego:
Seleccione el objeto: Grid
Presione sobre ella :
Botn Derecho
Seleccione
:
Modificar
Hacemos Click en
:
Combo
Luego Click sobre ab debajo de:
Header1 de la primera columna del grid
Hacemos Click en
:
Spinner
Luego Click sobre ab debajo de:
Header1 de la Segunda columna del grid
Salimos de edicin haciendo Click fuera del Grid
Presionamos Botn derecho sobre el Grid
Propiedades
Hacemos Clic en: grdDetalle
Seleccionamos :
Column1
Current Control
Clic en
Text1
seleccionamos
Combo1
Similar debe hacerlo para Spinner de la Segunda Columna
Continuamos cambiando el valor de las propiedades de los siguientes objetos:

Objeto:

Propiedad

ControlSource
Column1 CurrentControl
Name
ControlSource
Column2 CurrentControl
Name

Header1

Header2

Alignment
Caption
FontBold
Alignment
Caption
FontBold

ControlSource
Name
Combo1 RowSourceType
RowSource
Style
Value

Prof. Jos de La Rosa

Valor
Temporal.Artdet
Combo1

Objeto:
Column3

ColDescripcion

Temporal.Artdet
Spinner1

Column2

ColDescripcion

2. Medio Centro
Descripcion

Header3

.T. Verdadero

2. Medio Centro
Cantidad

Header4

.T. Verdadero

Temporal.ArtDet
CmbDescripcion
6. Campos
Articulo.ArtDet
2. Lista Desplegable
1

Spinner1

Propiedad
ControlSource
Name
ReadOnly
ControlSource
Name
ReadOnly

Valor
Temporal.Artpre
ColPreUni
.T. Verdadero

Temporal.SubTotal
ColSubTotal
.T. Verdadero

Alignment
Caption
FontBold
Alignment
Caption
FontBold

2. Medio Centro
Precio

ControlSource
KeyboardHighValue
KeyboardLowValue
Name
Style
SpinnerHighValue
SpinnerLowValue
Value

Temporal.Cant

.T. Verdadero

2. Medio Centro
SubTotal
.T. Verdadero

99
1
SpnCantidad
2. Lista Desplegable

99
1
1

Pgina 48

Guis del Usuario


Prcticas FoxPro

Revista Compus

Ms propiedades
Nota: Caption de Labels ver el Grafico

Objeto:

Propiedad

Command1 Caption
Name

Command2 Caption
Name

Valor

Objeto: Propiedad

\<Nuevo
cmdNuevo

Command3 Caption

\<Agregar

Command4 Caption

Name
Name

cmdAgregar

Command2 Caption

\<Agregar

Text1
Name
Diseo en tiempo de Ejecucin:

txtNguia

Command4 Caption
Text2

Name

Valor
\<Guardar
cmdGuardar
\<Salir
cmdSalir

\<Salir
txtSubTotal

Digitaremos los siguientes cdigos, segn como se indican a continuacin


Objeto: Formulario Principal (Form1)
Public srec
set multilock on
set talk off
set safety off
set exclusive on

Evento Init

SELECT GUIAENC
= cursorsetprop("buffering",3)
set order to tag Nguia
go bottom
thisform.txtnguia.value = right("00000"+alltrim(str(val(nguia)+1)),6)
append blank
replace nguia with thisform.txtnguia.value
Select temporal
dele all
set dele on
append blank
replace nguia with thisform.txtnguia.value
srec=recno()
thisform.grdDetalle.refresh
thisform.txttotal.value=0
Evento Destroy
SELECT GUIAENC =Tablerevert (.t.)
SELECT TEMPORAL
Objeto: Cmbdescripcion
Evento: Click
If len(allt(thisform.grddetalle.coldescripcion.cmbdescripcion.value))>0
thisform.grddetalle.colcantidad.spncantidad.setfocus
else
thisform.grddetalle.coldescripcion.cmbdescripcion.setfocus
endif
thisform.refresh

Prof. Jos de La Rosa

Pgina 49

Guis del Usuario


Prcticas FoxPro

Revista Compus

Evento: Interactivechange
SELECT temporal
go srec
replace artcod with articulo.artcod
replace preuni with articulo.artpre
replace subtotal with thisform.grddetalle.colcantidad.spncantidad.value*preuni
sum subtotal to ntotal
go srec
thisform.txttotal.value=ntotal
thisform.grddetalle.colcantidad.spncantidad.value=1
thisform.refresh
Evento: LostFocus
if len(allt(thisform.grddetalle.coldescripcion.cmbdescripcion.value))>0
thisform.grddetalle.colcantidad.spncantidad.setfocus
else
thisform.grddetalle.coldescripcion.cmbdescripcion.setfocus
endif
thisform.refresh
Objeto: spnCantidad
Evento: InteractiveChange
select temporal
replace subtot with thisform.grddetalle.colcantidad.spncantidad.value*preuni
nrec=recno()
sum subtotal to ntotal
go nrec
thisform.txttotal.value=ntotal
thisform.refresh
Evento: LostFocus
thisform.grddetalle.coldescripcion.cmbdescripcion.setfocus
Objeto: cmbCliente
Evento: Click
SELECT GUIAENC
replace cliecod with cliente.cliecod
thisform.grddetalle.coldescripcion.cmbdescripcion.setfocus
THISFORM.REFRESH
Objeto: cmdAgregar
Evento: Click
public srec
SELECT TEMPORAL
if len(allt(artdet))>0
append blank
srec=recno()
thisform.grddetalle.colcantidad.spncantidad.value=1
endif
replace nguia with thisform.txtnguia.value
thisform.grddetalle.coldescripcion.cmbdescripcion.setfocus
thisform.refresh

Prof. Jos de La Rosa

Pgina 50

Guis del Usuario


Prcticas FoxPro

Revista Compus

Objeto: cmdNuevo
Public srec
select temporal
dele all
set dele on
append blank
replace nguia with thisform.txtnguia.value
srec=recno()
thisform.grddetalle.refresh
thisform.txttotal.value=0
thisform.refresh

Evento: Click

Objeto: cmdGuardar
SELECT GUIAENC
replace igv with thisform.txttotal.value*0.18
replace total with thisform.txttotal.value
=tableupdate(.t.)

Evento: Click

SELECT TEMPORAL
Scan
insert into guiadet(nguia,artcod,artdet,preuni,cant,subtotal);
values(temporal.nguia,temporal.artcod,temporal.artdet,;
temporal.preuni,temporal.cant,temporal.subtotal)
EndScan
SELECT GUIAENC
set order to tag Nguia
go bottom
thisform.txtnguia.value=right("00000"+alltrim(str(val(nguia)+1)),6)
Objeto: cmdSalir
SELECT GUIAENC
=tablerevert(.t.)
SELECT TEMPORAL
release thisform

Evento: Click

Guardar y Probar la Ejecucin.


Realizar los cambios respectivos, hasta presentar similar al presente modelo.

Queda para el usuario hacer los ltimos toques, para que resulte un buen diseo.

Prof. Jos de La Rosa

Pgina 51

Anda mungkin juga menyukai