Vous êtes sur la page 1sur 78

MANUAL DE VISUAL FOXPRO 8.

INSTRUCTORES:
ELVIS MOISS MARTNEZ
JESS CASTILLO
2009

Manual de Visual Fox 8 - 2009

CONTENIDO
Pgina

INTRODUCCIN .......................................................................................................................................................................................... 3
CAPTULO 1: BASES DE DATOS .................................................................................................................................................................. 4
COMANDOS A UTILIZAR ....................................................................................................................................................................... 5
TIPOS DE LLAVES EN VISUAL FOX ......................................................................................................................................................... 8
TIPOS DE CAMPOS EN VISUAL FOX (LOS MS UTILIZADOS) ............................................................................................................. 9
PRCTICA 1: CREAR TABLAS .......................................................................................................................................................... 9
PRCTICA 2: CREAR UN PROYECTO Y UNA BASE DE DATOS .................................................................................................. 13
PRCTICA 3: BROWSE ................................................................................................................................................................... 18
CREACIN DE PROGRAMAS Y BSQUEDA DE DATOS. ................................................................................................................. 19
PRCTICA 4: SCAN PARTE 1 ..................................................................................................................................................... 21
PRCTICA 5: SCAN PARTE 2 ..................................................................................................................................................... 21
TAREA: CAPTULO 1 ............................................................................................................................................................................. 21
CAPTULO 2: CONSULTAS SQL ................................................................................................................................................................. 22
PRCTICA 6: SQL PARTE 1.......................................................................................................................................................... 24
PRCTICA 7: SQL PARTE 2.......................................................................................................................................................... 24
TAREA: CAPTULO 2 ............................................................................................................................................................................. 27
CAPTULO 3: FORMULARIOS .................................................................................................................................................................... 28
FORMULARIO (FORM) (FRM) ........................................................................................................................................................... 29
PRCTICA 8: FORM ....................................................................................................................................................................... 30
ETIQUETA (LABEL) (LBL)..................................................................................................................................................................... 32
PRCTICA 9: LABEL ........................................................................................................................................................................ 32
CUADRO DE TEXTO (TEXT BOX) (TXT).............................................................................................................................................. 33
PRCTICA 10: TEXTBOX ................................................................................................................................................................. 34
BOTN DE COMANDO (COMMAND BUTTON) (CMD) ............................................................................................................... 36
PRCTICA 11: COMMANDBUTTON ............................................................................................................................................. 36
BOTONES DE OPCIN (OPTION GROUP o OPTIONBUTTON) (OPT) ........................................................................................... 39
CRONMETRO (TIMER) (TMR)......................................................................................................................................................... 39
PRCTICA 12: CALCULADORA .................................................................................................................................................... 39
MESSAGEBOX....................................................................................................................................................................................... 41
PRCTICA 13: POTENCIACIN .................................................................................................................................................... 42
PRCTICA 14: DESPLAZAMIENTO HORIZONTAL (FRMHORIZONTAL) ....................................................................................... 42
PRCTICA 15: DESPLAZAMIENTO VERTICAL (FRMVERTICAL) ................................................................................................... 43
PRCTICA 16: RELOJ (FRMRELOJ) ............................................................................................................................................... 43
TAREA: CAPTULO 3 ............................................................................................................................................................................. 43
CAPTULO 4: PROGRAMACIN .............................................................................................................................................................. 44
IF...ENDIF ............................................................................................................................................................................................... 44
FOR...ENDFOR ...................................................................................................................................................................................... 45
PRCTICA 17: P17.PRG ................................................................................................................................................................. 45
PRCTICA 18: FRMSEPARAR ......................................................................................................................................................... 46
PRCTICA 19: BSQUEDA POR CDIGO (FRMBUSQUEDA) .................................................................................................... 46
CAPTULO 5: MANTENIMIENTO SIMPLE ................................................................................................................................................... 48
PRCTICA 20: MANTENIMIENTO SIMPLE (FRMPRODUCTO) ..................................................................................................... 48
PRCTICA 21: FRMPAIS ................................................................................................................................................................. 53
PRCTICA 22: FRMMATERIA ......................................................................................................................................................... 53
PRCTICA 23: FRMAUTOR ............................................................................................................................................................ 53
TAREA: CAPTULO 5 ............................................................................................................................................................................. 53
CAPTULO 6: CONSULTAS Y REPORTES ................................................................................................................................................... 54
CONSULTAS .......................................................................................................................................................................................... 54
PRCTICA 24: CONSULTA ESTTICA ........................................................................................................................................... 55
PRCTICA 25: FRM_CONSULTA_PAIS (CONSULTA ESTTICA) .................................................................................................. 57
PRCTICA 26: FRM_CONSULTA_AUTOR (CONSULTA ESTTICA) ............................................................................................. 57
PRCTICA 27: FRM_CONSULTA_MATERIA (CONSULTA ESTTICA) .......................................................................................... 57
PRCTICA 28: CONSULTA ESTTICA CON SQL .......................................................................................................................... 57
PRCTICA 29: CONSULTA DINMICA CON SQL ....................................................................................................................... 58
PRCTICA 30: SQL_DINAMICA_LIBROS....................................................................................................................................... 60
REPORTES .............................................................................................................................................................................................. 60
PRCTICA 31: REPORTES ............................................................................................................................................................... 62
PRCTICA 32: RPTMATERIA .......................................................................................................................................................... 67
PRCTICA 33: RPTPAIS .................................................................................................................................................................. 67
PRCTICA 34: RPTAUTOR .............................................................................................................................................................. 67
TAREA: CAPTULO 6 ............................................................................................................................................................................. 67
CAPTULO 7: MANTENIMIENTO AVANZADO .......................................................................................................................................... 68
PRCTICA 35: FRMLIBRO .............................................................................................................................................................. 68

Pgina 2 de 78

Manual de Visual Fox 8 - 2009

INTRODUCCIN
En este manual damos a conocer al estudiante el lenguaje de
programacin Visual Fox Pro

8.0. Se pretende familiarizar al

alumno con el entorno de desarrollo de aplicaciones para base de


datos.
Visual Fox Pro es un gestor de base de datos, orientado a la
programacin de objetos. Este 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.
Nos enfocaremos en cuatro reas principales:
Base de datos: Trata sobre el diseo, creacin y manipulacin de
tablas libres o tablas con integridad referencial (base de datos)
Formularios: Aplicaremos conocimientos para la integracin de una
interfaz con el usuario y base de datos.
Informes: Aprenderemos a disear las salidas de los sistemas de
informacin, haciendo uso de las herramientas que el programa
ofrece.
SQL: En esta seccin haremos uso del lenguaje SQL para manipular
datos, creando as diferentes consultas o vistas.
En

este

manual

mostraremos

lo

bsico

pero

tambin

puedes

consultar algn libro de Visual FoxPro, en las bibliotecas o en


las libreras, pues todo ser para tu desarrollo.

Pgina 3 de 78

Manual de Visual Fox 8 - 2009

CAPTULO 1: BASES DE DATOS


OBJETIVOS:
El estudiante estar en la capacidad de:
Configurar el ambiente de trabajo de Visual Fox.
Emplear

los

comandos

bsicos

para

la

elaboracin

manipulacin de la informacin en tablas de Visual Fox.


CONTENIDO:
Tabla: es un conjunto de datos almacenados en campos y registros,
es decir que la tabla esta conformada por estos dos elementos.
As, por ejemplo:

Para ingresar a Visual FoxPro tienes que presionar el botn de


inicio

todos

los

programas

Microsoft

Visual

FoxPro

8.0

(versin Windows XP).


Inicio / programas / Microsoft Visual FoxPro 8.0 (versin Windows
estndar).
Cuando cargue Visual Fox notaras que existe una pequea ventana
llamada: VENTANA DE COMANDO (CTRL + F2) donde escribirs todos
los instrucciones o comandos a utilizar. Observa la siguiente
imagen:

Escritorio de Visual FoxPro: Es todo el espacio en blanco que


aparece atrs de la ventana de comandos.

Pgina 4 de 78

Manual de Visual Fox 8 - 2009

La siguiente instruccin siempre deber de establecer para evitar


la perdida de archivos.
SET DEFAULT TO A: Establece el

dispositivo

y el directorio

predeterminado.
Por ejemplo si los archivos que se van a utilizar se encuentran
en el directorio C:\programas\transmisin\datos, escribiremos el
comando SET de la siguiente forma:
SET DEFAULT TO C:\programas\transmisin\datos
Con lo cual cada vez que se guarde o abra un archivo siempre lo
har del directorio predeterminado que acabamos de establecer.
COMANDOS A UTILIZAR
COMANDO

CONCEPTO

EJEMPLO

Create

Crea un nueva tabla

Create

Use

Cierra la tabla activa

Use

Use TABLA

Abre la tabla

Use Empleado

Use TABLA in NUMERO

Abre

la

tabla

en

un

rea

Use sexo in 1

especificada por un nmero.


Select NUMERO

Cambia

de

rea

al

nmero

Select 1

especificado
Append

Agrega

registros

una

tabla

Append

activa
Browse

Visualiza

los

registros

tabla activa

Pgina 5 de 78

de

la

Brow

Manual de Visual Fox 8 - 2009


Browse For CONDICION

Visualiza

los

registros

de

la

Browse For id_suc=1

tabla activa mientras cumpla con


la condicin
Browse

Fields

CAMPOS

for CONDICION

Visualiza
indicados

solo
en

la

los

campos

Browse

fields

ape_emp,

tabla

activa

nom_emp For id_suc=1

mientras cumpla la condicin


Zap

Borra todos los registros de la

Zap

tabla
Delete

Marca

el

registro

actual

para

Delete

ser borrado en la tabla activa


Delete Record NUMERO

Marca

el

nmero

de

registro

Delete Record 2

especificado para ser borrado de


la tabla activa
Pack

Borra los registros marcados

Pack

Recall

Quita

Recall

la

marca

de

eliminacin

del registro actual de la tabla


activa
Recall Record NUMERO

Quita
del

la

marca

de

eliminacin

de

registro

nmero

Recall record 2

especificado en la tabla activa


Modify Structure

Modifica

la

estructura

de

la

Modify structure

tabla activa
Close all

Cierra todo lo que esta adentro

Close all

de Fox
Quit

Cierra Visual Fox

Quit

Clear

Limpia el escritorio de Fox

Clear

? CAMPO/VARIABLE

Permite visualizar el valor de

? ape_emp, nom_emp

un campo de la tabla activa o el


valor que contiene una variable
Go Top

Mueve el puntero hacia el primer

Go Top

registro
Go Bottom

Mueve el puntero hacia el ltimo

Go Bottom

registro
Go NUMERO

Mueve

el

puntero

hacia

el

Go 2

posicin

Skip

registro indicado en el nmero


Skip

Mueve
hacia

el

puntero
adelante

una

(Prximo

Pgina 6 de 78

Manual de Visual Fox 8 - 2009


registro)
Skip NUMERO

Mueve

el

puntero

un

NUMERO

Skip 2

determinado de posiciones hacia


delante
Skip -NUMERO

Mueve el puntero hacia atrs el

Skip -1

nmero de registros indicados


Date()

Obtiene y muestra la fecha del

? DATE()

BIOS de la computadora
Time()

Obtiene y muestra la hora del

? TIME()

BIOS de la computadora
var=LEN (VAR/OBJETO)

Cuenta el nmero de caracteres

X = LEN (nom_emp)

que posee una variable u objeto


Set

Abre una ventana que indica las


tablas

que

se

Set

encuentran

abiertas
Set Date BRIT

Configura

el

formato

de

fecha

Set date Brit

del tipo Da/Mes/Ao


Set SAFETY OFF

Desactiva

los

mensajes

de

Set Safety Off

advertencia de Fox
Create Project

Crea un nuevo proyecto

Create Project

Create Database

Crea una nueva base de datos

Create Database

Modify Project

Permite

Visualizar

Modificar

Modify Project

modificar

Modify database

un Proyecto
Modify database

Permite

Visualizar

una base de datos


Public VARIABLE

Permite crear una variable del

Public estado

tipo Pblica (Puede ser ocupada


y

reconocida

desde

cualquier

parte de Fox)
VARIABLE=

Permite

declarar

designando

que

una

variable,

guardar

Nombre=

datos

del tipo carcter (Texto)


VARIABLE=0

Permite

declarar

designando

que

una

variable,

guardar

Estado=0

datos

del tipo Entero.


VARIABLE=0.00

Permite

declarar

designando

que

una

variable,

guardar

Pgina 7 de 78

datos

Precio=0.00

Manual de Visual Fox 8 - 2009


del tipo Flotante (Enteros con 2
decimales)
Modify Command

Permite crear un nuevo programa

Modify command

de Fox
Modify

Command

Abre el programa indicado para

PROGRAMA

su posterior modificacin

Do PROGRAMA

Ejecuta un programa

Alltrim(OBJETO/CAMPO)

Elimina

el

Modify Command Eva


Do Eva

espacio

que

se

Nom=alltrim(nom_emp)

encuentra al inicio y el final


de una cadena de texto que esta
adentro de un Objeto o un campo
Upper(VARIABLE/CAMPO

Transforma una cadena de texto a

/OBJETO)

Mayscula,

que

se

X=Upper(nom_emp)

encuentra

adentro de una variable, campo u


objeto
CTOD(FECHA_C)

Transforma una fecha en formato

Fec=CTOD(02/02/2006)

de Texto 02/02/2006 a formato


Fecha {02/02/2006}
DTOC(FECHA_D)

Transforma una fecha en formato

Fec=DTOC({02/02/2006})

de Fecha {02/02/2006} a formato


Texto 02/02/2006
Empty(OBJETO)

Verifica

si

un

objeto

se

Empty(THISFORM.TXT.VALUE)

encuentra vaco.

TIPOS DE LLAVES EN VISUAL FOX


TIPO
Primary

CONCEPTO
Llave

Primaria

(no

SIMBOLOGA

permite

duplicados:

es

LADO

PK

UNO

CK o PK

UNO

FK

MUCHOS

ocupada en tablas relacionadas a una base de


datos)
Candidate

Llave Candidato, con caractersticas de una


primaria, para enlaces de 1 a 1 (no permite
duplicados: es ocupada para tablas libres)

Regular

Llave

Fornea,

permite

tantos

duplicados

como sea necesario.

Pgina 8 de 78

Manual de Visual Fox 8 - 2009

TIPOS DE CAMPOS EN VISUAL FOX (LOS MS UTILIZADOS)


TIPO

CONCEPTO

Character

Acepta letras, nmeros y smbolos

Numeric

Acepta nmeros enteros y flotantes

Date

Acepta Fechas

PRCTICA 1: CREAR TABLAS


Vamos

crear

registros,

unas

modificar

tablas,
la

agregar,

estructura

de

modificar
una

tabla.

visualizar
Realiza

lo

siguiente en la ventana de comandos:


1. Digita en la ventana de Comandos: Create, luego ENTER.
2. De la ventana que te aparece digita: EMPLEADO, que ser el
nombre de la tabla a crear.
3. Luego un ENTER.
4. Observa la siguiente imagen:

5. Notaras que existen 3 Pestaas (FIELDS, INDEXES Y TABLE) en la


parte superior de la Ventana.
6. En la Pestaa de FIELDS agregaremos los campos que poseer la
Pgina 9 de 78

Manual de Visual Fox 8 - 2009

tabla.
7. En el espacio de NAME (Nombre del Campo) escribe: id_emp
8. El tipo (TYPE) ser NUMERIC.
9. El ancho (WIDTH) ser de 10.
10.

Luego en la Fila de abajo, sobre el mismo NAME escribe:

nom_emp
11.

El tipo CHARACTER, con ancho de 50.

12.

Luego otro campo llamado: ape_emp

13.

El tipo CHARACTER, con ancho de 50.

14.

Luego otro campo llamado: sueldo

15.

El tipo NUMERIC, con ancho 10 y con DECIMAL de 2.

16.

Luego otro campo llamado: id_suc

17.

El tipo NUMERIC, con ancho de 10.

18.

Con esto ya tenemos 5 campos, falta colocarle las Llaves.

19.

Clic en la Pestaa de INDEXES.

20.

Donde dice NAME solo se puede escribir el nombre del campo

llave.
21.

Entonces escribe: id_emp

22.

Del tipo CANDIDATE, con la EXPRESSION: id_emp

23.

Luego adicionamos otro campo llamado llave: id_suc

24.

Del tipo REGULAR, con la EXPRESSION: id_suc

25.

Con esto ya creamos una tabla con sus respectivas llaves,

solamente falta que hagas clic en OK.


26.

EN

ESTE

MOMENTO

HACEMOS

UNA

PAUSA

PARA

QUE

VERIFIQUE QUE NINGN ALUMNO TENGA ALGN PROBLEMA.


27.

Crea las siguientes tablas:

TABLA:

PRODUCTO

NAME

TYPE

WIDTH DECIMAL

LLAVE

id_prod

Numeric

10

CANDIDATE

nom_prod

Character

50

pre_uni

Numeric

10

existencia

Numeric

10

Pgina 10 de 78

EL

DOCENTE

Manual de Visual Fox 8 - 2009


TABLA:

SUCURSAL

NAME

TYPE

WIDTH

LLAVE

id_suc

Numeric

10

CANDIDATE

nom_suc

Character

50

direccion

Character

100

NAME

TYPE

WIDTH

LLAVE

id_ped

Numeric

10

CANDIDATE

id_emp

Numeric

10

REGULAR

id_prod

Numeric

10

REGULAR

cantidad

Numeric

10

TABLA:

PEDIDO

28.

Luego de crear las tablas, procederemos a Agregar registros.

29.

Para eso, primero en la ventana de comandos debemos de Abrir

la tabla a la cual agregaremos registros.


30.

Digita: USE EMPLEADO, Enter.

31.

Luego digita: BROWSE, Enter.

32.

Debe aparecer una ventana con

forma de cuadrcula, para

poder adicionar registros presiona una vez: CTRL + Y (Luego


podras

adicionar

un

registro,

vuelve

presionarla

para

agregar otros registro, as sucesivamente)


33.

Los registros a adicionar son: (Despus de cada campo ENTER)

Id_emp
1
2
3
4
5

34.

EMPLEADO
nom_emp
ape_emp
Juan
Carlos
Emilio
Carmen
Elizabeth

Gonzlez
Arias
Montalvn
Rodrguez
Hernndez

sueldo

id_suc

5000
2000
1800
7000
6000

1
3
2
2
1

Luego para agregar registros a la tabla Producto, primero

hay que cerrar la tabla empleado.


35.

Digita USE

36.

Luego abrir Producto: USE PRODUCTO

37.

Siempre BROW y CTRL + Y para agregar los registros:

Pgina 11 de 78

Manual de Visual Fox 8 - 2009


PRODUCTO
id_prod nom_prod pre_uni existencia
1
2
3
4

Mouse
Case
Ups
Teclado

38.

20
30
15
180

Digita los registros en las tablas respectivas:

Id_ped
1
2
3
4
5
6
7

1
2
3

PEDIDO
id_emp id_prod
5
4
4
4
3
3
1

Id_suc

39.

5
25
35
10

cantidad

1
2
2
3
1
4
4

10
5
2
2
3
5
10

SUCURSAL
nom_suc
Norte
Sur
Centro

direccion
Soyapango
Ciudad Delgado
San Salvador

Luego de terminar de digitar la informacin de SUCURSAL,

digita lo siguiente: SET


40.

Notaras

que

te

aparece

una

pequea

ventana,

que

esta

dividida en dos partes, la del lado izquierdo es donde se


visualiza las tablas abiertas. Si observas la que esta abierta
es: SUCURSAL
41.

Luego presiona la tecla ESC, para salir de la ventana

42.

Digita MODI STRU, con esta instruccin se muestra la ventana

para poder modificar algn aspecto de los campos, por ejemplo:


modificar el WIDTH del campo DIRECCION, colocndole en vez de
100, el nmero 50.
43.

Luego clic en OK.

44.

Te pregunta si quieres guardar los cambios, le das clic en

YES (OK).
45.

Cerremos la tabla, digitando: USE

46.

Digita: SET

47.

Ya no deberan existir tablas abiertas.

FIN DE LA PRCTICA 1

Pgina 12 de 78

Manual de Visual Fox 8 - 2009

PRCTICA 2: CREAR UN PROYECTO Y UNA BASE DE DATOS


1. Para crear un Proyecto debes digitar lo siguiente: CREATE
PROJECT.
2. De la ventana que te aparece, digita el nombre con se
guardar el nuevo proyecto, para este caso: PFOX
3. Te debe aparecer la siguiente ventana:

4. Haz Clic en la Pestaa de DATA.


5. Notars que aparece sombreada la opcin: DATABASE, segn se
observa en la siguiente imagen:

6. Luego Clic en NEW.


7. Te debe aparecer la siguiente ventana:
Pgina 13 de 78

Manual de Visual Fox 8 - 2009

8. Luego Clic en el Botn de la Derecha: NEW DATABASE.


9. Preguntar el nombre de la Nueva Base de Datos, que ser:
BDFOX
10. Luego Clic en GUARDAR.
11. Notaras que te aparece una ventana con fondo de color gris,
y Barra de Diseo de Base de Datos. (Si no te aparece dicha
barra debes hacer Clic en VIEW de la Barra de Men, Clic en
ToolBars, luego clic para marcar la casilla de DataBase
Designer, finalmente clic en OK)
ADD TABLE

12. A continuacin vamos a agregar las tablas que ya creamos en


la prctica 1. Para eso damos clic en: ADD TABLE, de la
Barra de Diseo de Base de Datos.
13. Con ello nos aparece una Ventana, en la cual nos permitira
seleccionar la tabla que deseamos adicionar a la Base de
Datos, hacemos Clic en: Empleado.
14. Clic en OK.
15. Luego repetimos los pasos 12 al 14, para adicionar las
otras 3 tablas pendientes (Producto, Pedido y Sucursal).
16. Luego de agregadas las 4 tablas debes de estirar cada una

Pgina 14 de 78

Manual de Visual Fox 8 - 2009

de ellas, de manera tal que se pueda visualizar todos los


campos y llaves que contienen cada una de ellas.

17. Luego

notaras

que

al

final

de

cada

tablas

Existe

una

palabra: INDEXES, que indica que a partir de ah hacia


abajo estn las llaves.
18. Las llaves que estn resaltadas en Negrita, son las llaves
primarias.
19. Vamos a establecer las relaciones, para ello debes hacer
Clic

en:

ID_EMP

(El

que

esta

en

Negrita)

de

la

tabla

EMPLEADO, y sin dicho Clic arrstralo hasta el ID_EMP de la


Tabla PEDIDO, exactamente el que esta en el rea de llaves
(INDEXES).

Observa

la

siguiente

imagen,

para

tomar

referencia:

20. Donde la Cruz del ID_EMP de la Tabla Empleado es el lado

Pgina 15 de 78

Manual de Visual Fox 8 - 2009

UNO (Primaria), y las tres lneas del ID_EMP de la Tabla


Pedido es el lado MUCHOS (Fornea).
21. Luego busquemos otra llave Primaria. El ID_PROD de la tabla
Producto hay que arrastrarlo hasta el ID_PROD de la tabla
Pedido.

22. Luego arrastra el ID_SUC de la tabla Sucursal al ID_SUC de


la tabla Empleado.

23. Luego Cerramos la Base de Datos (Clic en la X de Cerrar)


24. Notaras que el Proyecto aparece una Cruz a lado izquierdo
de DataBase.
25. Clic en dicho smbolo de +, para poder desplegar la Base de
Datos de BDFOX adicionada al Proyecto.
26. Tambin aparece ese mismo smbolo + al lado izquierdo de
BDFOX, das clic ah, para que te despliegue la opcin de
TABLES.

Pgina 16 de 78

Manual de Visual Fox 8 - 2009

27. Clic en el smbolo de +, a la izquierda de TABLES, para


desplegar las tablas adicionadas a la Base de Datos. Al
final qued as:

28. Cierra el Proyecto (Clic en la X de Cerrar).


29. Para abrir de Nuevo el Proyecto, digita en la ventana de
comandos lo siguiente: MODIFY PROJECT y ENTER.
30. De la ventana que te aparece Clic en PFOX.
31. Clic en OPEN.
32. Se abrir el Proyecto.
33. Luego cierra el Proyecto.
34. Si lo que deseas es abrir solo la Base de Datos, digita en
la ventana de comandos lo siguiente: MODIFY DATABASE y
ENTER.
35. Clic en BDFOX.
36. Clic en OPEN.
37. Y aparece la Base de Datos.
FIN DE LA PRCTICA 2

Al momento de programar tambin necesitar los operadores de Fox:

Pgina 17 de 78

Manual de Visual Fox 8 - 2009

< Menor que


> Mayor que
= Igual que
<> Diferente de
<= Menor o Igual que
>= Mayor o Igual que
==

Doble

Igual

que

(Se

ocupa

para

comparaciones

exactas

con

textos)
PRCTICA 3: BROWSE
Para esta prctica ocuparemos la instruccin BROW, para poder
visualizar lo que a continuacin se nos solicita:
a. Mostrar los Apellidos, Nombres y Sueldos de los Empleados con
un Sueldo mayor o igual a 2000.
Solucin:
USE EMPLEADO
BROWSE FIELDS ape_emp, nom_emp, sueldo FOR sueldo>=2000
USE

b. Mostrar los Apellidos, Nombres y Sueldos de los Empleados de


la Sucursal 1.
c. Mostrar los Nombres y Precios unitarios de los Productos que
su precio unitario sea menor que 20.
d. Mostrar los Nombres, Precios Unitarios y Existencia de los
Productos cuya Existencia sea mayor que 25.
e. Mostrar todos los cdigos de Pedidos y cantidad pedida, cuya
cantidad sea mayor de 5.
f.

Mostrar el cdigo del Empleado que realizo los pedidos de CPU.

g. Mostrar todos los cdigos de Pedidos excepto de la Empleada


Elizabeth Hernndez.
Anotar aqu la solucin a cada literal: OCUPANDO BROW
b. _______________________________________________________

Pgina 18 de 78

Manual de Visual Fox 8 - 2009

_______________________________________________________
_______________________________________________________
c. _______________________________________________________
_______________________________________________________
_______________________________________________________
d. _______________________________________________________
_______________________________________________________
_______________________________________________________
e. _______________________________________________________
_______________________________________________________
_______________________________________________________
f. _______________________________________________________
_______________________________________________________
_______________________________________________________
g. _______________________________________________________
_______________________________________________________
_______________________________________________________
FIN DE LA PRCTICA 3
CREACIN DE PROGRAMAS Y BSQUEDA DE DATOS.
SCAN...ENDSCAN: Mueve el puntero por toda la tabla activa.
Usualmente ocupado para buscar de registro en registro de la
tabla

abierta.

Ejemplo:

Mostrar

todos

los

Empleados.
USE EMPLEADO
GO TOP
SCAN
? Sueldo
ENDSCAN
USE
bien mostrar solo los sueldos de la sucursal 1.
Pgina 19 de 78

sueldos

de

los

Manual de Visual Fox 8 - 2009

USE EMPLEADO
GO TOP
SCAN FOR id_suc=1
? Sueldo
ENDSCAN
USE
Se le coloca el GO TOP para indicar que debe iniciar la bsqueda
en el primer registro.
Ejemplo: deseo mostrar todos Apellidos y Nombres de los empleados
de la sucursal 1:
USE EMPLEADO
GO TOP
SCAN FOR id_suc=1
? ape_emp, nom_emp
ENDSCAN
USE

Todo este cdigo visto debe ser digitado en una parte especial ya
que no funcionara eficientemente en la Ventana de Comandos. Para
ello se crea un programa con el Comando: MODIFY COMMAND y luego
enter en la ventana de comandos, al digitar el cdigo se habr
creado el primer programa, para poderlo ejecutar puede hacerlo de
diversas maneras:
Dando

clic

en

la

Barra

Estndar

el

Icono

de

un

Signo

de

Admiracin en Rojo.
Presionando las teclas Ctrl + E.
De ambas maneras le preguntar si desea guardar el programa,
responder que S para poder ver los resultados del programa. Ya
guardado el programa se puede ejecutar de la siguiente manera:
DO NOMBRE_PROGRAMA

Pgina 20 de 78

Manual de Visual Fox 8 - 2009

PRCTICA

4: SCAN PARTE 1

Tomando como base los literales de la Prctica 3 disear los


programas

guardarlos

con

el

MODI

COMM.

No

ocupar

BROW,

adaptarlos para ocupar el SCAN y ?. Anota en tu cuaderno el


literal y la solucin (programa con SCAN). Cada programa ser
guardado como: P4a, P4b, P4c, P4d y as sucesivamente. NOTA: AL
INICIO

DE

CADA

PROGRAMA

COLOCAR

LA

INSTRUCCIN

CLEAR,

PARA

LIMPIAR EL ESCRITORIO DE FOX.


FIN DE LA PRCTICA 4
PRCTICA

5: SCAN PARTE 2

Disear los siguientes programas ocupando SCAN. (Dejar constancia


en tu cuaderno)
a. Buscar el sueldo y apellido de los empleados mientras este sea
mayor o igual $3000.
b. Marcar para eliminacin a todos los empleados de la Sucursal
Centro.
Cada programa ser guardado como: P5a y P5b respectivamente.
FIN DE LA PRCTICA 5
TAREA: CAPTULO 1
Investigar

la

estructura,

funcionamiento

siguiente comando: REPLACE Y UPDATE

Pgina 21 de 78

un

ejemplo

del

Manual de Visual Fox 8 - 2009

CAPTULO 2: CONSULTAS SQL


OBJETIVOS:
El estudiante estar en la capacidad de:
Utilizar los comandos bsicos de SQL.
Crear consultas sencillas y estructuradas con la ayuda de
comandos SQL.
CONTENIDOS:
Por medio de cdigo SQL se puede buscar o extraer informacin de
una o varias tablas sin necesidad de abrirlas ya que FOX se
encarga de Abrirlas.
Sintaxis:
SELECT

<campo1>

as

<tabla_principal>

Alias,
INNER

<campo2>
JOIN

as

Alias...

FROM

<tabla_secundaria>

ON

<tabla_principal>.<campo_llave_comun>=<tabla_secundaria>.<campo_llave_c
omun> WHERE <condicin> GROUP BY <campo> ORDER BY <campo1> ASC/DESC

Con

esta

estructura

bsica

se

puede

empezar

buscar

cierta

informacin en las tablas creadas.


Ejemplo 1: Crear una Consulta SQL mostrando todos los campos de
la Tabla Empleado.
SELECT * FROM empleado
Ejemplo 2: Crear una Consulta SQL mostrando todos los campos de
la Tabla Empleado mientras pertenezca a la Sucursal 1.
SELECT * FROM empleado WHERE id_suc=1
Ejemplo 3: Crear una Consulta SQL mostrando el Nombre y Apellido
de los Empleados mientras pertenezcan a la Sucursal 1
SELECT nom_emp, ape_emp FROM empleado WHERE id_suc=1

Pgina 22 de 78

Manual de Visual Fox 8 - 2009

Ejemplo 4: Crear una Consulta SQL mostrando el Nombre y Apellido


de

los

Empleados

mientras

pertenezca

la

Sucursal

1.

Colocndoles una Alias a cada Campo. (Un alas es un nombre


momentneo que se le coloca a una columna).
SELECT nom_emp as Nombre, ape_emp as Apellido FROM empleado
WHERE id_suc=1
Ejemplo 5: Crear una Consulta SQL mostrando el Nombre y Apellido
de

los

Empleados

mientras

pertenezca

la

Sucursal

1.

Colocndoles una Alias a cada Campo, as como tambin ordenarlos


por el Apellido de Forma Ascendente.
SELECT nom_emp as Nombre, ape_emp as Apellido FROM empleado
WHERE id_suc=1 ORDER BY ape_emp ASC
Ejemplo 6: Crear una Consulta SQL mostrando el Nombre y Apellido
de

los

Empleados

mientras

pertenezca

la

Sucursal

1.

Colocndoles una Alias a cada Campo, as como tambin ordenarlos


por el Apellido de Forma Descendente.
SELECT nom_emp as Nombre, ape_emp as Apellido FROM empleado
WHERE id_suc=1 ORDER BY ape_emp DESC
Ejemplo 7: La siguiente consulta unir dos tablas. Por medio de
INNER

JOIN

uniremos

la

segunda

tabla

(tabla

secundaria).

La

instruccin ON nos servir para indicar por medio de que campo


llave coinciden y se pueden unir.
Crear una Consulta SQL mostrando el Nombre y Apellido de los
Empleados, as como tambin el nombre de la Sucursal de cada
Empleado mientras pertenezcan a la Sucursal 1. Colocndoles una
Alias a cada Campo, as como tambin ordenarlos por el Apellido
de Forma Descendente.

Pgina 23 de 78

Manual de Visual Fox 8 - 2009

SELECT nom_emp as Nombre, ape_emp as Apellido, nom_suc as


Sucursal FROM Empleado INNER JOIN Sucursal ON empleado.id_suc =
Sucursal.id_suc WHERE Empleado.id_suc = 1 ORDER BY nom_emp DESC
Para

ocupar

el

GROUP

BY

en

el

FOX

se

debe

digitar

esta

instruccin antes: SET ENGINEBEHAVIOR 70


Ejemplo 8:
Crear una consulta SQL que muestre todos los cdigos de Pedido,
nombre del Producto, Apellido del Empleado y cantidad Pedida.
Cada campo con un alas. Ordenado de manera ascendente por el
cdigo de Pedido.
SELECT id_ped as "Cdigo", nom_prod as "Producto", ape_emp as
"Empleado",

cantidad

as

"Cantidad"

FROM

Pedido

INNER

JOIN

Producto ON Pedido.id_prod=Producto.id_prod INNER JOIN Empleado


ON Pedido.id_emp=Empleado.id_emp ORDER BY id_ped ASC
PRCTICA 6: SQL PARTE 1
Crear las Consultas SQL necesarias para los enunciados de la
Prctica

3. Guardar en MODI COMM, las consultas como: P6a, P6b,

P6c y as sucesivamente. Anota en tu cuaderno.


FIN DE LA PRCTICA 6
PRCTICA 7: SQL PARTE 2
Crear las siguientes consultas SQL tomando como base las nuevas
tablas que debes crear.
Donde:
PK: PRIMARIA O CANDIDATA
FK: FORANEA

Pgina 24 de 78

Manual de Visual Fox 8 - 2009

TABLA: PAIS
NAME

TYPE

WIDTH

id_pais

Numeric

10

nom_pais

Character

50

NAME

TYPE

WIDTH

id_autor

Numeric

10

nom_autor

Character

50

id_pais

DECIMAL

LLAVE
PK

PAIS
Nom_pais

1
2
3
4

El Salvador
Guatemala
Honduras
Nicaragua

TABLA: AUTOR
DECIMAL

LLAVE
PK

AUTOR
id_autor nom_autor
1
2
3
4

Carlos
Miguel
Jorge
Luis

TABLA: MATERIA
NAME
id_mat
nom_mat

TYPE
Numeric
Character

WIDTH
10
50

DECIMAL

LLAVE
PK

TYPE
Numeric
Character
Numeric
Numeric
Numeric
Numeric

WIDTH
10
50
10
10
10
10

DECIMAL

LLAVE
PK

MATERIA
id_mat
nom_mat
1
2
3
4

Fsica
Matemtica
Computacin
Seminario

TABLA: LIBRO
NAME
id_lib
nom_lib
id_edit
id_autor
id_pais
id_mat

Pgina 25 de 78

FK
FK
FK
FK

Manual de Visual Fox 8 - 2009

Id_lib

nom_lib

1
2
3
4

Diccionario
Matemtica 1
Matemtica 2
Fsica

LIBRO
id_edit
id_autor
1
1
1
3

2
3
3
1

id_pais

id_mat

1
2
3
4

4
2
2
1

TABLA: EDITORIAL
NAME
id_edit
nom_edit
direccion
telefono
id_edit
1
2
3
4

TYPE
Numeric
Character
Character
Character

WIDTH
10
50
100
9

EDITORIAL
nom_edit
direccion

Telefono

Ocano
Intel
McGraw Hill
Cosmos

2256-5656
2234-5689
2123-4567
2258-3691

Soyapango
Sonsonate
San Miguel
Apulo

DECIMAL

LLAVE
PK

TODAS LAS CONSULTAS QUEDAR GUARDADAS CON MODI COMM.


a. Mostrar todos los campos de Pas.
b. Mostrar todos los campos de Pas con un alas cada campo.
c. Mostrar todos los campos de Autores con un alas.
d. Mostrar todos los campos de la Tabla Libro.
e. Mostrar todos los campos de la Tabla Libro mientras el cdigo
de Pas sea igual a 2.
f. Mostrar todos los campos de la Tabla Libro mientras el cdigo
de Materia sea igual a 2.
g. Mostrar el Nombre de cada libro as como tambin el nombre de
cada pas.
h. Mostrar el Nombre de cada libro as como tambin el nombre de
cada pas con su respectivo alas.
i. Mostrar el Nombre de cada libro as como tambin el nombre de
cada pas. Mientras la Editorial sea Ocano.
j. Mostrar el Nombre de cada libro as como tambin el nombre de
cada pas. Mientras la Editorial sea Ocano. Adems ordenar
por Nombre de Pas.

Pgina 26 de 78

Manual de Visual Fox 8 - 2009

k. Mostrar

el

Nombre

de

libro,

nombre

de

pas,

nombre

de

Nombre

de

libro,

Nombre

de

pas,

nombre

de

Nombre

de

pas,

nombre

de

Editorial.
l. Mostrar

el

Editorial, Nombre de Materia.


m. Mostrar

el

Nombre

de

libro,

Editorial, Nombre de Materia y Nombre de Autor.


CADA CONSULTA DEBE SER GUARDADA EN UN PROGRAMA (MODI COMM) Y
ADEMS DE ANOTAR EN TU CUADERNO EL LITERAL Y LA SOLUCIN SQL.
CADA

PROGRAMA

SE

GUARDAR

COMO:

P7a,

P7b,

P7c

AS

SUCESIVAMENTE.
FIN DE LA PRCTICA 7
TAREA: CAPTULO 2
Investigar

el

funcionamiento,

diferencias

siguientes cuando se disea una consulta SQL:


Left Join
Right Join
Full Join

Pgina 27 de 78

estructuras

Manual de Visual Fox 8 - 2009

CAPTULO 3: FORMULARIOS
OBJETIVOS:
El estudiante estar en la capacidad de:
Identificar los tipos de objetos y sus caractersticas
particulares.
Manipular las Propiedades de los objetos y del formulario
para relacionarlos con tablas.
CONTENIDO:
Un formulario es un contenedor de objetos, el cual puede manejar
o manipular objetos que puedan extraer informacin de cualquier
tabla e incluso informacin directa del usuario.
Todos los objetos poseen

Propiedades, Eventos y Mtodos.

Las

Propiedades son las caractersticas fsicas de los objetos, como


por ejemplo el tamao, color, forma, entre otros. Los Eventos son
las circunstancias que le suceden a los objetos como por ejemplo:
cuando el usuario haga clic sobre l, o cuando pasan el cursor
sobre

el

objeto,

entre

otros.

Los

Mtodos

son

aquellas

circunstancias que el programa o usuario obliga que sucedan,


ejemplo: ocultar algn objeto, hacerlo visible, deshabilitarlo,
entre otros.
Para poder crear un formulario puede digitar lo siguiente en la
ventana de comandos:
CREATE FORM
Con

lo

cual

aparecer

lo

siguiente:
La

Barra

que

aparece

al

lado

Derecho es la Barra de Controles o


de Objetos, de la cual se da clic
sobre el objeto deseado y luego se
dibuja un rectngulo en el Formulario (Parte Gris) y
aparecer dicho objeto.
Tambin aparece el cuadro de Propiedades. En la cual se configura

Pgina 28 de 78

Manual de Visual Fox 8 - 2009

las caractersticas de cada objeto. Para modificar un formulario


ya existente ocupa: MODI FORM ?
EJECUTAR UN FORMULARIO: DO FORM <NOMBRE>
FORMULARIO (FORM) (FRM)
INSTRUCCIN
AlwaysOnTop

TIPO
PROPIEDAD

EXPLICACIN
Permite

que

ningn

otro

formulario

pueda

estar sobre l
AutoCenter

PROPIEDAD

Especifica

que

un

formulario

aparezca

al

centro de la pantalla
Backcolor

PROPIEDAD

Especifica

el

color

de

fondo

de

un

los

tipos

de

Bordes

de

un

formulario
BorderStyle

PROPIEDAD

Determina
formulario

Caption

PROPIEDAD

Ttulo en la parte superior izquierda de un


formulario

Closable

PROPIEDAD

Permite

el

cerrar

un

formulario

con

dar

doble clic en el icono de un formulario o


deshabilitar el botn cerrar
ControlBox

PROPIEDAD

Especifica

que

si

en

tiempo

de

ejecucin

aparecen las cajas de control y el icono


Enabled

PROPIEDAD

Habilita o deshabilita un formulario

Icon

PROPIEDAD

Permite establecer un icono al formulario

MaxButton

PROPIEDAD

Especifica si un formulario tiene un botn


de maximizar

MinButton

PROPIEDAD

Especifica si un formulario tiene un botn


de minimizar

Picture

PROPIEDAD

Permite colocar una imagen de fondo

Visible

PROPIEDAD

Hace Visible o Invisible un formulario

WindowState

PROPIEDAD

Establece el estado inicial de un formulario


(Normal, Minimizado o Maximizado)

Name

PROPIEDAD

Establece el nombre de un objeto

Load

EVENTO

Evento que lee el contenido de un Formulario


antes de Iniciar. (Se activa antes del Init)
Se cargan variables y tablas

Init

EVENTO

Evento

de

Inicio

Pgina 29 de 78

de

un

Formulario.

(Se

Manual de Visual Fox 8 - 2009


pueden ocupar objetos)
Destroy

EVENTO

Evento

de

cierre

del

Formulario.

(Ocurre

antes del Unload). Se cierran las tablas


Unload

EVENTO

Evento de descarga de memoria de todos los


elementos

de

un

formulario.

(Se

activa

despus del Destroy)

La propiedad Name es la primera que debe de cambiar o configurar


antes

de

empezar

programar.

Ya

que

indica

como

deben

de

llamarse los objetos.


Para los Formularios su nombre debe empezar con el Prefijo FRM y
luego para que lo va a ocupar.
Un ejemplo sera si desea ocuparlo para almacenar los libros
existentes se llamar as: FRM_LIBROS, el guin bajo es opcional,
pero si lo obvia debe de ir as: FRMLIBROS.
Para ejecutar el formulario presione las teclas CTRL + E. O Bien
digitar DO FORM FRM_LIBROS. Deber guardar siempre los cambios
hechos al formulario para poder ejecutarlos.
Existen muchas propiedades coincidentes con otros objetos, as
que esta dems el volverlas a explicar y solo se detallarn las
que hagan la diferencia.
PRCTICA 8: FORM
1. Iniciar Visual Fox (En el caso que no lo este)
2. Digite en la ventana de comandos: SET DEFAULT TO A:
3. Luego digite siempre en la ventana de comandos: CREATE FORM
4. Debe aparecer un Formulario en Blanco.
5. Vamos a configurar algunas de sus Propiedades. Para ello
debe estar visible la Barra de Propiedades. En el caso que
no se pueda visualizar, de Clic derecho sobre el Formulario
(rea gris) y del Men Contextual que aparece haga Clic en
PROPERTIES.
6. Clic en la Pestaa: OTHER.
7. Clic en la Propiedad NAME.
8. Luego Digita lo siguiente: FRMPRACTICA8
Pgina 30 de 78

Manual de Visual Fox 8 - 2009

9. Luego presiona la tecla ENTER.


10.Con ello ya establecimos el nombre del Formulario.
11.Luego Clic en la pestaa: LAYOUT.
12.Doble Clic en la propiedad AUTOCENTER, para que esta se
quede en: .T. TRUE
13.Doble Clic en la propiedad BACKCOLOR, luego elija un color
a su gusto.
14.Clic en la propiedad CAPTION.
15.Luego digitar: Formulario de la Prctica 8
16.Luego ENTER.
17.Doble clic en la propiedad: MAXBUTTON, para que esta se
quede en: .F. FALSE
18.Doble clic en la propiedad: MOVABLE, para que esta se quede
en: .F. FALSE
19.Clic en la propiedad: HEIGHT.
20.Digitar ah: 100
21.Luego ENTER.
22.Clic en la propiedad: WIDTH.
23.Digitar ah: 275
24.Luego ENTER.
25.Luego vamos a guardar el formulario, presiona la siguiente
combinacin de teclas: CTRL + S
26.Te aparece una ventana, donde debes digitar el nombre con
que

se

guardar

el

formulario,

para

este

caso

digita:

FRMPRACTICA8
27.Luego clic en GUARDAR.
28.Para ejecutar o probar el funcionamiento del formulario,
presiona la siguiente combinacin de teclas: CTRL + E
29.Notaras que el formulario aparece centrado, no se puede
mover, ni maximizar.
30.Cierra el Formulario (NO CIERRES VISUAL FOX)
FIN DE LA PRCTICA 8

Pgina 31 de 78

Manual de Visual Fox 8 - 2009

ETIQUETA (LABEL) (LBL)


La

etiqueta

es

ocupada

para

colocar

informacin

adentro

del

formulario o bien pedir informacin. Su prefijo es LBL.


INSTRUCCIN

TIPO

EXPLICACIN

Alignment

PROPIEDAD

Determina el alineado del mensaje

AutoSize

PROPIEDAD

Especifica que si la etiqueta se adapta al


mensaje del objeto

FontName

PROPIEDAD

Tipo de letra

FontSize

PROPIEDAD

Tamao de la letra

FontStrikeThru

PROPIEDAD

Letra tachada

FontBold

PROPIEDAD

Letra en Negrita

FontItalic

PROPIEDAD

Letra cursiva

FontUnderline

PROPIEDAD

Letra Subrayada

Clic

EVENTO

Evento que se acciona al dar clic sobre el


Objeto Label

DblClick

EVENTO

Evento que ocurre cuando el usuario da doble


clic sobre el Label

PRCTICA 9: LABEL
1.

Abre el Formulario de la Prctica 8 (En el caso que no se


encuentre

abierto

solo

debes

digitar

en

la

ventana

de

comandos: MODI FORM ?, luego abrir el Formulario que se


desea ocupar.
2.

Debe estar cargada la Barra de Objetos (Si no lo esta: Clic


en VIEW de la Barra de Men, luego Clic en: FORM CONTROLS
TOOLBAR)

3.

Busca la Barra de Propiedades.

4.

Clic en HEIGHT.

5.

Digita: 300

6.

Luego ENTER.

7.

Clic en WIDTH.

8.

Digita: 500

9.

Luego ENTER.
Pgina 32 de 78

Manual de Visual Fox 8 - 2009

10. De la Barra de Objetos, clic en el objeto llamado: LABEL.


11. Dibujar un rectngulo adentro del formulario.
12. Notaras que te aparece el Label o Etiqueta.
13. Si esta seleccionado la Etiqueta que acabamos de colocar
busca en las propiedades lo siguiente.
14. Doble clic en AUTOSIZE, para que quede en: .T. TRUE
15. Doble clic en BACKSTYLE, para que quede en: 0 - TRANSPARENT
16. Clic en CAPTION.
17. Digita ah: BIENVENIDO A MI PRIMER FORMULARIO
18. Luego ENTER.
19. Doble clic en FONTBOLD, para que quede en: .T. TRUE
20. Clic en FONTNAME, para cambiar el tipo de letra ha: CENTURY
GOTHIC.
21. Clic en FONTSIZE, para cambiar a: 15
22. Doble clic en FORECOLOR, para cambiar el color de la letra
(Si el Fondo es oscuro la letra debe ser clara, si el fondo
es claro la letra debe ser oscura).
23. Es

posible

que

la

etiqueta

no

quede

centrada

nivel

horizontal en el Formulario, entonces realiza lo siguiente:


24. Clic en FORMAT de la Barra de Men.
25. Seleccionar ALIGN.
26. Clic en CENTER HORIZONTALLY.
27. Presiona: CTRL + S
28. Luego: CTRL + E
29. Cierra el Formulario (NO CIERRES VISUAL FOX)
FIN DE LA PRCTICA 9

CUADRO DE TEXTO (TEXT BOX) (TXT)


Permite la entrada de datos por medio del usuario o bien para
mostrar informacin.

Pgina 33 de 78

Manual de Visual Fox 8 - 2009

INSTRUCCIN
PasswordChar

TIPO

EXPLICACIN

PROPIEDAD

Carcter que sustituye lo que se digita en


un cuadro de texto

MaxLength

PROPIEDAD

Determina el nmero mximo de caracteres a


digitar

TabIndex

PROPIEDAD

Orden de Tabulacin

TabStop

PROPIEDAD

No permite el acceso al objeto por medio de


la tabulacin

Value

PROPIEDAD

Permite la escritura o lectura en la caja de


texto.

ControlSource

PROPIEDAD

Fuente de origen para llenar una caja de


texto. Puede ser un campo de una Tabla

InteractiveChange

EVENTO

Evento que ocurre cuando el usuario presiona


una tecla adentro de la caja de texto

LostFocus

EVENTO

Evento que ocurre cuando el objeto pierda el


enfoque

GotFocus

EVENTO

Evento que ocurre cuando el objeto recibe el


enfoque

SetFocus

MTODO

Asigna el enfoque a un objeto

PRCTICA 10: TEXTBOX


1.

Abre el Formulario de la Prctica 8 (En el caso que no se


encuentre

abierto

solo

debes

digitar

en

la

ventana

de

comandos: MODI FORM ?, luego abrir el Formulario que se


desea ocupar.
2.

Debe estar cargada la Barra de Objetos (Si no lo esta: Clic


en VIEW de la Barra de Men, luego Clic en: FORM CONTROLS
TOOLBAR)

3.

Coloca un Label en el Formulario.

4.

Personaliza dicho Label de la siguiente manera:


PROPIEDAD

ESTABLECER MODIFICAR A

AUTOSIZE

TRUE

BACKSTYLE

TRUE

CAPTION

Digite su contrasea:

FONTNAME

Tipo de letra a tu gusto

FONTSIZE

14

Pgina 34 de 78

Manual de Visual Fox 8 - 2009


FORECOLOR

Color a letra a tu gusto

5.

Presionar: CTRL + S

6.

Agrega un TEXTBOX al Formulario.

7.

Personaliza dicho TEXTBOX de la siguiente manera:


PROPIEDAD

ESTABLECER MODIFICAR A

NAME

TXTCONTRA

PASSWORDCHAR

FONTSIZE

12

8.

El Formulario debe verse de la siguiente manera:

9.

Presionar: CTRL + S

10. Presionar: CTRL + E


11. Cierra el Formulario (NO CIERRES VISUAL FOX)
FIN DE LA PRCTICA 10

Pgina 35 de 78

Manual de Visual Fox 8 - 2009

BOTN DE COMANDO (COMMAND BUTTON) (CMD)


Permite

crear

botones

para

poder

realizar

un

proceso

ya

determinado por el programador.


INSTRUCCIN

TIPO

EXPLICACIN

Cancel

PROPIEDAD

Se activa el botn al presionar la tecla Esc

Default

PROPIEDAD

Se activa el botn al presionar la tecla Enter

SpecialEffect

PROPIEDAD

Especifica diversas formas del objeto.


0: 3D
1: Plano
2: Combinacin de los anteriores.

MouseIcon

PROPIEDAD

Especifica el icono que aparecer al colocar el


puntero

sobre

MousePointer

el

objeto.

debe

estar

La

en

propiedad

de

99-Personalizado

para que funcione


MousePointer

PROPIEDAD

Determina

las

diversas

formas

de

mostrar

el

puntero cuando este sobre el objeto


Picture

PROPIEDAD

Determina la imagen en el botn

DownPicture

PROPIEDAD

Determina

la

Habilitado.

imagen
Esta

del

objeto

propiedad

es

cuando

esta

recomendable

colocarla en Tiempo de Ejecucin y no en Tiempo


de Diseo

PRCTICA 11: COMMANDBUTTON


1.

Abre el Formulario de la Prctica 8 (En el caso que no se


encuentre

abierto

solo

debes

digitar

en

la

ventana

de

comandos: MODI FORM ?, luego abrir el Formulario que se


desea ocupar.
2.

Debe estar cargada la Barra de Objetos (Si no lo esta: Clic


en VIEW de la Barra de Men, luego Clic en: FORM CONTROLS
TOOLBAR)

3.

Agrega un COMANDBUTTON al formulario.

4.

Personaliza dicho formulario de la siguiente manera:


PROPIEDAD

ESTABLECER MODIFICAR A

Pgina 36 de 78

Manual de Visual Fox 8 - 2009


NAME

CMDENTRAR

CAPTION

INGRESAR

FONTBOLD

TRUE

5.

Luego doble clic sobre el botn de INGRESAR.

6.

Digita lo siguiente:

CONTRASEA = ""
CONTRASEA = ALLTRIM (THISFORM.TXTCONTRA.Value)
IF EMPTY (CONTRASEA) THEN
THISFORM.Caption = "DIGITE LA CONTRASEA..."
THISFORM.TXTCONTRA.SetFocus
ELSE
IF ALLTRIM (UPPER (CONTRASEA)) == "HOLA" THEN
THISFORM.Caption = "CONTRASEA CORRECTA... BIENVENIDO(A)"
THISFORM.TXTCONTRA.Enabled= .F.
THISFORM.CMDENTRAR.Enabled= .F.
WAIT "Espere un momento..." WINDOWS TIMEOUT 5
THISFORM.Release
ELSE
THISFORM.Caption = "CONTRASEA INCORRECTA..."
THISFORM.TXTCONTRA.Value=""
THISFORM.TXTCONTRA.SetFocus
ENDIF
ENDIF

7.

Presiona la siguiente combinacin de teclas: CTRL + S

8.

Luego

presione

una

vez

la

tecla:

ESC,

para

regresar

formulario.
9.

Luego adicionar otro COMMANDBUTTON, para personalizar as:


PROPIEDAD

ESTABLECER MODIFICAR A

NAME

CMDSALIR

CAPTION

SALIR

FONTBOLD

TRUE

10. El Formulario debe verse de la siguiente manera:

Pgina 37 de 78

al

Manual de Visual Fox 8 - 2009

11. Doble Clic sobre el botn SALIR.


12. Digita lo siguiente:
THISFORM.Release

13. Presiona: CTRL + S


14. Luego presiona una vez la tecla: ESC.
15. Presiona: CTRL + E
16. Prueba lo siguiente:
REALIZA LO SIGUIENTE
Sin

digitar

nada

en

QU SUCEDI? ESCRIBE AQU TU RESPUESTA

la

caja de texto, solo haz


clic

en

el

botn

INGRESAR.
Digita
texto
luego

en
la
haz

la

caja

palabra:
clic

de

luna,
en

el

caja

de

botn INGRESAR
Digita
texto
luego

en
la
haz

la

palabra:
clic

hola,
en

el

botn INGRESAR

Pgina 38 de 78

Manual de Visual Fox 8 - 2009

17. Vuelve a correr el formulario (CTRL + E)


18. Haz clic en el botn SALIR. Qu sucedi?: __________
______________________________________________________
19. Cierra el Formulario (NO CIERRES VISUAL FOX)
FIN DE LA PRCTICA 11

BOTONES DE OPCIN (OPTION GROUP o OPTIONBUTTON) (OPT)


Para poder modificar la estructura de este control puede dar clic
derecho sobre l y luego Modificar, para luego seleccionar en
especfico que opcin se desea configurar.
Caso contrario puede establecer la configuracin general de todas
las opciones.
ButtonCount:
Determina la cantidad de opciones que contendr.
Value:
Determina el estado actual de una opcin.
Valor

Descripcin

(Predeterminado) Indica que el botn no est seleccionado.

Indica que el botn est seleccionado.

CRONMETRO (TIMER) (TMR)


Interval:
Especifica el tiempo en milisegundos a ejecutar un mismo cdigo.
1 segundo = 1000 milisegundos.
PRCTICA 12: CALCULADORA
DISEE UN FORMULARIO QUE PUEDA REALIZAR LAS CUATRO OPERACIONES
BSICAS.

CONFIGURAR

QUE

SOLO

SE

PUEDAN

Pgina 39 de 78

DIGITAR

NMEROS.

DOS

Manual de Visual Fox 8 - 2009

DECIMALES COMO MXIMO EN LAS DOS PRIMERAS CAJAS. LA LTIMA CAJA


DEBE

ESTAR

DESHABILITADA

TODO

EL

TIEMPO.

AS

DEBE

QUEDAR

FORMULARIO. EL FORMULARIO DEBE GUARDARSE COMO: FRMCALCULADORA


EL CDIGO OCUPADO ES EL SIGUIENTE:
PARA EL EVENTO INIT DEL FORMULARIO
THISFORM.TXTA.Value=0.00
THISFORM.TXTB.Value=0.00
THISFORM.TXTC.Value=0.00

PARA EL BOTN + (CMDSUMA):


A=THISFORM.TXTA.Value
B=THISFORM.TXTB.Value
C=A+B
THISFORM.TXTC.Value=C

PARA EL BOTN - (CMDRESTA):


A=THISFORM.TXTA.Value
B=THISFORM.TXTB.Value
C=A-B
THISFORM.TXTC.Value=C

PARA EL BOTN X (CMDMULTIPLICACION):


A=THISFORM.TXTA.Value
B=THISFORM.TXTB.Value
C=A*B
THISFORM.TXTC.Value=C

PARA EL BOTN / (CMD_DIVI):


A=THISFORM.TXTA.Value
B=THISFORM.TXTB.Value
IF B=0 THEN
MESSAGEBOX ("NO SE PUEDE DIVIDIR ENTRE CERO")
THISFORM.TXTB.SetFocus
ELSE
C=A/B
THISFORM.TXTC.Value=C
ENDIF

PARA EL BOTN SALIR (CMD_SALIR):


THISFORM.Release

FIN DE LA PRCTICA 12

Pgina 40 de 78

EL

Manual de Visual Fox 8 - 2009

MESSAGEBOX
ESTA FUNCIN DESPLIEGA MENSAJES EN PANTALLA, CON EL SIGUIENTE
FORMATO:
VAR=MESSAGEBOX (MENSAJE, VALOR,TITULO)
LOS TIPOS DE VALORES:
Valor

Botones del cuadro de dilogo

Slo botn Aceptar.

Botones Aceptar y Cancelar.

Botones Anular, Reintentar e Ignorar.

Botones S, No y Cancelar.

Botones S y No.

Botones Reintentar y Cancelar.

16

Signo de alto

32

Signo de interrogacin.

48

Signo de exclamacin.

64

Icono de informacin (i).

CADA BOTN DEVUELVE UN VALOR:


Valor devuelto

Botn

Aceptar

Cancelar

Anular

Reintentar

Ignorar

No

EJEMPLO: PUEDE MEJORAR EL BOTN SALIR DE LA SIGUIENTE MANERA.


N=0
N=MESSAGEBOX ("Desea Salir?",4+32,"SALIR")
IF n=6 then
THISFORM.Release
ENDIF

Pgina 41 de 78

Manual de Visual Fox 8 - 2009

PRCTICA 13: POTENCIACIN


AGREGUE UN BOTN DE POTENCIACIN AL FORMULARIO DE LA PRCTICA 12
(FRMCALCULADORA). DONDE LA PRIMER CAJA SER LA BASE Y LA SEGUNDA
CAJA EL EXPONENTE. (El smbolo a ocupar es:

lo puede encontrar

en: Programas / Accesorios / Herramientas del Sistema / Mapa de


Caracteres / System / Seleccionar / Copiar y finalmente Pegar.
PRCTICA 14: DESPLAZAMIENTO HORIZONTAL (FRMHORIZONTAL)
CREE UN FORMULARIO DONDE EXISTAN TRES BOTONES:
EL PRIMER BOTON:
CAPTION

NAME

RETROCEDER

CMD_RETRO

EL SEGUNDO BOTON:
CAPTION

NAME

AVANZAR

CMD_AVA

EL TERCER BOTON:
CAPTION

NAME

MOVIENDOSE

CMD_MOVE

OBSERVA EL GRFICO:

AL

HACER

CLIC

AL

BOTN

RETROCEDER

EL

BOTN

MOVIENDOSE

SE

DESPLAZARA HACIA LA IZQUIERDA Y EL BOTN AVANZAR MOVER EL MISMO


BOTN DE MOVIENDOSE HACIA LA DERECHA.
FIN DE LA PRCTICA 14

Pgina 42 de 78

Manual de Visual Fox 8 - 2009

PRCTICA 15: DESPLAZAMIENTO VERTICAL (FRMVERTICAL)


CREAR UN FORMULARIO QUE MUEVA UN BOTON HACIA ARRIBA O HACIA ABAJO
(PARECIDO A LA PRCTICA 14).
PRCTICA 16: RELOJ (FRMRELOJ)
CREAR UN FORMULARIO, CON UN LABEL Y UN TIMER. EL LABEL DEBE
LLAMARSE:

LBL

EL

TIMER

DEBE

LLAMARSE:

TMR.

LA

PROPIEDAD

INTERVAL DEL TIMER DEBE ESTAR EN: 1000.


LA PROGRAMACIN DEL EVENTO INIT DEL FORMULARIO SER:
THISFORM.LBL.AutoSize= .T.
THISFORM.LBL.Caption=""
LA PROGRAMACIN DEL TIMER ES:
THISFORM.LBL.Caption=TIME()
MEJORAR LA PRESENTACIN DEL FORMULARIO (O AGREGUE ASPECTOS QUE MEJOREN
LA PRESENTACIN DEL FORMULARIO)

FIN DE LA PRCTICA 16
TAREA: CAPTULO 3
Investigar el uso de cada una de las siguientes Propiedades, as como
cada opcin de la propiedad y funcionamiento, en caso que lo posea:
Movable (Formulario)
Desktop (Formulario)
MouseDown (Botn de Comando)
MouseUp (Botn de Comando)
MouseMove (Botn de Comando)
InputMask (Caja de Texto)
Investigar el uso de los ComboBox.

Pgina 43 de 78

Manual de Visual Fox 8 - 2009

CAPTULO 4: PROGRAMACIN
OBJETIVOS:
El estudiante estar en la capacidad de:
Identificar los conceptos bsicos sobre el uso de las
estructuras bsicas de programacin.
Reconocer y aplicar las estructuras cclicas de
programacin.
Manejo de mensajes en tablas al programar.
CONTENIDO:
IF...ENDIF
Ejecuta condicionalmente un conjunto de instrucciones mientras se
cumpla la expresin.
Sintaxis:
IF <expresin_a_evaluar> THEN
<Proceso verdadero>
ELSE
<Proceso falso>
ENDIF
Ejemplo: disear un programa que busque cuantos libros pertenecen
al autor 1. Se ha tomado de ejemplo las tablas antes creadas. El
programa esta diseado en Modi Comm.
USE libro
Contador = 0
GO top
SCAN
IF id_autor=1 then
Contador = Contador+1
ENDIF
ENDSCAN
? Contador
USE

Pgina 44 de 78

Manual de Visual Fox 8 - 2009

FOR...ENDFOR
Ejecuta un conjunto de instrucciones un nmero ya determinado de
ocasiones.
Sintaxis:
For var=inicio TO final STEP aumento/disminucin
LOOP
EXIT
ENDFOR/NEXT
Ejemplo 1: mostrar los nmeros del 1 al 10. Cuando el aumento es
de uno en uno se puede obviar el STEP.
i=0
FOR i=1 TO 10
? i
NEXT
Ejemplo 2: mostrar los nmeros del 0 al 10 de dos en dos.
i=0
FOR i=0 TO 10 STEP 2
? i
NEXT
Ejemplo 3: mostrar los nmeros del 10 al 0 de dos en dos.
i=0
FOR i=10 TO 0 STEP -2
? i
NEXT
PRCTICA 17: P17.PRG
Disear

un

programa

que

cambie

en

la

Tabla

Libro

todos

cdigos de Pas 1 a cdigo 2. Anotar:


_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________

Pgina 45 de 78

los

Manual de Visual Fox 8 - 2009

PRCTICA 18: FRMSEPARAR


Cree un formulario que posea un Label con CAPTION: Digite una
palabra o frase: .Una caja de texto con el NAME: TXT y un botn
de comandos con el NAME:

CMD

y con el CAPTION:

SEPARAR. La

programacin del botn es:


FRA=""
CAN=0
LET=""
FRA=ALLTRIM (THISFORM.TXT.Value)
CAN=LEN (FRA)
FOR I=1 TO CAN
LET=SUBSTR (FRA, I, 1)
MESSAGEBOX (LET)
NEXT

FIN DE LA PRCTICA 18
PRCTICA 19: BSQUEDA POR CDIGO (FRMBUSQUEDA)
Realice el siguiente formulario con sus respectivos objetos:

Las cajas: TXTNOM, TXTAPE Y TXTSUELDO deben estar deshabilitadas.


Digite la siguiente programacin, segn se le indica:
EVENTO LOAD DEL FORMULARIO
USE EMPLEADO IN 1

EVENTO DESTROY DEL FORMULARIO


SELECT 1
USE

EVENTO INIT DEL FORMULARIO


THISFORM.TXTID.Value=0
THISFORM.TXTNOM.Value=""
THISFORM.TXTAPE.Value=""
THISFORM.TXTSUELDO.Value=0.00

Pgina 46 de 78

Manual de Visual Fox 8 - 2009

EVENTO CLICK DEL BOTN BUSCAR


SELECT 1
GO TOP
COD=0
E=0
COD=THISFORM.TXTID.Value
SCAN FOR COD=ID_EMP
THISFORM.TXTNOM.Value=ALLTRIM (NOM_EMP)
THISFORM.TXTAPE.Value=ALLTRIM (APE_EMP)
THISFORM.TXTSUELDO.Value=SUELDO
E=1
ENDSCAN
IF E=0 THEN
MESSAGEBOX ("No existe ese Cdigo",0+64,"Prctica")
THISFORM.Init
ENDIF
THISFORM.TXTID.SetFocus

Pgina 47 de 78

Manual de Visual Fox 8 - 2009

CAPTULO 5: MANTENIMIENTO SIMPLE


OBJETIVOS:
Crear

programas

mantenimiento

que
la

permitan

al

informacin

usuario

el

contenida

en

poder

dar

tablas

que

solamente poseen llaves primarias.


CONTENIDO:
PRCTICA 20: MANTENIMIENTO SIMPLE (FRMPRODUCTO)
Un mantenimiento simple es para las tablas que poseen solamente
una llave primaria (o candidata) y ninguna fornea.
Un programa de Mantenimiento es un cdigo diseado para estar
actualizando, eliminando, agregando informacin en una tabla en
especfico. Para poder disear dicho Mantenimiento elegimos en
que tabla trabajaremos, luego creamos un nuevo formulario. Para
este ejemplo se diseo un Mantenimiento de la tabla Producto la
cual con fines de explicacin solo posee cuatro campos (Id_prod,
nom_prod, pre_uni y existencia).
1. Digitar CREATE FORM en la Ventana de Comandos.
2. Aparece un formulario
3. Agregaremos un Entorno de Datos de la siguiente manera:
4. Damos clic derecho en el formulario.
5. Del

men

contextual

elegimos

Entorno

de

Datos

(DATA

ENVIRONMENT).
6. Despus de eso se abre una ventana donde elegiremos la tabla,
para este ejemplo es la de Producto.
7. Se

puede

seleccionar

los

campos

deseados

arrastrarlos al formulario o bien dar clic sobre


Campos (FIELDS) y arrastrarlos al formulario,
con dicha accin se arrastran todos los campos
de la tabla.
8. Modifique cada LABEL con la propiedad CAPTION.
Por Ejemplo, en vez de Id_Prod debe decir: Cdigo, en vez de
nom_prod debe decir: Producto, as sucesivamente.

Pgina 48 de 78

Manual de Visual Fox 8 - 2009

9. Luego agregara unos botones (el nombre de cada botn empezara


con

CMD,

ejemplo:

CMD_AGREGAR,

CMD_MODIFICAR,

entre

otros)

para que quede de la siguiente manera:

10.

Los cajas de texto: txtid_prod, txtnom_prod, txtPre_uni y

txtExistencia deben estar deshabilitadas (ENABLED en FALSE).


11.

Los botones GUARDAR (CMD_GUARDAR) y CANCELAR (CMD_CANCELAR)

deben estar invisibles (VISIBLE en FALSE).


12.

Seleccione

las

cajas

de

texto

cambien

la

propiedad

DISABLEDFORECOLOR a Negro.
13.

Guarde el formulario como: FRMPRODUCTO

14.

Explicacin previa de algunas funciones a ocupar:

INTRUCCIN
EOF()

EXPLICACIN
Determina

si

el

puntero

se

encuentra

ubicado

en

el

ltimo

si

el

puntero

se

encuentra

ubicado

en

el

primer

registro
BOF()

Determina
registro

RECNO()

Posicin actual del registro

RECCOUNT()

Total de registros (cuenta cuantos registros posee la tabla)

15.

esta

Para

formulario

programacin

(PROTEGIDO,

se

adicionaron

DESPROTEGIDO

VACIO).

adicionarlo a sus formularios realiza lo siguiente:


16.

Clic en FORM de la barra de Men.

17.

Clic en NEW METHOD.

Pgina 49 de 78

mtodos
Para

al

poder

Manual de Visual Fox 8 - 2009

18.

De la ventana que te aparece digita: PROTEGIDO

19.

Luego clic en ADD.

20.

Repite

el

paso

18

19

para

digitar

adicionar:

DESPROTEGIDO y VACIO.
21.

Digita el siguiente cdigo segn se te indica en cada botn:

EVENTO LOAD DEL FORMULARIO


USE PRODUCTO IN 1 EXCLUSIVE
PUBLIC ESTADO
* ESTADO=0 PRESIONO EL BOTN AGREGAR
* ESTADO=1 PRESIONO EL BOTN MODIFICAR
ESTADO=0

EVENTO DESTROY DEL FORMULARIO


SELECT 1
USE

EVENTO INIT DEL FORMULARIO


THISFORM.PROtegido

MTODO PROTEGIDO DEL FORMULARIO


* BOTONES DE DESPLAZAMIENTO
THISFORM.CMD_PRIMERO.Visible= .T.
THISFORM.CMD_ANTERIOR.Visible= .T.
THISFORM.CMD_SIGUIENTE.Visible= .T.
THISFORM.CMD_ULTIMO.Visible= .T.
* BOTONES DE TRANSACCIONES
THISFORM.CMD_AGREGAR.Visible= .T.
THISFORM.CMD_MODIFICAR.Visible= .T.
THISFORM.CMD_ELIMINAR.Visible= .T.
* BOTONES DE OPERACIN
THISFORM.CMD_GUARDAR.Visible= .F.
THISFORM.CMD_CANCELAR.Visible= .F.
* CAJAS DE TEXTO
THISFORM.TXtId_prod.Enabled= .F.
THISFORM.TXtNom_prod.Enabled= .F.
THISFORM.TXtPre_uni.Enabled= .F.
THISFORM.TXtExistencia.Enabled= .F.

MTODO DESPROTEGIDO DEL FORMULARIO


* BOTONES DE DESPLAZAMIENTO
THISFORM.CMD_PRIMERO.Visible= .F.
THISFORM.CMD_ANTERIOR.Visible= .F.
THISFORM.CMD_SIGUIENTE.Visible= .F.
THISFORM.CMD_ULTIMO.Visible= .F.
* BOTONES DE TRANSACCIONES
THISFORM.CMD_AGREGAR.Visible= .F.
THISFORM.CMD_MODIFICAR.Visible= .F.

Pgina 50 de 78

Manual de Visual Fox 8 - 2009


THISFORM.CMD_ELIMINAR.Visible= .F.
* BOTONES DE OPERACION
THISFORM.CMD_GUARDAR.Visible= .T.
THISFORM.CMD_CANCELAR.Visible= .T.
* CAJAS DE TEXTO
THISFORM.TXtNom_prod.Enabled= .T.
THISFORM.TXtPre_uni.Enabled= .T.
THISFORM.TXtExistencia.Enabled= .T.

MTODO VACIO DEL FORMULARIO


THISFORM.TXtNom_prod.Value=""
THISFORM.TXtPre_uni.Value=0.00
THISFORM.TXtExistencia.Value=0

EVENTO CLICK DEL BOTN PRIMERO (CMD_PRIMERO)


GO top
thisform.Refresh

EVENTO CLICK DEL BOTN ANTERIOR (CMD_ANTERIOR)


IF BOF()=.F. then
SKIP -1
thisform.Refresh
endif

EVENTO CLICK DEL BOTN SIGUIENTE (CMD_SIGUIENTE)


actual=0
fin=0
actual=RECNO()
fin=RECCOUNT()
IF actual<fin then
SKIP 1
THISFORM.Refresh
ENDIF

EVENTO CLICK DEL BOTN ULTIMO


GO bottom
thisform.Refresh

EVENTO CLICK DEL BOTN AGREGAR


valor=0
GO bottom
valor=id_prod
valor=valor+1
SKIP
THISFORM.VAcio
*RESERVA UN ESPACIO PARA AGREGAR
APPEND BLANK
*COLOCA EL ID
THISFORM.DESProtegido

Pgina 51 de 78

Manual de Visual Fox 8 - 2009


thisform.txtId_prod.Value=valor
thisform.txtNom_prod.SetFocus
estado=0

EVENTO CLICK DEL BOTN MODIFICAR


PUBLIC nom, pre, exi
nom=""
pre=0.00
exi=0
*TOMA EL VALOR ACTUAL (ANTES DE MODIFICAR)
nom=ALLTRIM(thisform.txtNom_prod.Value)
pre=thisform.txtPre_uni.Value
exi=thisform.txtExistencia.Value
THISFORM.DESProtegido
THISFORM.TXtNom_prod.SetFocus
estado=1

EVENTO CLICK DEL BOTN ELIMINAR


valor=0
valor=MESSAGEBOX("Desea Eliminar el registro",4+48,"Importante")
IF valor=6 then
DELETE
PACK
GO top
thisform.Refresh
ENDIF

EVENTO CLIC DEL BOTN GUARDAR


*VERIFICA QUE NO EXISTAN CAJAS VACAS
IF EMPTY(thisform.TXtNom_prod.Value) THEN
MESSAGEBOX("Digite el Nombre del Producto",0+64,"Importante")
THISFORM.TXtNom_prod.SetFocus
ELSE
IF EMPTY(THISFORM.TXtPre_uni.Value) THEN
MESSAGEBOX("Digite el Precio del Producto",0+64,"Importante")
THISFORM.txtPre_uni.SetFocus
ELSE
IF EMPTY(THISFORM.txtExistencia.Value) THEN
MESSAGEBOX("Digite la Existencia del Producto",0+64,"Importante")
THISFORM.txtExistencia.SetFocus
ELSE
THISFORM.Protegido
GO top
thisform.Refresh
ENDIF
ENDIF
ENDIF

EVENTO CLICK DEL BOTN CANCELAR


IF estado=0 then
DELETE
PACK

Pgina 52 de 78

Manual de Visual Fox 8 - 2009


ELSE
THISFORM.TXtNom_prod.Value=NOM
THISFORM.TXtPre_uni.Value=PRE
THISFORM.TXtExistencia.Value=EXI
ENDIF
GO top
thisform.Refresh
THISFORM.Protegido

PRCTICA 21: FRMPAIS


DISEAR UN FORMULARIO DE MANTENIMIENTO SIMPLE PARA LA TABLA PAIS
CON EL NOMBRE: FRMPAIS.
PRCTICA 22: FRMMATERIA
DISEAR

UN

FORMULARIO

DE

MANTENIMIENTO

SIMPLE

PARA

LA

TABLA

MATERIA CON EL NOMBRE: FRMMATERIA.


PRCTICA 23: FRMAUTOR
DISEAR UN FORMULARIO DE MANTENIMIENTO SIMPLE PARA LA TABLA AUTOR
CON EL NOMBRE: FRMAUTOR.
TAREA: CAPTULO 5
Que pasara si no existen registros y se desea agregar el
primer registro de la tabla. Mejore el cdigo para arreglar
este inconveniente.

Pgina 53 de 78

Manual de Visual Fox 8 - 2009

CAPTULO 6: CONSULTAS Y REPORTES


OBJETIVOS:
El estudiante estar en la capacidad de:
Crear

programas

que

tengan

la

capacidad

de

buscar

presentar informacin al usuario, tanto de manera esttica


como dinmica, en un objeto de cuadricula (GRID).
Crear programas que permitan al usuario poder visualizar la
informacin de manera impresa.
CONTENIDO:
CONSULTAS
GRID (CUADRCULA)
Este objeto se ocupa para mostrar informacin que proviene de
alguna consulta, en ella pueden contener muchas Columnas (Campos)
y Filas (Registros) como sean necesarios.
Propiedades:
ActiveRow: Indica la fila actual donde se encuentra el enfoque.
Si no posee enfoque devuelve cero.
ColumnsCount: Determina la cantidad de columnas a ocupar.
AllowHeaderSizing: Especifica si el alto del encabezado de una
cuadricula se puede o no modificar.
Valor

Descripcin

Verdadero (.T.)

(Valor predeterminado) El alto del encabezado de la cuadrcula se


puede modificar al arrastrar el encabezado en tiempo de ejecucin.

Falso (.F.)

El alto del encabezado de la cuadrcula no se puede modificar al


arrastrar el encabezado en tiempo de ejecucin.

AllowRowSizing: Especifica si el alto de cada registro de


cuadricula se puede o no modificar.
Valor

Descripcin

Verdadero (.T.)

(Valor predeterminado) El alto de los registros de la cuadrcula se


puede modificar al arrastrarlos en tiempo de ejecucin.

Falso (.F.)

El alto de los registros de la cuadrcula no se puede modificar en


tiempo de ejecucin.

Pgina 54 de 78

una

Manual de Visual Fox 8 - 2009

HeaderHeigth: Indica el alto del encabezado.


ReadyOnly: Permite que la cuadricula solamente sea de lectura.
Valor

Descripcin

True (.T.)

El usuario no puede modificar el control. La tabla o vista asociada con el


objeto Cursor no se puede modificar.

False (.F.)

(Predeterminado) El usuario puede modificar el control.


La tabla o vista asociada con el objeto Cursor se puede modificar.

RecordSource: Indica el origen de los datos a llenarse en un


Grid. Puede ser una consulta SQL o bien una Tabla o cursor.
RecordSourceType: Determina el tipo de origen de los datos.
Valor

Descripcin

Tabla. Abre automticamente la tabla especificada en el valor de la propiedad


RecordSource.

(Predeterminado) Alias. Trata el origen de los datos como especificado.

Peticin. Se pide el origen de datos al usuario durante la ejecucin. Si hay una


base de datos abierta, el usuario puede elegir una de las tablas que contenga
como origen de los datos.

Consulta (.qpr). El valor de la propiedad RecordSource especifica un archivo


.qpr.

Instruccin SQL. La instruccin SQL se especifica en la propiedad RecordSource.

RowHeigth: Determina la altura de las filas o registros.


ScrollBars: Indica el tipo de Barra de Desplazamiento a ocupar en
el Grid.
Valor

Descripcin

Ninguno

Horizontal

Vertical

(Predeterminado) Vertical y horizontal

PRCTICA 24: CONSULTA ESTTICA


1. Cree un nuevo formulario.
2. Cambie el Caption del formulario por: CONSULTA DE TODOS LOS

Pgina 55 de 78

Manual de Visual Fox 8 - 2009

PRODUCTOS.
3. Agregue un control GRID.
4. Cmbiele el nombre (Name) del grid1 por: GRID
5. Cambia la propiedad ColumnCount del grid por: 4
6. Has clic derecho sobre el grid y selecciona modificar (Edit)
7. Has

un

clic

sobre

el

primer

encabezado

(Header)

del

grid

(columna 1) y cambia el caption por: Cdigo.


8. Has un clic sobre el segundo encabezado (Header) del grid
(columna 2) y cambia el caption por: Producto.
9. Has

un

clic

sobre

el

tercer

encabezado

(Header)

del

grid

(columna 3) y cambia el caption por: Precio.


10.

Has un clic sobre el cuarto encabezado (Header) del grid

(columna 4) y cambia el caption por: Existencia.


11.

En la propiedad Column1 del Grid cambia la propiedad Width

con: 45
12.

En la propiedad Column2 del Grid cambia la propiedad Width

con: 200
13.

En la propiedad Column3 del Grid cambia la propiedad Width

con: 60
14.

En la propiedad Column4 del Grid cambia la propiedad Width

con: 60
15.

Guardar el formulario como: frm_consulta_producto

16.

Agrega un Entorno de datos, con la tabla: Producto.

17.

Modifica la Propiedad READONLY del Grid a: .T. - TRUE

18.

Ejecuta

formulario,

el
siempre

guarda los cambios.


19.

Observa

como

debe

quedar:

Pgina 56 de 78

Manual de Visual Fox 8 - 2009

PRCTICA 25: FRM_CONSULTA_PAIS (CONSULTA ESTTICA)


CREA UN FORMULARIO QUE MUESTRE TODOS LOS DATOS DE LA TABLA PAIS.
GUARDAR EL FORMULARIO COMO: FRM_CONSULTA_PAIS
PRCTICA 26: FRM_CONSULTA_AUTOR (CONSULTA ESTTICA)
CREA UN FORMULARIO QUE MUESTRE TODOS LOS DATOS DE LA TABLA AUTOR.
GUARDAR EL FORMULARIO COMO: FRM_CONSULTA_AUTOR
PRCTICA 27: FRM_CONSULTA_MATERIA (CONSULTA ESTTICA)
CREA

UN

FORMULARIO

QUE

MUESTRE

TODOS

LOS

DATOS

DE

LA

TABLA

MATERIA. GUARDAR EL FORMULARIO COMO: FRM_CONSULTA_MATERIA


PRCTICA 28: CONSULTA ESTTICA CON SQL
DISEAR UN FORMULARIO QUE CONTENGA UN GRID EN EL CUAL OBTENGA LOS
DATOS DE UNA CONSULTA SQL CUALQUIERA.

REALIZA LOS SIGUIENTES

PASOS:
1. Cree un nuevo formulario
2. Modifique

el

Caption

del

formulario

por:

CONSULTA

SQL

DE

LIBROS.
3. Guardar el formulario como: frm_sql_libros
4. Agregue un Grid y ponle como nombre: GRID
5. Modifica la propiedad ColumnCount por: 6
6. Modifica

el

ancho

(Width)

Caption

de

cada

encabezado

(Header) a tu gusto. (Cdigo, Libro, Editorial, Autor, Pas y


Materia)
7. Modifica la propiedad RecordSourceType por: 4-SQL
8. Modifica la propiedad RecordSource por:
9. Digita el siguiente cdigo en el evento LOAD del formulario:
USE Libro IN 1
USE Editorial IN 2
USE Autor IN 3
USE Pais IN 4
USE Materia IN 5
PUBLIC con
con=""

Pgina 57 de 78

Manual de Visual Fox 8 - 2009


con1="Select id_lib, nom_lib, nom_edit, nom_autor, nom_pais, nom_mat FROM
Libro INNER JOIN Editorial ON Libro.id_edit=Editorial.id_edit "
con2=" INNER JOIN Autor ON Libro.id_autor=Autor.id_autor INNER JOIN Pais ON
Libro.id_pais=Pais.id_Pais
INNER
JOIN
Materia
ON
Libro.id_mat=Materia.id_mat INTO CURSOR TEM"
con=con1+con2

10.

Digita el siguiente cdigo en el evento INIT del formulario:

THISFORM.GRid.RecordSource=con

11.

Digita

el

siguiente

cdigo

en

el

evento

DESTROY

del

probar

su

formulario:
SELECT 1
USE
SELECT 2
USE
SELECT 3
USE
SELECT 4
USE
SELECT 5
USE
IF USED ("Tem") THEN
SELECT TEM
USE
ENDIF

12.

Quedar as.

13.

Guardar

ejecutar

el

formulario,

para

funcionamiento.
FIN DE LA PRCTICA28
PRCTICA 29: CONSULTA DINMICA CON SQL
La

idea

de

las

consultas

es

buscar,

clasificar

mostrar

informacin relevante. Pero no basta con eso sino que debe de


buscarse la mejor manera de mostrar dicha informacin obtenida.
Para el ejemplo siguiente la informacin se llenar en un Grid
(Es lo ms recomendable a la hora de mostrar informacin que
puede variar constantemente).
El formulario ser guardado como: frm_sql_producto
Primero disearemos el formulario siguiente:

Pgina 58 de 78

Manual de Visual Fox 8 - 2009

Nombres de los objetos ocupados:


1. Grid (GRID)
2. Caja de Texto (TXT)
3.
EVENTO LOAD DEL FORMULARIO
USE PRODUCTO IN 1
PUBLIC nom
nom=""

EVENTO INIT DEL FORMULARIO


THISFORM.CONsulta

EVENTO DESTROY DEL FORMULARIO


SELECT 1
USE
IF USED("Tem") THEN
SELECT TEM
USE
ENDIF

MTODO CONSULTA DEL FORMULARIO


pa=""
pa=ALLTRIM(THISFORM.TXT.Value)
con="Select * From Producto Where nom_prod LIKE '%" + pa + "%' INTO CURSOR TEM"

THISFORM.GRid.RecordSource=con

EVENTO INTERACTIVECHANGE DE LA CAJA DE TEXTO


THISFORM.CONsulta

Pgina 59 de 78

Manual de Visual Fox 8 - 2009

PROPIEDADES MODIFICADAS EN EL GRID


AllowRowSizing=.F.

(Permite

que

las

Filas

no

puedan

ser

modificadas en tiempo de ejecucin su altura)


AllowHeaderSizing=.F.

(Permite

que

las

Cabezas

no

puedan

ser

modificadas en tiempo de ejecucin su altura)


RecordSourceType= 4. SQL (Origen de Datos tipo SQL).
ColumnCount=4 (Cantidad de Columnas a Ocupar).
RecordSource=
LA CONSULTA ANTERIOR ES UNA CONSULTA DINMICA, SIGNIFICA QUE
FILTRA INFORMACIN A PARTIR DE DATOS OBTENIDOS DEL USUARIO, NO
DEL

PROGRAMADOR

COMO

SE

VIO

EN

LOS

EJERCICIOS

ANTERIORES

(CONSULTAS ESTTICAS).
PRCTICA 30: SQL_DINAMICA_LIBROS
DISEAR UN FORMULARIO QUE CONTENGA UNA CAJA DE TEXTO Y UN GRID.
DEBE DE GENERAR UN CONSULTA DINMICA A PARTIR DE LA TABLA LIBRO,
DEBE BUSCAR POR MEDIO DEL NOMBRE DEL LIBRO. LA CONSULTA SOLO
BUSCARA LOS LIBROS QUE INICIEN CON LA PALABRA DIGITADA EN LA CAJA
DE TEXTO.
REPORTES
Por

medio

de

los

reportes

podemos

no

solamente

mostrar

informacin al usuario sino que tambin podemos enviarla

a la

impresora. reas de un Reporte:


ENCABEZADO

DETALLE

PIE DE PGINA

Pgina 60 de 78

Manual de Visual Fox 8 - 2009

En el rea de Encabezado se coloca: Fechas, Ttulos, Etiquetas,


toda aquella informacin que deseamos que aparezca al inicio de
todo reporte y se va a repetir siempre al inicio de cada pgina.
En el rea de

Detalle

se coloca: campos de tablas, es toda

aquella informacin que deseamos que aparezca a partir de la una


tabla.
En el rea de Pie de Pgina se coloca: Fechas, Etiquetas, nmeros
de pgina, toda aquella informacin que deseamos que aparezca al
final de todo reporte y se va a repetir siempre al final de cada
pgina.
Para crear Reportes necesitamos la Barra de Reportes. Si no te
aparece al momento de dar CREATE REPORT, da clic en VIEW de la
barra de men, luego clic en: REPORT CONTROLS TOOLBAR.
OLE

LABEL

FIELD

LINE

RECTANGLE

ROUNDED
RECTANGLE

LABEL: Permite colocar Mensajes o Ttulos.

FIELD: Permite colocar Campos de Tablas o Funciones de Fox


como: Hora, Fecha, Nmero de Pgina, etc.

LINE: Permite colocar Lneas.

RECTANGLE: Permite colocar Rectngulos.

ROUNDED RECTANGLE: Permite colocar Rectngulos con esquinas


planas.

OLE: Permite colocar otros tipos de objetos no tan comunes en


los reportes como: imgenes.

Pgina 61 de 78

Manual de Visual Fox 8 - 2009

PRCTICA 31: REPORTES


Pasos a seguir para crear un reporte:
1. Digitar en la ventana de comando lo siguiente: CREATE REPORT.
2. Debes crear un Entorno de Datos con la tabla Editorial.
3. Seleccionar los campos y pegarlos en la zona de Detalle.

4. Luego eliminamos los LABEL que nos aparecen (Objetos del lado
izquierdo). Toma como referencia la siguiente imagen:

5. Clic en LABEL.
6. Dibuja el LABEL en el rea de Encabezado del Reporte.
7. Y Digita: CDIGO.
8. Dibuja otro LABEL a la par del anterior, y digita: SUCURSAL.
9. Dibuja otro LABEL a la par del anterior, y digita: DIRECCIN.
10.

Luego organiza los campos del rea del detalle que te queden

debajo de cada LABEL que haz colocado, toma como referencia la


siguiente imagen:
Pgina 62 de 78

Manual de Visual Fox 8 - 2009

11.

Luego agregamos un par de lneas para separar y organizar

mejor la informacin.

12.

Luego Colocamos el Ttulo del Reporte, por medio de un LABEL

13.

Para personalizar el tipo y tamao de letra, solo selecciona

el o los LABEL que vas a configurar.


14.

Clic en FORMAT de la barra de men.

15.

Clic en FONT.

16.

Configura a tu gusto y luego ACEPTAR.

17.

Luego vamos agregar la fecha del reporte (Aspecto bastante

importante en todo reporte).

Pgina 63 de 78

Manual de Visual Fox 8 - 2009

18.

Agregamos un FIELD al encabezado del reporte,

abajo del

ttulo.
19.

Nos aparece una ventana, donde hacemos clic en EXPRESION.

20.

Luego nos muestra otra ventana, que de la lista de DATE

seleccionamos: DATETIME()

21.

Luego OK, y OK.


Pgina 64 de 78

Manual de Visual Fox 8 - 2009

22.

Corremos el Reporte para verificar como se ve: da clic en

VISTA PRELIMINAR (PRINT PREVIEW) de la Barra Estndar.

23.

Luego la tecla ESC para retornar al diseo del reporte.

24.

Luego vamos a colocar numeracin a las pginas:

25.

Un LABEL en el rea de PIE DE PGINA, que diga: Pgina

26.

Luego a la par colocamos un FIELD.

27.

Clic en EXPRESION.

28.

De la Variables hacemos doble clic en: _pageno

29.

Luego OK, y OK.

30.

Agrega otro LABEL a la par de este campo, digita: de

31.

Luego otro FIELD.

32.

Clic en EXPRESION.

Pgina 65 de 78

Manual de Visual Fox 8 - 2009

33.

De la Variables, busca y haz doble clic en: _pagetotal

34.

Clic en OK, y OK.

35.

El Pie de Pgina debe verse as:

36.

Y al darle VISTA PRELIMINAR:

37.

Si tuviera ms pginas el reporte mostrara por ejemplo:

Pgina 1 de 3
38.

Presiona las teclas: CTRL + S

39.

Guarda el Reporte como: RPTSUCURSAL

40.

Cierra el Reporte (No cierres Visual Fox)

Pgina 66 de 78

Manual de Visual Fox 8 - 2009

41.

Si deseas visualizar el Reporte ya creado, digita en la

ventana de comandos lo siguiente: REPORT FORM RPTSUCURSAL PREV


42.

Para

mandar

imprimir

el

Reporte

es:

REPORT

FORM

RPTSUCURSAL TO PRINTER
FIN DE LA PRCTICA 31
PRCTICA 32: RPTMATERIA
DISEAR

UN

REPORTE

PARA

LA

TABLA

MATERIA.

GUARDARLO

COMO:

RPT_MATERIA.
PRCTICA 33: RPTPAIS
DISEAR UN REPORTE PARA LA TABLA PAIS. GUARDARLO COMO: RPT_PAIS.
PRCTICA 34: RPTAUTOR
DISEAR

UN

REPORTE

PARA

LA

TABLA

AUTOR.

GUARDARLO

COMO:

RPT_AUTOR.
TAREA: CAPTULO 6

Disear un reporte dinmico. Un reporte dinmica es el que se


genera a partir de la informacin proporcionada y digitada en
un formulario por un usuario.

Pgina 67 de 78

Manual de Visual Fox 8 - 2009

CAPTULO 7: MANTENIMIENTO AVANZADO


PRCTICA 35: FRMLIBRO
A

continuacin

se

disear

un

formulario

de

mantenimiento

Avanzado, paso a paso, sin necesidad de ningn tipo de generador


o asistente, en el cual se manipularn 5 tablas, 4 de ellas se
mostrar en un ComboBox (Tarea ya investigada).
Las tablas a manipular son las siguientes:
Libro, Editorial, Pais, Autor y Materia
Pasos a seguir:
1. Cree un nuevo formulario.
2. Personalizar el formulario de la siguiente manera:
PROPIEDAD

ESTABLECER MODIFICAR A

NAME

FRMLIBRO

CAPTION

MANTENIMIENTO DE LIBROS

AUTOCENTER

TRUE

BACKCOLOR

A TU GUSTO

MAXBUTTON

FALSE

3. Presionar las teclas: CTRL + S


4. Guardar como: FRMLIBRO
5. Luego adicionar 6 LABEL y personalizar a su gusto, pero con el
CAPTION y orden como se muestra en la siguiente imagen:

6. Luego a la par de cada LABEL colocar un TEXTBOX.


7. Establecer el nombre de los TEXTBOX segn se observa en la
siguiente imagen:

Pgina 68 de 78

Manual de Visual Fox 8 - 2009

8. Luego selecciona todos los TEXTBOX y los personaliza segn se


indica a continuacin:
PROPIEDAD

ESTABLECER MODIFICAR A

ENABLED

FALSE

DISABLEDFORECOLOR

NEGRO (0,0,0)

FONTBOLD

TRUE

FONTNAME

A TU GUSTO

FONTSIZE

A TU GUSTO

9. Luego adiciona unos COMBOBOX a la par de los TEXTBOX que se


muestran en la siguiente imagen:

10.

Luego cambia el nombre a cada COMBOBOX segn corresponda.

11.

Selecciona todos los COMBOBOX y personaliza as:

PROPIEDAD

ESTABLECER MODIFICAR A

VISIBLE

FALSE

DISABLEDFORECOLOR

NEGRO (0,0,0)

FONTBOLD

TRUE

Pgina 69 de 78

Manual de Visual Fox 8 - 2009


FONTNAME

A TU GUSTO

FONTSIZE

A TU GUSTO

STYLE

2 DROPDOWN LIST

12.

Adiciona un GRID al formulario.

13.

El nombre del GRID debe ser: GRDLIBRO

14.

La propiedad COLUMNCOUNT del GRID debe ser: 6

15.

La propiedad READONLY del GRID debe ser: TRUE

16.

La Propiedad RECORDSOURCE del GRID debe tener:

17.

La Propiedad RECORDSOURCETYPE del GRID debe tener: 4 - SQL

18.

Luego personalizar el GRID segn se observa:

19.

Guardar el formulario (CTRL + S).

20.

Luego adicionar 5 botones de comando, con las siguientes

caractersticas:
21.

Primer botn, el NAME de: CMDNUEVO y CAPTION de: NUEVO

22.

Segundo

botn,

el

NAME

de:

CMDMODIFICAR

CAPTION

de:

MODIFICAR
23.

Tercer botn, el NAME de: CMDELIMINAR y CAPTION de: ELIMINAR

24.

Cuarto botn, el NAME de: CMDGUARDAR y CAPTION de: GUARDAR

25.

Quinto botn, el NAME de: CMDCANCELAR y CAPTION de: CANCELAR

26.

Toma como referencia la siguiente imagen:


Pgina 70 de 78

Manual de Visual Fox 8 - 2009

27.

Los botones de comando: GUARDAR y CANCELAR debe tener la

propiedad VISIBLE en FALSE.


28.

Crea los siguientes Mtodos: BUSCAR, CONSULTA, DESPROTEGIDO,

LIMPIAR, ORGANIZAR Y PROTEGIDO.


29.

Digita la programacin que se te muestra a continuacin, a

partir de la ubicacin que se indica:


30.

EVENTO LOAD DEL FORMULARIO:

USE LIBRO IN 1 EXCLUSIVE


USE EDITORIAL IN 2
USE AUTOR IN 3
USE PAIS IN 4
USE MATERIA IN 5
*****
PUBLIC ESTADO, MEN, PO
ESTADO=0
MEN="EXPO"
PO=0

31.

EVENTO INIT DEL FORMULARIO

THISFORM.TXTID.Value=0
THISFORM.LIMpiar
THISFORM.PROtegido
THISFORM.CONSULTA
THISFORM.ORganizar
*****

Pgina 71 de 78

Manual de Visual Fox 8 - 2009


* EDITORIAL
SELECT 2
GO TOP
SCAN
THISFORM.CMBEDITORIAL.AddItem(ALLTRIM(NOM_EDIT))
ENDSCAN
* AUTOR
SELECT 3
GO TOP
SCAN
THISFORM.CMBAUTOR.AddItem(ALLTRIM(NOM_AUTOR))
ENDSCAN
* PAIS
SELECT 4
GO TOP
SCAN
THISFORM.CMBPAIS.AddItem(ALLTRIM(NOM_PAIS))
ENDSCAN
* MATERIA
SELECT 5
GO TOP
SCAN
THISFORM.CMBMATERIA.AddItem(ALLTRIM(NOM_MAT))
ENDSCAN

32.

EVENTO DESTROY DEL FORMULARIO

SELECT 1
USE
SELECT 2
USE
SELECT 3
USE
SELECT 4
USE
SELECT 5
USE
IF USED("TEM") THEN
SELECT TEM
USE
ENDIF

33.

MTODO BUSCAR DEL FORMULARIO

PUBLIC CEDI, CAUT, CPAI, CMAT


CEDI=0
CAUT=0
CPAI=0
CMAT=0
* EDITORIAL
SELECT 2

Pgina 72 de 78

Manual de Visual Fox 8 - 2009


GO TOP
SCAN FOR ALLTRIM(EDI)==ALLTRIM(NOM_EDIT)
CEDI=ID_EDIT
EXIT
ENDSCAN
*****
* AUTOR
SELECT 3
GO TOP
SCAN FOR ALLTRIM(AUT)==ALLTRIM(NOM_AUTOR)
CAUT=ID_AUTOR
EXIT
ENDSCAN
*****
* PAIS
SELECT 4
GO TOP
SCAN FOR ALLTRIM(PAI)==ALLTRIM(NOM_PAIS)
CPAI=ID_PAIS
EXIT
ENDSCAN
*****
* MATERIA
SELECT 5
GO TOP
SCAN FOR ALLTRIM(MAT)==ALLTRIM(NOM_MAT)
CMAT=ID_MAT
EXIT
ENDSCAN

34.

MTODO CONSULTA DEL FORMULARIO

CON=""
CON1="SELECT ID_LIB, NOM_LIB, NOM_EDIT, NOM_AUTOR, NOM_PAIS, NOM_MAT FROM
LIBRO INNER JOIN EDITORIAL "
CON2="
ON
LIBRO.ID_EDIT=EDITORIAL.ID_EDIT
INNER
JOIN
AUTOR
ON
LIBRO.ID_AUTOR=AUTOR.ID_AUTOR "
CON3=" INNER JOIN PAIS ON LIBRO.ID_PAIS=PAIS.ID_PAIS INNER JOIN MATERIA ON
LIBRO.ID_MAT=MATERIA.ID_MAT "
CON4=" ORDER BY ID_LIB ASC INTO CURSOR TEM"
CON=CON1+CON2+CON3+CON4
THISFORM.GRDLIBRO.RecordSource=CON

35.

MTODO DESPROTEGIDO DEL FORMULARIO

THISFORM.TXTNOM.Enabled= .T.
*****
THISFORM.CMBAUTOR.Visible= .T.
THISFORM.CMBEDITORIAL.Visible= .T.
THISFORM.CMBMATERIA.Visible= .T.
THISFORM.CMBPAIS.Visible= .T.
*****

Pgina 73 de 78

Manual de Visual Fox 8 - 2009


THISFORM.GRDLIBRO.Enabled= .F.
*****
THISFORM.CMDNUEVO.Visible= .F.
THISFORM.CMDMODIFICAR.Visible= .F.
THISFORM.CMDELIMINAR.Visible= .F.
THISFORM.CMDGUARDAR.Visible= .T.
THISFORM.CMDCANCELAR.Visible= .T.

36.

MTODO LIMPIAR DEL FORMULARIO

THISFORM.TXTNOM.Value=""
THISFORM.TXTAUTOR.Value=""
THISFORM.TXTEDITORIAL.Value=""
THISFORM.TXTMATERIA.Value=""
THISFORM.TXTPAIS.Value=""
*****
THISFORM.CMBAUTOR.Value=""
THISFORM.CMBEDITORIAL.Value=""
THISFORM.CMBMATERIA.Value=""
THISFORM.CMBPAIS.Value=""

37.

MTODO ORGANIZAR DEL FORMULARIO

THISFORM.GRDLIBRO.COlumn1.Width=44
THISFORM.GRDLIBRO.COlumn2.Width=259
THISFORM.GRDLIBRO.COlumn3.Width=119
THISFORM.GRDLIBRO.COlumn4.Width=115
THISFORM.GRDLIBRO.COlumn5.Width=121
THISFORM.GRDLIBRO.COlumn6.Width=120
*****
THISFORM.GRDLIBRO.COLumn1.Header1.Alignment= 2
THISFORM.GRDLIBRO.COLumn2.Header1.Alignment= 2
THISFORM.GRDLIBRO.COLumn3.Header1.Alignment= 2
THISFORM.GRDLIBRO.COLumn4.Header1.Alignment= 2
THISFORM.GRDLIBRO.COLumn5.Header1.Alignment= 2
THISFORM.GRDLIBRO.COLumn6.Header1.Alignment= 2
*****
THISFORM.GRDLIBRO.COLumn1.Header1.FontBold= .T.
THISFORM.GRDLIBRO.COLumn2.Header1.FontBold= .T.
THISFORM.GRDLIBRO.COLumn3.Header1.FontBold= .T.
THISFORM.GRDLIBRO.COLumn4.Header1.FontBold= .T.
THISFORM.GRDLIBRO.COLumn5.Header1.FontBold= .T.
THISFORM.GRDLIBRO.COLumn6.Header1.FontBold= .T.
*****
THISFORM.GRDLIBRO.COLumn1.Header1.Caption="Cdigo"
THISFORM.GRDLIBRO.COLumn2.Header1.Caption="Nombre"
THISFORM.GRDLIBRO.COLumn3.Header1.Caption="Editorial"
THISFORM.GRDLIBRO.COLumn4.Header1.Caption="Autor"
THISFORM.GRDLIBRO.COLumn5.Header1.Caption="Pas"
THISFORM.GRDLIBRO.COLumn6.Header1.Caption="Materia"

Pgina 74 de 78

Manual de Visual Fox 8 - 2009

38.

MTODO PROTEGIDO DEL FORMULARIO

THISFORM.TXTID.Enabled= .F.
THISFORM.TXTNOM.Enabled= .F.
THISFORM.TXTAUTOR.Enabled= .F.
THISFORM.TXTEDITORIAL.Enabled= .F.
THISFORM.TXTMATERIA.Enabled= .F.
THISFORM.TXTPAIS.Enabled= .F.
*****
THISFORM.GRDLIBRO.Enabled= .T.
*****
THISFORM.CMBAUTOR.Visible= .F.
THISFORM.CMBEDITORIAL.Visible= .F.
THISFORM.CMBMATERIA.Visible= .F.
THISFORM.CMBPAIS.Visible= .F.
*****
THISFORM.CMDNUEVO.Visible= .T.
THISFORM.CMDMODIFICAR.Visible= .T.
THISFORM.CMDELIMINAR.Visible= .T.
THISFORM.CMDGUARDAR.Visible= .F.
THISFORM.CMDCANCELAR.Visible= .F.

39.

EVENTO CLICK DEL COMBO: CMBEDITORIAL

IF NOT EMPTY(THIS.Value) THEN


THISFORM.TXTEDITORIAL.Value=THIS.Value
ENDIF

40.

EVENTO CLICK DEL COMBO: CMBAUTOR

IF NOT EMPTY(THIS.Value) THEN


THISFORM.TXTAUTOR.Value=THIS.Value
ENDIF

41.

EVENTO CLICK DEL COMBO: CMBPAIS

IF NOT EMPTY(THIS.Value) THEN


THISFORM.TXTPAIS.Value=THIS.Value
ENDIF

42.

EVENTO CLICK DEL COMBO: CMBMATERIA

IF NOT EMPTY(THIS.Value) THEN


THISFORM.TXTMATERIA.Value=THIS.Value
ENDIF

43.

EVENTO AFTERROWCOLCHANGE DEL GRID: GRDLIBRO

LPARAMETERS nColIndex
PUBLIC PO, FILA
PO=0

Pgina 75 de 78

Manual de Visual Fox 8 - 2009


FILA=0
IF USED("TEM") THEN
SELECT TEM
FILA=RECNO()
PO=ID_LIB
THISFORM.TXTID.Value=ID_LIB
THISFORM.TXTNOM.Value=ALLTRIM(NOM_LIB)
THISFORM.TXTAUTOR.Value=ALLTRIM(NOM_AUTOR)
THISFORM.TXTEDITORIAL.Value=ALLTRIM(NOM_EDIT)
THISFORM.TXTMATERIA.Value=ALLTRIM(NOM_MAT)
THISFORM.TXTPAIS.Value=ALLTRIM(NOM_PAIS)
ENDIF

44.

EVENTO CLICK DEL BOTON DE COMANDO: CMDNUEVO

THISFORM.DESPROtegido
THISFORM.LImpiar
MAYOR=0
* LIBRO
SELECT 1
GO TOP
SCAN
IF MAYOR<ID_LIB THEN
MAYOR=ID_LIB
ENDIF
ENDSCAN
MAYOR=MAYOR+1
THISFORM.TXTID.Value=MAYOR
THISFORM.TXTNOM.SetFocus
ESTADO=0

45.

EVENTO CLICK DEL BOTON DE COMANDO: CMDMODIFICAR

IF USED("TEM") THEN
SELECT TEM
TOT=0
TOT=RECCOUNT()
IF TOT<=0 OR PO<=0 THEN
MESSAGEBOX("NO EXISTEN ELEMENTOS QUE MODIFICAR",0+48,MEN)
ELSE
THISFORM.DESprotegido
THISFORM.TXTNOM.SetFocus
ESTADO=1
ENDIF
ENDIF

46.

EVENTO CLICK DEL BOTON DE COMANDO: CMDELIMINAR

IF USED("TEM") THEN
SELECT TEM
TOT=0

Pgina 76 de 78

Manual de Visual Fox 8 - 2009


TOT=RECCOUNT()
IF TOT<=0 OR PO<=0 THEN
MESSAGEBOX("SELECCIONE UN ELEMENTO DE LA CUADRCULA",0+48,MEN)
ELSE
IF FILA<=0 OR FILA>TOT THEN
MESSAGEBOX("SELECCIONE
UN
ELEMENTO
DE
LA
CUADRCULA",0+48,MEN)
THISFORM.GRDLIBRO.SetFocus
ELSE
X=0
X=MESSAGEBOX("SEGURO QUE DESEA ELIMINAR EL REGISTRO CON
CDIGO:
"
+ALLTRIM(STR(PO,5,0))+",
CON
EL
NOMBRE
DE
LIBRO:
"+ALLTRIM(NOM_LIB)+"?",4+32,MEN)
IF X=6 THEN
* TEM
SELECT TEM
USE
* LIBRO
SELECT 1
DELETE FROM LIBRO WHERE ID_LIB=PO
PACK
THISFORM.TXTID.Value=0
THISFORM.LIMpiar
THISFORM.CONsulta
THISFORM.ORganizar
THISFORM.GRDLIBRO.SetFocus
MESSAGEBOX("REGISTRO ELIMINADO CON XITO",0+64,MEN)
ENDIF
ENDIF
ENDIF
ELSE
MESSAGEBOX("NO EXISTEN ELEMENTOS QUE ELIMINAR",0+48,MEN)
ENDIF

47.

EVENTO CLICK DEL BOTON DE COMANDO: CMDGUARDAR

IF EMPTY(THISFORM.TXTNOM.Value) THEN
MESSAGEBOX("DIGITE NOMBRE DEL LIBRO",0+16,MEN)
THISFORM.TXTNOM.SetFocus
ELSE
IF EMPTY(THISFORM.TXTEDITORIAL.Value) THEN
MESSAGEBOX("SELECCIONE LA EDITORIAL",0+16,MEN)
THISFORM.CMBEDITORIAL.SetFocus
ELSE
IF EMPTY(THISFORM.TXTAUTOR.Value) THEN
MESSAGEBOX("SELECCIONE EL AUTOR",0+16,MEN)
THISFORM.CMBAUTOR.SetFocus
ELSE
IF EMPTY(THISFORM.TXTPAIS.Value) THEN
MESSAGEBOX("SELECCIONE EL PAS",0+16,MEN)
THISFORM.CMBPAIS.SetFocus
ELSE
IF EMPTY(THISFORM.TXTMATERIA.Value) THEN
MESSAGEBOX("SELECCIONE LA MATERIA",0+16,MEN)
THISFORM.CMBMATERIA.SetFocus
ELSE

Pgina 77 de 78

Manual de Visual Fox 8 - 2009


PUBLIC EDI, AUT, PAI, MAT
COD=0
NOM=""
EDI=""
AUT=""
PAI=""
MAT=""
*****
COD=THISFORM.TXTID.Value
NOM=ALLTRIM(THISFORM.TXTNOM.Value)
EDI=ALLTRIM(THISFORM.TXTEDITORIAL.Value)
AUT=ALLTRIM(THISFORM.TXTAUTOR.Value)
PAI=ALLTRIM(THISFORM.TXTPAIS.Value)
MAT=ALLTRIM(THISFORM.TXTMATERIA.Value)
THISFORM.BUSCAR
IF ESTADO=0 THEN
* LIBRO
SELECT 1
INSERT INTO LIBRO VALUES(COD,NOM,CEDI,CAUT,CPAI,CMAT)
THISFORM.CONsulta
ELSE
* LIBRO
SELECT 1
UPDATE
LIBRO
SET
NOM_LIB=NOM,
ID_EDIT=CEDI,
ID_AUTOR=CAUT,
ID_PAIS=CPAI, ID_MAT=CMAT WHERE ID_LIB=PO
THISFORM.CONsulta
ENDIF
THISFORM.CMDCANCELAR.Click
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF

48.

EVENTO CLICK DEL BOTON DE COMANDO: CMDCANCELAR

THISFORM.PROtegido
THISFORM.TXTID.Value=0

49.

Guardar el formulario (CTRL + S)

50.

Probar su funcionamiento (CTRL + E)

Pgina 78 de 78

Vous aimerez peut-être aussi