Académique Documents
Professionnel Documents
Culture Documents
INSTRUCTORES:
ELVIS MOISS MARTNEZ
JESS CASTILLO
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
INTRODUCCIN
En este manual damos a conocer al estudiante el lenguaje de
programacin Visual Fox Pro
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
Pgina 3 de 78
los
comandos
bsicos
para
la
elaboracin
todos
los
programas
Microsoft
Visual
FoxPro
8.0
Pgina 4 de 78
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
Create
Use
Use
Use TABLA
Abre la tabla
Use Empleado
Abre
la
tabla
en
un
rea
Use sexo in 1
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
Visualiza
los
registros
de
la
Fields
CAMPOS
for CONDICION
Visualiza
indicados
solo
en
la
los
campos
Browse
fields
ape_emp,
tabla
activa
Zap
tabla
Delete
Marca
el
registro
actual
para
Delete
Marca
el
nmero
de
registro
Delete Record 2
Pack
Recall
Quita
Recall
la
marca
de
eliminacin
Quita
del
la
marca
de
eliminacin
de
registro
nmero
Recall record 2
Modifica
la
estructura
de
la
Modify structure
tabla activa
Close all
Close all
de Fox
Quit
Quit
Clear
Clear
? CAMPO/VARIABLE
? ape_emp, nom_emp
Go Top
registro
Go Bottom
Go Bottom
registro
Go NUMERO
Mueve
el
puntero
hacia
el
Go 2
posicin
Skip
Mueve
hacia
el
puntero
adelante
una
(Prximo
Pgina 6 de 78
Mueve
el
puntero
un
NUMERO
Skip 2
Skip -1
? DATE()
BIOS de la computadora
Time()
? TIME()
BIOS de la computadora
var=LEN (VAR/OBJETO)
X = LEN (nom_emp)
que
se
Set
encuentran
abiertas
Set Date BRIT
Configura
el
formato
de
fecha
Desactiva
los
mensajes
de
advertencia de Fox
Create Project
Create Project
Create Database
Create Database
Modify Project
Permite
Visualizar
Modificar
Modify Project
modificar
Modify database
un Proyecto
Modify database
Permite
Visualizar
Public estado
reconocida
desde
cualquier
parte de Fox)
VARIABLE=
Permite
declarar
designando
que
una
variable,
guardar
Nombre=
datos
Permite
declarar
designando
que
una
variable,
guardar
Estado=0
datos
Permite
declarar
designando
que
una
variable,
guardar
Pgina 7 de 78
datos
Precio=0.00
Modify command
de Fox
Modify
Command
PROGRAMA
su posterior modificacin
Do PROGRAMA
Ejecuta un programa
Alltrim(OBJETO/CAMPO)
Elimina
el
espacio
que
se
Nom=alltrim(nom_emp)
/OBJETO)
Mayscula,
que
se
X=Upper(nom_emp)
encuentra
Fec=CTOD(02/02/2006)
Fec=DTOC({02/02/2006})
Verifica
si
un
objeto
se
Empty(THISFORM.TXT.VALUE)
encuentra vaco.
CONCEPTO
Llave
Primaria
(no
SIMBOLOGA
permite
duplicados:
es
LADO
PK
UNO
CK o PK
UNO
FK
MUCHOS
Regular
Llave
Fornea,
permite
tantos
duplicados
Pgina 8 de 78
CONCEPTO
Character
Numeric
Date
Acepta Fechas
crear
registros,
unas
modificar
tablas,
la
agregar,
estructura
de
modificar
una
tabla.
visualizar
Realiza
lo
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.
nom_emp
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
llave.
21.
22.
23.
24.
25.
EN
ESTE
MOMENTO
HACEMOS
UNA
PAUSA
PARA
QUE
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
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.
29.
31.
32.
adicionar
un
registro,
vuelve
presionarla
para
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
Digita USE
36.
37.
Pgina 11 de 78
Mouse
Case
Ups
Teclado
38.
20
30
15
180
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
Notaras
que
te
aparece
una
pequea
ventana,
que
esta
42.
44.
YES (OK).
45.
46.
Digita: SET
47.
FIN DE LA PRCTICA 1
Pgina 12 de 78
Pgina 14 de 78
17. Luego
notaras
que
al
final
de
cada
tablas
Existe
una
en:
ID_EMP
(El
que
esta
en
Negrita)
de
la
tabla
Observa
la
siguiente
imagen,
para
tomar
referencia:
Pgina 15 de 78
Pgina 16 de 78
Pgina 17 de 78
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
Pgina 18 de 78
_______________________________________________________
_______________________________________________________
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
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
PRCTICA
4: SCAN PARTE 1
guardarlos
con
el
MODI
COMM.
No
ocupar
BROW,
DE
CADA
PROGRAMA
COLOCAR
LA
INSTRUCCIN
CLEAR,
PARA
5: SCAN PARTE 2
la
estructura,
funcionamiento
Pgina 21 de 78
un
ejemplo
del
<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
Pgina 22 de 78
los
Empleados
mientras
pertenezca
la
Sucursal
1.
los
Empleados
mientras
pertenezca
la
Sucursal
1.
los
Empleados
mientras
pertenezca
la
Sucursal
1.
JOIN
uniremos
la
segunda
tabla
(tabla
secundaria).
La
Pgina 23 de 78
ocupar
el
GROUP
BY
en
el
FOX
se
debe
digitar
esta
cantidad
as
"Cantidad"
FROM
Pedido
INNER
JOIN
Pgina 24 de 78
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
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
Pgina 26 de 78
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
el
Nombre
de
libro,
PROGRAMA
SE
GUARDAR
COMO:
P7a,
P7b,
P7c
AS
SUCESIVAMENTE.
FIN DE LA PRCTICA 7
TAREA: CAPTULO 2
Investigar
el
funcionamiento,
diferencias
Pgina 27 de 78
estructuras
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
Las
el
objeto,
entre
otros.
Los
Mtodos
son
aquellas
lo
cual
aparecer
lo
siguiente:
La
Barra
que
aparece
al
lado
Pgina 28 de 78
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
Closable
PROPIEDAD
Permite
el
cerrar
un
formulario
con
dar
PROPIEDAD
Especifica
que
si
en
tiempo
de
ejecucin
PROPIEDAD
Icon
PROPIEDAD
MaxButton
PROPIEDAD
MinButton
PROPIEDAD
Picture
PROPIEDAD
Visible
PROPIEDAD
WindowState
PROPIEDAD
Name
PROPIEDAD
Load
EVENTO
Init
EVENTO
Evento
de
Inicio
Pgina 29 de 78
de
un
Formulario.
(Se
EVENTO
Evento
de
cierre
del
Formulario.
(Ocurre
EVENTO
de
un
formulario.
(Se
activa
de
empezar
programar.
Ya
que
indica
como
deben
de
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
etiqueta
es
ocupada
para
colocar
informacin
adentro
del
TIPO
EXPLICACIN
Alignment
PROPIEDAD
AutoSize
PROPIEDAD
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
DblClick
EVENTO
PRCTICA 9: LABEL
1.
abierto
solo
debes
digitar
en
la
ventana
de
3.
4.
Clic en HEIGHT.
5.
Digita: 300
6.
Luego ENTER.
7.
Clic en WIDTH.
8.
Digita: 500
9.
Luego ENTER.
Pgina 32 de 78
posible
que
la
etiqueta
no
quede
centrada
nivel
Pgina 33 de 78
INSTRUCCIN
PasswordChar
TIPO
EXPLICACIN
PROPIEDAD
MaxLength
PROPIEDAD
TabIndex
PROPIEDAD
Orden de Tabulacin
TabStop
PROPIEDAD
Value
PROPIEDAD
ControlSource
PROPIEDAD
InteractiveChange
EVENTO
LostFocus
EVENTO
GotFocus
EVENTO
SetFocus
MTODO
abierto
solo
debes
digitar
en
la
ventana
de
3.
4.
ESTABLECER MODIFICAR A
AUTOSIZE
TRUE
BACKSTYLE
TRUE
CAPTION
Digite su contrasea:
FONTNAME
FONTSIZE
14
Pgina 34 de 78
5.
Presionar: CTRL + S
6.
7.
ESTABLECER MODIFICAR A
NAME
TXTCONTRA
PASSWORDCHAR
FONTSIZE
12
8.
9.
Presionar: CTRL + S
Pgina 35 de 78
crear
botones
para
poder
realizar
un
proceso
ya
TIPO
EXPLICACIN
Cancel
PROPIEDAD
Default
PROPIEDAD
SpecialEffect
PROPIEDAD
MouseIcon
PROPIEDAD
sobre
MousePointer
el
objeto.
debe
estar
La
en
propiedad
de
99-Personalizado
PROPIEDAD
Determina
las
diversas
formas
de
mostrar
el
PROPIEDAD
DownPicture
PROPIEDAD
Determina
la
Habilitado.
imagen
Esta
del
objeto
propiedad
es
cuando
esta
recomendable
abierto
solo
debes
digitar
en
la
ventana
de
3.
4.
ESTABLECER MODIFICAR A
Pgina 36 de 78
CMDENTRAR
CAPTION
INGRESAR
FONTBOLD
TRUE
5.
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.
8.
Luego
presione
una
vez
la
tecla:
ESC,
para
regresar
formulario.
9.
ESTABLECER MODIFICAR A
NAME
CMDSALIR
CAPTION
SALIR
FONTBOLD
TRUE
Pgina 37 de 78
al
digitar
nada
en
la
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
Descripcin
CONFIGURAR
QUE
SOLO
SE
PUEDAN
Pgina 39 de 78
DIGITAR
NMEROS.
DOS
ESTAR
DESHABILITADA
TODO
EL
TIEMPO.
AS
DEBE
QUEDAR
FIN DE LA PRCTICA 12
Pgina 40 de 78
EL
MESSAGEBOX
ESTA FUNCIN DESPLIEGA MENSAJES EN PANTALLA, CON EL SIGUIENTE
FORMATO:
VAR=MESSAGEBOX (MENSAJE, VALOR,TITULO)
LOS TIPOS DE VALORES:
Valor
Botones S, No y Cancelar.
Botones S y No.
16
Signo de alto
32
Signo de interrogacin.
48
Signo de exclamacin.
64
Botn
Aceptar
Cancelar
Anular
Reintentar
Ignorar
No
Pgina 41 de 78
lo puede encontrar
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
Pgina 42 de 78
LBL
EL
TIMER
DEBE
LLAMARSE:
TMR.
LA
PROPIEDAD
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
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
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
Pgina 45 de 78
los
CMD
y con el CAPTION:
SEPARAR. La
FIN DE LA PRCTICA 18
PRCTICA 19: BSQUEDA POR CDIGO (FRMBUSQUEDA)
Realice el siguiente formulario con sus respectivos objetos:
Pgina 46 de 78
Pgina 47 de 78
programas
mantenimiento
que
la
permitan
al
informacin
usuario
el
contenida
en
poder
dar
tablas
que
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
Pgina 48 de 78
CMD,
ejemplo:
CMD_AGREGAR,
CMD_MODIFICAR,
entre
otros)
10.
Seleccione
las
cajas
de
texto
cambien
la
propiedad
DISABLEDFORECOLOR a Negro.
13.
14.
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()
RECCOUNT()
15.
esta
Para
formulario
programacin
(PROTEGIDO,
se
adicionaron
DESPROTEGIDO
VACIO).
17.
Pgina 49 de 78
mtodos
Para
al
poder
18.
19.
20.
Repite
el
paso
18
19
para
digitar
adicionar:
DESPROTEGIDO y VACIO.
21.
Pgina 50 de 78
Pgina 51 de 78
Pgina 52 de 78
UN
FORMULARIO
DE
MANTENIMIENTO
SIMPLE
PARA
LA
TABLA
Pgina 53 de 78
programas
que
tengan
la
capacidad
de
buscar
Descripcin
Verdadero (.T.)
Falso (.F.)
Descripcin
Verdadero (.T.)
Falso (.F.)
Pgina 54 de 78
una
Descripcin
True (.T.)
False (.F.)
Descripcin
Descripcin
Ninguno
Horizontal
Vertical
Pgina 55 de 78
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
un
clic
sobre
el
tercer
encabezado
(Header)
del
grid
con: 45
12.
con: 200
13.
con: 60
14.
con: 60
15.
16.
17.
18.
Ejecuta
formulario,
el
siempre
Observa
como
debe
quedar:
Pgina 56 de 78
UN
FORMULARIO
QUE
MUESTRE
TODOS
LOS
DATOS
DE
LA
TABLA
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
Pgina 57 de 78
10.
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
Pgina 58 de 78
THISFORM.GRid.RecordSource=con
Pgina 59 de 78
(Permite
que
las
Filas
no
puedan
ser
(Permite
que
las
Cabezas
no
puedan
ser
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
a la
DETALLE
PIE DE PGINA
Pgina 60 de 78
Detalle
LABEL
FIELD
LINE
RECTANGLE
ROUNDED
RECTANGLE
Pgina 61 de 78
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
11.
mejor la informacin.
12.
13.
15.
Clic en FONT.
16.
17.
Pgina 63 de 78
18.
abajo del
ttulo.
19.
20.
seleccionamos: DATETIME()
21.
22.
23.
24.
25.
26.
27.
Clic en EXPRESION.
28.
29.
30.
31.
32.
Clic en EXPRESION.
Pgina 65 de 78
33.
34.
35.
36.
37.
Pgina 1 de 3
38.
39.
40.
Pgina 66 de 78
41.
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
Pgina 67 de 78
continuacin
se
disear
un
formulario
de
mantenimiento
ESTABLECER MODIFICAR A
NAME
FRMLIBRO
CAPTION
MANTENIMIENTO DE LIBROS
AUTOCENTER
TRUE
BACKCOLOR
A TU GUSTO
MAXBUTTON
FALSE
Pgina 68 de 78
ESTABLECER MODIFICAR A
ENABLED
FALSE
DISABLEDFORECOLOR
NEGRO (0,0,0)
FONTBOLD
TRUE
FONTNAME
A TU GUSTO
FONTSIZE
A TU GUSTO
10.
11.
PROPIEDAD
ESTABLECER MODIFICAR A
VISIBLE
FALSE
DISABLEDFORECOLOR
NEGRO (0,0,0)
FONTBOLD
TRUE
Pgina 69 de 78
A TU GUSTO
FONTSIZE
A TU GUSTO
STYLE
2 DROPDOWN LIST
12.
13.
14.
15.
16.
17.
18.
19.
20.
caractersticas:
21.
22.
Segundo
botn,
el
NAME
de:
CMDMODIFICAR
CAPTION
de:
MODIFICAR
23.
24.
25.
26.
27.
31.
THISFORM.TXTID.Value=0
THISFORM.LIMpiar
THISFORM.PROtegido
THISFORM.CONSULTA
THISFORM.ORganizar
*****
Pgina 71 de 78
32.
SELECT 1
USE
SELECT 2
USE
SELECT 3
USE
SELECT 4
USE
SELECT 5
USE
IF USED("TEM") THEN
SELECT TEM
USE
ENDIF
33.
Pgina 72 de 78
34.
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.
THISFORM.TXTNOM.Enabled= .T.
*****
THISFORM.CMBAUTOR.Visible= .T.
THISFORM.CMBEDITORIAL.Visible= .T.
THISFORM.CMBMATERIA.Visible= .T.
THISFORM.CMBPAIS.Visible= .T.
*****
Pgina 73 de 78
36.
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.
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
38.
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.
40.
41.
42.
43.
LPARAMETERS nColIndex
PUBLIC PO, FILA
PO=0
Pgina 75 de 78
44.
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.
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.
IF USED("TEM") THEN
SELECT TEM
TOT=0
Pgina 76 de 78
47.
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
48.
THISFORM.PROtegido
THISFORM.TXTID.Value=0
49.
50.
Pgina 78 de 78