Tutorial FoxPro 9
Tutorial FoxPro 9
Tutorial FoxPro 9
INTRODUCCIN
Microsoft Visual FoxPro, es un sistema manejador de bases de datos relacionales, que permite
manipular grandes volmenes de informacin de una manera bastante rpida y sencilla, adems brinda
las herramientas necesarias para el desarrollo de aplicaciones bajo el entorno operativo Windows,
utilizando la metodologa de la Programacin Orientada a Objetos (POO).
Aparte del acceso a tablas en formato nativo de Visual FoxPro, se puede acceder virtualmente a
cualquier
fuente
de
datos
cuyo
acceso
se
pueda
hacer
travs
de
ODBC
(Open
Es uno de los gestores de base de datos relacionales ms rpido y flexible del mercado
Visual FoxPro es un lenguaje de programacin que, con un lenguaje sencillo, simplifica el manejo de
datos para que los usuarios puedan construir rpidamente sus aplicaciones
Entidad.
Puede ser una persona, objeto o suceso, por ejemplo una relacin de pacientes,
Base de Datos.
registros, de forma que sean accesibles por mltiples aplicaciones. Los registros para una misma
entidad se guardan en Tablas, las tablas referidas a un mismo propsito constituyen la Base de
Datos. Por ejemplo la base de datos de matrcula interrelaciona las tablas de estudiantes, cursos
y profesores.
Tabla de Datos. Es una coleccin integrada de datos pertenecientes a una misma entidad es
decir una tabla de datos de alumnos, solo deber de guardar datos de alumnos. Una tabla de
datos de profesores solo deber de guardar datos de profesores.
Registros. Conjunto de datos pertenecientes a una misma entidad, la ficha o registro consta de
campos, cada campo tiene una longitud definida, por lo tanto los registros son de longitud
definida.
Campo.
de notas, etc.
Dato. Elemento individual de un campo, se identifica por un nombre y tiene un valor especfico.
Los datos pueden abarcar subdatos, como es el caso de la fecha.
Llave de registro. Se usa con fines de identificacin, representa un campo que nos permite
diferenciar un registro de otro, cuyo valor sea nico para el registro, puede ser el nmero de
cdigo de un alumno, nmero de DNI de una persona, etc.
ENTORNO DE DESARROLLO
El entorno de desarrollo son las partes visuales de las que est compuesto todo lenguaje de
programacin visual, como lo son Visual FoxPro, Visual Basic, etc., en la siguiente figura se muestra la
pantalla de inicio del Visual FoxPro.
Barra de Mens
Barra de Herramientas
Ventana de Comandos
Ventana de Comandos
Barra de Mens
Por medio de esta barra de mens podremos acceder a todas las opciones que Visual FoxPro nos
ofrece como Abrir o Crear un Nuevo Proyecto, una Base de Datos, un Reporte, etc.
Barra de Herramientas
Por medio de esta barra de Herramientas podremos acceder a todas las opciones que ms se utilizan,
sin necesidad de ir a los mens a buscar sus respectivas opciones, esto es para tener un acceso ms
rpido.
ADMINISTRADOR DE PROYECTOS
El Administrador de Proyectos permite compilar la aplicacin completa, pero en la fase de desarrollo
de la aplicacin. Adems facilita el diseo, la modificacin y la ejecucin de los componentes
individuales de su aplicacin.
Qu es un Proyecto?
Un proyecto es una coleccin de archivos, datos, documentos y objetos de Visual FoxPro, que se
guarda como un archivo con extensin .PJX. Al archivar el Administrador de Proyectos, aparece la
opcin Proyecto en la barra de men de Visual FoxPro.
Crear un Proyecto
Para crear un nuevo proyecto donde se almacenaran las tablas, reporte, mens, etc., hay que ir al
men Archivo => Nuevo, como muestra la siguiente figura.
Seleccionar Proyecto y dar clic en Nuevo Archivo y entonces aparecer la siguiente pantalla.
Crear un Directorio con el nombre Contabilidad donde se guardara el proyecto.
Crear Directorio
Guardar Proyecto
Sintaxis
CREATE DATABASE [Enter]
Luego, escribir el nombreque se desea dar a la basede datos. Por defecto, elnombre es datos1.dbc,
peropara el proyecto a realizarse llamar Matricula_Alumnos.
A continuacin, hacer clicen guardar y la base dedatos ya est creada yactiva.
Realice un clic con el botn contrario sobre la ventana de base de datos y seleccione
la opcin Nueva Tabla, tal como se muestra a continuacin.
10
Nombre de la Tabla
11
Tipo de
datos
Definicin de
entrada de datos
Definicin
de campos
Definicin de reglas de
validacin de datos
Definicin de campos:Al igual que las versiones anteriores, la definicin de campos es igual. Se
introduce el nombre del campo (nombre), el tipo de datos que soportar (tipo) y el tamao.
Definicin de mostrar:
Formato: Es el formato de salida del campo, ejemplo si fuera numrico 9.999.99.
Mscara de entrada: Al igual que el format, se utiliza para la entrada de datos.
Titulo: Descripcin ms precisa del campo, es de utilidad al disear los formularios.
Definicin de reglas de validacin a nivel de campo:son eventos que se ejecutan a nivel de campo.
Ejemplo una validacin de un campo que solo acepte nmeros positivos. (id> 0).
12
Regla: Es la regla de validacin, ejemplo: id > 0, si queremos que acepto valores positivos.
Mensaje: Es el mensaje personalizado que queremos que aparezca en pantalla a la hora de infringir la
regla de validacin del campo. Ejemplo: Slo se aceptan nmeros positivos.
Valor predeterminado: valor por defecto del campo.
Luego de hacer la definicin de los campos, pasamos a la definicin de ndices de la tabla, que ser
muy importante a la hora de crear las relaciones entre las tablas.
Nombre del
ndice
Tipo del
ndice
13
Tipos de ndices:
En una tabla de Base de Datos existen 4 tipos de ndices, mientras que en las tablas libres slo
se dispone de los tres ltimos.
1
Candidato: exactamente igual al anterior. Su sentido reside en que por tabla slo se puede
crear un ndice principal, todos los dems sern candidatos, es por eso que se convierten en
candidatos a ser elegidos ndice principal de la tabla.
Normal: es el ndice clsico. Permite cualquier valor en la clave, est repetido o no. Es el
ms utilizado.
Ejercicios de laboratorio:
Crear las siguiente tablas de acuerdo a la siguiente estructura:
Tabla Alumnos.
Nombre
Tipo
Ancho
Cod_alumno
Nombres
Apellidos
Dni
Sexo
Telefono
FNacimiento
Direccion
Email
Numrico
Carcter
Carcter
Numrico
Carcter
Carcter
Fecha
Carcter
Carcter
10
40
60
8
1
10
8
80
80
Luego de escribir todo la estructura de la tabla, pulse las teclas Ctrl. + W, o en todo caso
seleccione el botn Aceptar.
14
TablaDocentes.
Nombre
Tipo
Ancho
Cod_docente
Nombres
Apellidos
Dni
Sexo
Telefono
FNacimiento
Especialidad
Direccin
Email
Numrico
Carcter
Carcter
Numrico
Carcter
Carcter
Fecha
Carcter
Carcter
Carcter
5
40
60
8
1
10
8
60
80
80
Luego de escribir todo la estructura de la tabla, pulse las teclas Ctrl. + W, o en todo caso
seleccione el botn Aceptar.
TablaCursos.
Nombre
Tipo
Ancho
Cod_curso
Nombre_curso
Escuela
Cod_docente
Ciclo
Ao_Academico
Periodo
Horas_semanales
Numrico
Carcter
Carcter
Numrico
Numrico
Numrico
Numrico
Numrico
2
60
60
5
1
4
1
2
Nombre
Tipo
Ancho
Cod_alumno
Cod_curso
Promedio_practicas
Examen_parcial
Examen_final
Promedio_Final
Condicion
Numrico
Numrico
Numrico
Numrico
Numrico
Numrico
Carcter
10
2
2
2
2
2
40
TablaNotas.
0
0
0
0
15
16
Uso de lasinstruccionesModify Project, Modify DataBase, Use, Append, List, Display, Edit.
17
Escriba las siguientes instrucciones en la ventana de comandos, para abrir una tabla de
datos.
Modify Project Matricula<ENTER> (Activa el proyectoindicado)
Use Alumnos <ENTER> (Activa la tabla Alumnos)
Browse (Visualiza los registros de la tabla Alumnos)
Estos son los registros que se encuentran dentro de la tabla de datos Alumnos.
Ejercicios
Ejemplos:
18
Ejercicios
List - Display. Lista los registros de la tabla activa. Se podr utilizar cualquiera de las dos
instrucciones.
La diferencia entre las dos es: la instruccin List, lista de una manera rpida, mientras que la
instruccin Displaylo hace pantalla por pantalla, es decir en forma pausada.
Ejemplos
19
Edit / Browse. Abre la ventana Examinar y muestra los registros de la tabla en uso o
seleccionada.
Puede utilizar cualquiera de las dos instrucciones. La diferencia las notar en los resultados que
obtenga.
20
Sintaxis:
BROWSE
[FIELDS ListaCampos]
[FONT cNombreFuente [, nTamaoFuente]]
[FOR lExpresin1 [REST]]
[NOAPPEND]
[NODELETE]
[NOEDIT | NOMODIFY]
[NOLGRID] [NORGRID]
[TITLE cTextoTtulo]
FIELDS ListaCampos
Especifica los campos que aparecern en la ventana Examinar. Los campos se muestran en el
orden especificado en ListaCampos. En la lista de campos puede incluir campos de otras
tablas relacionadas. Cuando incluya un campo de una tabla relacionada, incluya delante del
nombre de campo su alias de tabla y un punto.
Si omite FIELDS, se mostrarn todos los campos de la tabla en el orden en que aparecen en
la estructura de la tabla.
FONT cNombreFuente [, nTamaoFuente]
Especifica la fuente y el tamao de fuente de la ventana Examinar. La expresin de
caracteres cNombreFuente es el nombre de la fuente y la expresin numrica
NOAPPEND
21
Impide que el usuario agregue registros a la tabla al presionar CTRL+Y o al elegir la opcin
Anexar registro del men Tabla.
NODELETE
Impide marcar registros para su eliminacin desde una ventana Examinar. De forma
predeterminada, un registro se puede marcar para su eliminacin al presionar CTRL+T, al
elegir la opcin Alternar eliminacin del men Tabla de Visual FoxPro
NOEDIT | NOMODIFY
Impide a un usuario modificar la tabla. NOEDIT y NOMODIFY son idnticas. Si incluye
cualquiera de las dos clusulas, podr examinar o buscar en la tabla, pero no modificarla. Sin
embargo, s es posible anexar y eliminar registros.
NOLGRID
Quita las lneas de cuadrcula del campo en la particin izquierda de la ventana Examinar.
NORGRID
Quita las lneas de cuadrcula del campo en la particin derecha de la ventana Examinar
TITLE cTextoTtulo
Invalida el nombre o el alias predeterminado de tabla que aparece en la barra de ttulo de la
ventana Examinar y muestra en su lugar el ttulo especificado mediante cTextoTtulo. De lo
contrario, el nombre o el alias de la tabla que se est examinando aparecer en la barra de
ttulo.
22
CONSULTAS DE DATOS
Hablar de consultas es hablar de SQL. No son ms que asistentes para generar comandos SELECT
que permiten extraer informacin de una o varias tablas.
Crear una consulta, la cual permita consultar los datos de la tabla Datos de alumnos.
Ir a la ficha Datos y seleccionar Consultas
Seleccionar Nuevo
23
En la ficha campos seleccione los campos de desee que conformen la consulta de datos :
En este caso, seleccione uno en uno o pulse el botn Agregar todos.
24
Una vez, seleccionado los campos para la consulta de datos, grabe la consulta, realizando un
clic sobre el siguiente icono
consulta presionando en forma simultnea las teclas Ctrl. + Q, El resultado deber de ser
la siguiente ventana.
Si trata de modificar los registros, no podr hacerlo, porque se trata de una consulta de
datos.
Ejercicios
25
Cdigo ms compacto.
26
Controles : Etiquetas
(Label)
Controles : Cuadros de
Texto (TextBox)
Controles : Cuadros de
Lista (ListBox)
Controles: Listas
desplegables (ComboBox)
Controles : Casillas de
Verificacin (CheckBox)
Controles : Botones de
Comando
(CommandButton)
Formulario
Una clase contenedora. Una coleccin de una o ms pginas que se comporta como una ventana o un
cuadro de dilogo estndar. Un formulario contiene controles para mostrar y modificar datos. Los
formularios pueden estar contenidos dentro de un conjunto de formularios.
Crear un formulario:
27
Una vez, creado el formulario, grabe el formulario realizando un clic sobre el siguiente icono
(Grabar).
Propiedad
Un atributo de un control, campo u objeto de base de datos que se establece para definir una de las
caractersticas del objeto o un aspecto de su comportamiento. Por ejemplo, la propiedad Visible
afecta a la visibilidad en tiempo de ejecucin de un control. Puede cambiar los valores de las
propiedades de objeto mediante la ventana Propiedades.
28
Mtodo
Una accin que un objeto es capaz de realizar. Por ejemplo, los cuadros de lista tienen mtodos
llamados AddItem, RemoveItem y Clear para mantener el contenido de las listas.
Evento
Una accin, reconocida por un objeto, para la cual puede escribir cdigo de respuesta. Los eventos
pueden estar generados por una accin del usuario, como hacer clic con el mouse o presionar una
tecla, por cdigo de programa o por el sistema, como ocurre con los cronmetros
29
Sintaxis
Label
Comentarios
Un control Label es un control grfico que muestra texto que no puede cambiarse directamente. Sin
embargo, puesto que un control Label tiene un amplio conjunto de propiedades, eventos y mtodos en
comn con otros controles, puede responder a eventos y cambiarse dinmicamente en tiempo de
ejecucin
Propiedades.
Caption. Especifica el texto que se muestra en el ttulo de un objeto. Est disponible en tiempo
de diseo y en tiempo de ejecucin.
BackColor / ForeColor. Especifica el color del fondo y de primer plano empleado para mostrar
texto y grficos en un objeto. Est disponible en tiempo de diseo y en tiempo de ejecucin
FontName. Especifica el nombre de la fuente empleada para mostrar texto. Est disponible en
tiempo de diseo y en tiempo de ejecucin.
FontSize. Especifica el tamao de fuente para el texto mostrado con un objeto. Est disponible
en tiempo de diseo y en tiempo de ejecucin.
(TextBox)
30
edicin de Visual FoxPro, como cortar, copiar y pegar, estn disponibles en el cuadro de texto. Si se
utiliza el cuadro de texto para modificar un valor de fecha o de fecha y hora, y se ha seleccionado
todo el valor, presione + o - si desea aumentar o disminuir el valor para un da.
Propiedades.
Name. Especifica el nombre del objeto al que se hace referencia en el cdigo. Disponible en
tiempo de diseo; de lectura-escritura en tiempo de ejecucin.
Valor
Descripcin
Convierte los caracteres alfabticos en maysculas. Utilcelo slo con datos del
tipo Character.
31
Valor
Descripcin
$$
Muestra un smbolo de moneda flotante que siempre aparece junto a los dgitos del
Spinner o TextBox.
*
32
Alignment. Especifica la alineacin del texto asociado a un control. Est disponible en tiempo
de diseo y en tiempo de ejecucin. (0: Izquierda, 1: Derecha)
Ejercicios de Aplicacin.
La siguiente Aplicacin, lee los siguientes datos: Nombre de la Empresa, RUC, Direccin,
Telfono, correo electrnico y pgina web.
Control
Form1
Label1
Label2
Label3
Label4
Label5
Label6
Propiedad
Caption
Caption
FontBold
Caption
FontBold
Caption
FontBold
Caption
FontBold
Caption
FontBold
Caption
FontBold
Valor
Ingrese los datos de la
Empresa
NOMBRE DE LA EMPRESA
.T. Verdadero
DIRECCION
.T. Verdadero
TELEFONO
.T. Verdadero
R.U.C.
.T. Verdadero
CORREO ELECTRONICO
.T. Verdadero
PAGINA WEB
.T. Verdadero
Control Propiedad
Text1 ForeColor
Format
Text2 ForeColor
Format
Text3 ForeColor
InputMask
Text4 ForeColor
InputMask
Text5 ForeColor
Text6 ForeColor
Valor
Seleccione Azul
!
Seleccione Azul
!
Seleccione Azul
999999
Seleccione Azul
999999999
Seleccione Azul
Seleccione Azul
33
Nota
Cuando ingrese Telfono y Ruc, solo podr ingresar nmeros, no permite ingresar letras.
En el caso de Nombre de la Empresa y Direccin, todo lo que escribe lo convierte a letras
maysculas
Luego de disear el formulario, Grabe presionando las teclas CTRL + W, para ejecutar el
34
Cuando ejecute el formulario los controles Text11 y Text12, debern de estar Desactivados
Hacer referencia a un objeto de un formulario
Thisform. THISFORM proporciona una forma muy conveniente de hacer referencia al formulario
actual mientras escribe programas que controlan eventos en un formulario. Por ejemplo, este
programa Click Event para un botn de comando establece que el ttulo del botn sea la hora actual.
thisform.command1.caption = time()
La utilizacin de THISFORM en lugar de hacer referencia explcitamente al formulario actual
mediante su nombre (por ejemplo, form1.command1.caption) hace que el cdigo de programa sea
porttil entre formularios.
THISFORM permite hacer referencia a un objeto en el formulario o en la propiedad sin tener que
utilizar varias propiedades Parent.
Sintaxis
THISFORM.NombrePropiedad | NombreObjeto
Argumentos
(CommandButton)
. Crea un botn de comando sencillo. Los botones de comando
suelen emplearse para iniciar un evento que lleva a cabo una accin, como cerrar un formulario,
moverse a otro registro, imprimir un informe, etc. Utilice el control CommandGroup para crear un
conjunto de botones de comando que pueden manipularse individualmente o como grupo.
Utilice la propiedad Caption para especificar el texto que aparece en un botn de comando. Utilice la
propiedad Picture para especificar una imagen para un botn de comando.
Propiedades:
Name. Especifica el nombre del objeto al que se hace referencia en el cdigo. Disponible en
tiempo de diseo; de lectura-escritura en tiempo de ejecucin.
35
Eventos:
Clic. El evento Clic se produce cuando el usuario:
Ejercicios de Aplicacin.
36
Crear una aplicacin que lea dos nmeros y muestre el promedio de los dos nmeros ingresados.
Disee el formulario
de tal forma que
quede igual que el
siguiente formulario.
Propiedad
Caption
Caption
FontBold
Label2
Caption
FontBold
Label3
Caption
FontBold
Command1 Caption
Name
Command1 Caption
Name
Command1 Caption
Name
Valor
Calcular el promedio de dos
nmeros
Ingrese el primer Valor
.T. Verdadero
Ingrese el segundo Valor
.T. Verdadero
El Promedio Obtenido es
.T. Verdadero
Calcular
CmdCalcular
Otro
CmdOtro
Cerrar
CmdCerrar
Control
Text1
Text2
Text3
Propiedad
Name
ForeColor
Format
Value
Name
ForeColor
Format
Value
Name
ForeColor
Format
Value
Enabled
Valor
TxtV1
Seleccione Azul
99
0
TxtV2
Seleccione Azul
99
0
TxtRe
Seleccione Azul
99
0
.F. False
37
Realice doble clic sobre el botn Calcular, para activar la ventana de cdigo, en donde se tendr
que digitar el cdigo respectivo del botn.
Realice doble clic sobre el botn Calcular, para activar la ventana de cdigo, en donde se tendr
que digitar el cdigo respectivo del botn.
Desarrolle una aplicacin que permita ingresar los nombres del trabajador, las horas
normales que ha trabajado, el pago por cada hora normal y por cada hora extra. Al hacer un clic
38
en el botn Calcular, se debe calcular y mostrar el total por horas normales, el total por horas
extras, el sub total, un descuento del 10% del sub total y el total que se le debe de pagar.
Solucin: En la venta de comandos escriba la siguiente instruccin.
Establecer la:
Propiedad
Value = 0
Propiedad
Enabled = .F. False
39
Botn CmdOtro
Botn CmdCerrar
Ejecute el formulario e ingrese los datos respectivos, luego pulse el botn Calcular
40
Las estructuras de control le permiten controlar el flujo de ejecucin del programa. Tenemos dos
tipos de estructuras de control:
Estructuras de decisin
Estructuras de bucle
Estructuras de Decisin
Los procedimientos de Visual Basic pueden probar condiciones y, dependiendo de los resultados,
realizar diferentes operaciones. Entre las estructuras de decisin que acepta Visual FoxPro se
incluyen las siguientes:
If <Condicin> End if
Use la estructura If
If condicin
Sentencias
End If
Condicin normalmente es una comparacin, pero puede ser cualquier expresin que d como
resultado un valor numrico. Visual Basic interpreta este valor como True o False; un valor
numrico cero es False y se considera True cualquier valor numrico distinto de cero. Si
condicin es True, Visual Basic ejecuta todas las sentencias que siguen a la palabra clave Then.
Puede utilizar sintaxis de una lnea o de varias lneas para ejecutar una sentencia basada en una
condicin, los siguientes dos ejemplos son equivalentes:
41
Utilice un bloque If <Condicin> Else ... End If para definir varios bloques de sentencias, uno
de los cuales se ejecutar:
If condicin
bloque de sentencias
Else
bloque de sentencias
End If
Visual Basic evala primero la condicin. Si es True, ejecutar las instrucciones que se
encuentran dentro de If y si es False, ejecutar las instrucciones que se encuentran a
continuacin de Else y antes de End If
Ejemplos prcticos
Desarrollo una aplicacin que permita ingresar dos valores cualesquiera, al hacer un clic sobre
el botn Comparar, deber de mostrar un mensaje indicando si son iguales o son diferentes.
42
43
Comandos
[CASE lExpresin2
Comandos
...
CASE lExpresinN
Comandos]
[OTHERWISE
Comandos]
ENDCASE
Argumentos
CASE lExpresin1 Comandos ...
Cuando se encuentre la primera expresin CASE verdadera (.T.), se ejecutar el conjunto de
comandos que haya a continuacin. La ejecucin del conjunto de comandos continuar hasta
encontrar la siguiente expresin CASE o ENDCASE. La ejecucin se reanuda en el comando que
hay inmediatamente a continuacin de ENDCASE.
44
Si una expresin CASE es falsa (.F.), se pasar por alto el conjunto de comandos que le siguen
hasta la siguiente clusula CASE.
Solamente se ejecuta un conjunto de comandos, que ser aqul cuya expresin CASE d como
resultado verdadero (.T.). Se pasan por alto todas las expresiones CASE posteriores que sean
verdaderas (.T.).
OTHERWISE Comandos
Si todas las expresiones CASE dan como resultado falso (.F.), OTHERWISE determinar si se
ejecuta otro conjunto de comandos adicional.
Ejercicios de Aplicacin
Realice una aplicacin en donde se ingrese un nmero de un mes y muestre como resultado el
nombre del mes ingresado.
45
, ingrese un nmero
46
Realice una aplicacin en donde se ingrese una fecha cualesquiera y luego de pulsar el botn
Aceptar, deber de mostrar el nombre del da correspondiente.
El nombre del formulario es: Averiguar_Dia_C1N
El diseo del formulario es el siguiente:
47
Realice una aplicacin que permita calcular el promedio del alumno y adems calcular la
condicin del alumno en forma cualitativa de acuerdo al promedio obtenido.
Si el alumno obtiene un promedio que este entre:
48
Ejercicios Propuestos:
Realice una aplicacin que permita calcular el Haber de un trabajador de acuerdo a la
categora ingresada adems realizar los descuentos respectivos.
Si se ingresa la categora:
49
50
La Funcin MESSAGEBOX( )
Muestra un cuadro de dilogo definido por el usuario
Argumentos
cTextoMensaje
Especifica el texto que aparece en el cuadro de dilogo. Utilice un retorno de carro (CHR(13)) en
cTextoMensaje para mover una parte del mensaje a la siguiente lnea del cuadro de dilogo. El alto y
el ancho del cuadro de dilogo aumentan lo que sea necesario para que quepa cTextoMensaje.
nTipoCuadroDilogo
Especifica los botones y los iconos que aparecen en el cuadro de dilogo, el botn elegido inicialmente
cuando se muestra y el comportamiento del mismo.
En las tablas siguientes, los valores 0 a 5 del botn del cuadro de dilogo especifican los botones que
aparecen en el mismo. Los valores de icono 16, 32, 48 y 64 especifican el icono que aparece en el
cuadro de dilogo. Los valores predeterminados 0, 256 y 512 especifican qu botn del cuadro de
dilogo es el botn predeterminado. El botn predeterminado se selecciona cuando aparece el cuadro
de dilogo.
Omitir nTipoCuadroDilogo es lo mismo que especificar un valor de 0 para nTipoCuadroDilogo.
Valor
0
Slo botn Aceptar.
1
Botones S, No y Cancelar.
51
Botones S y No.
Valor
Icono
16
Punto.
32
Signo de interrogacin.
48
Signo de exclamacin.
64
Valor
Botn predeterminado
Primer botn.
256
Segundo botn.
512
Tercer botn.
nTipoCuadroDilogo puede ser la suma de hasta tres valores, uno de cada una de las tablas
anteriores. Por ejemplo, si nTipoCuadroDilogo es 290 (2+32+256), el cuadro de dilogo especificado
tendr las siguientes caractersticas:
cTextoBarraTtulo
Especifica el texto que aparece en la barra de ttulo del cuadro de dilogo. Si omite
52
Valor devuelto
1
Botn
Aceptar
2
Cancelar
3
Anular
Reintentar
Ignorar
No
Ejercicios de Aplicacin.
El siguiente ejemplo muestra un cuadro de mensaje al pulsar el botn Cerrar, preguntado si
realmente se desea salir de la aplicacin.
El diseo del formulario es el siguiente.
53
Cdigo:
Res=MessageBox("Modelo
0,"Ttulo")
",
Cdigo:
Res=MessageBox("Muestra 2 botones", 1+16,"Ttulo")
If Res=1
MessageBox("Selecciono Aceptar")
Else
Cdigo:
Res=MessageBox("Muestra 3 botones",2+48,"Ttulo")
Do Case
Case Res=3
MessageBox("Selecciono Anular")
Case Res=4
Nota: Para mostrar otro tipo de cuadros de mensaje, solo combine los valores mostrados de los los
cuadros definidos en la funcin MessageBox.
54
(Option Group)
Ejercicios de Aplicacin.
El siguiente ejemplo permite calcular el haber de un trabajador de acuerdo a
su categora.
Primero se tendr que seleccionar la categora del trabajador, luego pulsar el botn Aceptar
para mostrar su haber correspondiente.
Solucin:
1.
2.
55
3.
4.
56
Al final el diseo
del
formulario
tendr que quedar
igual al siguiente
modelo.
5.
57
Desarrollar una aplicacin que permita calcular las boletas de pagos de los
Solucin:
1.
58
2.
(CheckBox)
estados, como verdadero (.T.) y falso (.F.), o s y no. Cuando una condicin es verdadera, aparece
una X en la casilla de verificacin..
Utilice la propiedad Caption para especificar el texto que aparece junto a una casilla de
verificacin. Utilice la propiedad Picture para especificar una imagen para una casilla de
verificacin.
Propiedades.
59
Valor
Descripcin
(Predeterminado) Desactivada.
Activada.
Ejercicios de Aplicacin.
Desarrollar una aplicacin que permita calcular el sueldo neto de un trabajador de
una empresa, se debe ingresar el cdigo del trabajador, nombres y apellidos y seleccionar la
categora.
Si la categora es :
Gerente
S/. 1500
Contador
S/. 1200
Secretaria
S/. 1000
Solucin:
1.
2. Disee el formulario de tal forma que el diseo quede igual al siguiente formulario.
60
Nota
Los Controles TxtHaber,
TxtAfp, TxtEssalud, TxtCts,
TxtTotalD y TxtNeto tendrn
que estar desactivados y ser del
tipo numrico.
61
Si descontar est
activado, se calcularan
todo los descuentos
respectivos y si se
encuentra desactivados
todo los descuentos sern
Ejercicios propuestos.
62
(ComboBox)
Cuando se selecciona un control ComboBox, se abre y muestra una lista de elementos en la que se
puede elegir uno o mas elementos de la lista.
(ListBox)
Un cuadro de lista muestra una lista de elementos en la que es posible elegir uno o ms
elementos. Un cuadro de lista es similar a un cuadro combinado; sin embargo, un cuadro
combinado muestra inicialmente un solo elemento.
ListCount.
ListBox.
63
Control.RemoveItem(nndice)
Objeto.Clear
Ejemplos de aplicacin.
Realice un formulario que permita registrar nombres de cursos dentro de una lista o eliminar
los cursos registrados dentro de la lista.
Solucin:
2. Abra un nuevo formulario. (ponga el nombre que ud., desee)
3. Disee el formulario de tal forma que el diseo quede igual al siguiente formulario.
64
Realice un formulario que permita calcular el total a pagar por una lista de productos .
Los nombres de productos tendr que ser llenados de manera automtica al momento de
ejecutar el formulario.
Primero se tendr que seleccionar un producto y pulsar el botn Aceptar, seguidamente
ingresar la cantidad, el precio unitario y pulsar el botn Aceptar.
Solucin:
1.
2.
65
TxtPros y TxtTotal,
tendrn que estar
desactivados y ser
de tipo numrico
66
Estructuras de decisin
Estructuras de bucle
67
Estructuras de Bucle
For ... EndFor Ejecuta un grupo de comandos un nmero concreto de veces. Los comandos
de Visual FoxPro que hay a continuacin de FOR se ejecutan hasta que se llega a ENDFOR o
NEXT. Entonces se incrementa el contador NombreVariableMemoria con el valor de
nValorFinal, volvern a ejecutarse los comandos que siguen a la clusula FOR. Si el contador es
mayor que el valor final nValorFinal, la ejecucin del programa bifurcar fuera del bucle
FOR ... ENDFOR y continuar con el primer comando a continuacin de ENDFOR o NEXT.
Sintaxis
FOR NombreVariableMemoria = nValorInicial TO nValorFinal [STEP nIncremento]
Comandos
ENDFOR | NEXT
Argumentos
NombreVariableMemoria
Especifica una variable de memoria o un elemento de matriz que acta como contador. No es
necesario que exista la variable de memoria o elemento de matriz antes de ejecutar
FOR ... ENDFOR.
nValorInicial TO nValorFinal
nValorInicial es el valor inicial del contador y; nValorFinal es el valor final del contador.
STEP nIncremento
68
Comandos
Especifica los comandos de Visual FoxPro que se van a ejecutar. Comandos puede incluir
cualquier nmero de comandos.
Ejercicios de Aplicacin
Desarrollar una aplicacin que permita llenar los 10 primeros nmeros naturales
(Ascendente) dentro de un cuadro de lista.
El diseo del formulario es el siguiente:
Ejecute el formulario y pulse el botn Llenar, automticamente la lista deber de llenarse con
los 10 primeros nmeros naturales.
69
Desarrollar una aplicacin que permita llenar los 10 primeros nmeros naturales
(Descendente) dentro de un cuadro de lista.
El diseo del formulario es igual al formulario del ejercicio anterior.
Desarrollar una aplicacin que permita llenar los 10 primeros nmeros pares
(Ascendente) dentro de un cuadro de lista.
El diseo del formulario es igual al formulario del ejercicio anterior.
70
Ejecute el formulario, ingrese los valores a lista (Ingrese un numero y pulse Agregar), luego
de agregar los nmeros a lista pulse el botn Sumar.
71
Ejercicios Propuestos.
Desarrollar una aplicacin que permita llenar a una lista los n primeros nmeros
(Ascendente) dentro de un cuadro de lista.
Desarrollar una aplicacin que permita llenar a una lista los n primeros nmeros pares
dentro de un cuadro de lista.
Empleado
72
: 2000.00
Secretaria
: 1500.00
Contador
: 1350.50
73
74
75
Crearemos un mtodo llamado Calcular, el cual se encargar de calcular cada vez que se
selecciona una Categora o realiza un descuento.
Ingrese a Formulario de la barra de men y seleccione la opcin Modificar propiedades y
mtodos, en la ventana que se activa seleccione el botn
En la siguiente ventana que se activa, ingrese el nombre del mtodo (Calcular) y pulse el botn
Agregar
Una vez agregado el nuevo mtodo, dentro de la ventana de propiedades busque la nueva
propiedad Calcular y realice doble Click.
En la ventana de cdigo que se activa escriba el siguiente cdigo.
Do Case
Case Thisform.OptGCategoria.Value=1
Thisform.Txthaber.Value=1500
76
Case Thisform.OptGCategoria.Value=2
Thisform.Txthaber.Value=1200
Case Thisform.OptGCategoria.Value=3
Thisform.Txthaber.Value=1000
EndCase
If Thisform.ChkAfp.Value=1 Then
Thisform.TxtAfp.value=Thisform.TxtHaber.Value*0.03
Else
Thisform.TxtAfp.value=0
Endif
If Thisform.ChkEssalud.Value=1 Then
Thisform.TxtEssalud.value=Thisform.TxtHaber.Value*0.06
Else
Thisform.TxtEssalud.value=0
Endif
If Thisform.Chkcts.Value=1 Then
Thisform.TxtCts.value=Thisform.TxtHaber.Value*0.03
Else
Thisform.TxtCts.value=0
Endif
Thisform.TxtTotalD.value=Thisform.TxtAfp.Value+Thisform.TxtCts.Value+Thisform.TxtEssalud.
Value
Thisform.TxtNeto.Value=Thisform.TxtHaber.value-Thisform.TxtTotalD.Value
77
Thisform.Refresh
78
El haber bsico y los descuentos se irn calculando de manera automtica cada vez que se
seleccione una categora o un tipo de descuento, para lo cual deber de crear un mtodo llamado
Calcular.
El diseo del formulario es el siguiente.
79
80
Tabla: Alumnos
81
Nota: Indexar por el campo cod_alumno con el nombre cod_alumno tipo de ndice principal
Tabla: Carrera
Nota: Indexar por el campo cod_carrera con el nombre cod_carrer tipo de ndice principal
Tabla: Curso
82
Nota: Indexar por el campo cod_curso con el nombre cod_ curso tipo de ndice principal
Tabla: Docente
Nota: Indexar por el campo cod_docente con el nombre cod_ docent tipo de ndice principal
Tabla: Notas
83
Sintaxis
Objeto.ControlSource[ = cNombre]
Seguidamente tendr que enlazar el formulario con la tabla de datos Carrera, para lo cual
realice un clic con el botn contrario sobre el formulario y seleccione la opcin Entorno de datos.
84
En la ventana Agregar tabla o vista, seleccione la tabla Carrera y pulse el botn Agregar
Fjese la ventana Entorno de datos, deber de mostrar la tabla agregada, en este caso Carrera
busque
la
propiedad
85
Como siguiente paso, disee el formulario de tal forma que quede igual al siguiente diseo.
Propiedad
Valor
Text1
Name
txtcodigo
ControlSource
carrera.cod_carrera
MaxLength
InputMask
99
Name
txtcarrera
ControlSource
carrera.nom_carrera
MaxLength
60
Text2
86
87
88
89
Ejecute el formulario.
Ingrese los datos de la carrera, y pulse el botn Grabar, en el caso de que desee grabar los
datos ingresados, o el botn Cancelar en el caso de que no desee cancelar los datos.
ControlSource. Especifica el origen de datos del que depende un objeto. Est disponible en
tiempo de diseo y en tiempo de ejecucin.
90
Sintaxis
Objeto.ControlSource[ = cNombre]
Control.RowSourceType[ = nOrigen]
Valores
NOrigen
Valor
Descripcin
Instruccin SQL. Un comando SELECT de SQL que crea un cursor o una tabla.
Campos. Una lista de campos delimitada por comas. Los campos pueden llevar
delante un punto y el alias de tabla.
91
92
Control.BoundColumn[ = nColumna]
Ejercicio de aplicacin
El siguiente formulario, permite ingresar nuevos registros dentro de la tabla de datos Alumnos.
Para el caso de las carreras se utilizar una lista desplegable, enlazada a la tabla carrera, la cual
mostrar las diferentes carreras que se encuentran en dicha tabla.
Desarrollo
de
propiedades,
busque
la
BufferModeOverriden
93
Control
txtcodigo
txtnombres
txtapellidos
txtDni
Propiedad
Valor
ControlSource
alumnos.cod_alumno
Maxlength
InputMask
99999
ControlSource
alumnos.nombres
Maxlength
60
ControlSource
alumnos.apellidos
Maxlength
60
ControlSource
alumnos.dni
Maxlength
InputMask
99999999
94
txtcelular
Txtfn
txtdireccion
txtemail
ControlSource
alumnos.telefono
Maxlength
InputMask
999999999
ControlSource
alumnos.fnacimiento
Value
={}
ControlSource
alumnos.direccion
Maxlength
60
ControlSource
alumnos.email
Maxlength
60
alumnos.cod_carrera
ColumnCount
ColumnWidths
178,73
RowSource
carrera.nom_carrera,cod_carrera
RowSourceType
6 Campos
BoundColumn
alumnos.sexo
ColumnCount
RowSource
Masculino,Femenino
RowSourceType
1 Valor
95
BoundColumn
96
97
Ejecute el formulario, pulse el botn Nuevo, para agregar un nuevo registro, ingrese
el cdigo del alumno y los dems datos.
98