Este documento presenta un resumen de 5 capítulos sobre el curso de Microsoft Visual FoxPro. El Capítulo I introduce el entorno de Visual FoxPro 9.0 y sus herramientas. El Capítulo II explica las estructuras de control como If/Then y Do Case. Los capítulos III y IV describen los controles de formulario como cuadros de texto y etiquetas, así como sus propiedades y eventos. El Capítulo V presenta algunos ejemplos básicos de aplicaciones en Visual FoxPro.
KELA Presentacion Costa Rica 2024 - evento Protégeles
Curso Visual FoxPro 40
1. Curso de Microsoft Visual FoxPro For Windows
Indice del Curso:
Capitulo I
Capitulo II
Capitulo III
Capitulo IV
Capitulo V
2. 2
o CAPITULO I
1.-Entorno de Visual Fox Pro 9.0
En Visual Fox pro se puede crear rápidamente formas, menú e
informes con los patrones visuales y herramientas de diseño.
Adopta la apariencia de los últimos productos Microsoft: barras
de estado, botones con pista, menú contextual, etc.
Visual Fox Pro 9.0 cada acción que tu realizas es un evento: El
movimiento del mouse, hacer clic sobre un botón, escribir un
texto en un cuadro de texto, Etc. Es decir que cuando programes
ese evento solo eso sucederá.
Es un lenguaje de programación que opera bajo la plataforma de
Windows, es decir, el programa identificara las acciones que
lleva a cabo el usuario durante su ejecución.
Herramientas de Visual
Fox Pro
3. 3
Barra de Menú
Por medio de esta barra podemos acceso todas las opciones de
Visual Fox Pro, nos ofrece abrir o crear una base de dato, crear
un reporte, etc.
Barra de Herramientas.
Por medio de esta barra de herramientas tenemos acceso a las
opciones de Visual Fox Pro sin necesidad de ir a la barra de menú
y tener un acceso rápido.
La Venta de Comando
4. 4
La ventana de comando nos sirve para escribir ciertos comandos
que explicaremos después.
La ventana de Controles.
La ventana de controles permite al usuario seleccionar opciones,
introducir datos y escoger acciones. En un formulario, estos
objetos pueden incluir casillas de verificación, botones de
comando y cuadro de texto.
Botón Descripción
Seleccionar objetos. Cambia el tamaño y mueve controles. Una
vez creado un control, el botón "Seleccionar objetos" se volverá
a seleccionar automáticamente, a menos que esté presionado el
botón "Bloqueo del botón".
Ver clases. Permite seleccionar y mostrar una biblioteca de
clases registrada. Después de seleccionar una clase, la barra de
herramientas sólo muestra botones para las clases de la
biblioteca seleccionada.
5. 5
Etiqueta. Crea un control Label, que se usa para texto que
no quiere que el usuario cambie, como el título que aparece
encima de las casillas de verificación o debajo de un gráfico.
Cuadro de texto. Crea un control TextBox, que se usa para
almacenar una única línea de texto que el usuario puede
introducir o cambiar.
Cuadro de edición. Crea un control EditBox, que se usa
para almacenar varias líneas de texto que el usuario puede
introducir o cambiar.
Botón de comando. Crea un control CommandButton, que
se usa para ejecutar un comando.
Grupo de comandos. Crea un control CommandGroup, que
se usa para agrupar comandos relacionados.
Grupo de opciones. Crea un control OptionGroup, que se
usa para mostrar múltiples opciones entre las que el usuario
sólo puede seleccionar una.
Casilla de verificación. Crea un control CheckBox, que
ofrece al usuario la posibilidad de elegir entre una condición
verdadera o falsa, o muestra varias opciones entre las que el
usuario puede seleccionar más de una.
Cuadro combinado. Crea un control ComboBox, que se
usa para crear un cuadro combinado desplegable o una lista
6. 6
desplegable de forma que el usuario pueda seleccionar un
elemento de una lista o introducir manualmente un valor.
Cuadro de lista. Crea un control ListBox, que se usa para
mostrar una lista de elementos entre los que puede elegir el
usuario. Es posible recorrer la lista si tiene más elementos de
los que se pueden mostrar de una vez.
Control numérico. Crea un control Spinner, que se usa para
aceptar datos numéricos introducidos por el usuario que
quedan dentro de un intervalo.
Cuadrícula. Crea un control Grid, que se usa para mostrar
datos en una cuadrícula tipo hoja de cálculo.
Imagen. Muestra una imagen gráfica en su formulario.
Cronómetro. Intercepta eventos Timer a intervalos
establecidos. Este control es invisible en tiempo de
ejecución.
Marco de página. Muestra varias páginas de controles.
7. 7
Control contenedor OLE. Le permite agregar objetos OLE
a su aplicación.
Control OLE dependiente. Al igual que los controles
contenedores OLE, le permite agregar objetos OLE a su
aplicación. Sin embargo, a diferencia de los controles
contenedores OLE, los controles OLE dependientes están
vinculados a un campo de tipo General.
Línea. Se usa para dibujar diversos estilos de línea en su
formulario en tiempo de diseño.
Forma. Se usa para dibujar diversas formas en su
formulario en tiempo de diseño. Puede dibujar un
rectángulo, un rectángulo redondeado, un cuadrado, un
cuadrado redondeado, un óvalo o un círculo.
Separador. Agrega espacio entre los controles de la barra
de herramientas.
Bloqueo del generador. Abre un generador para el nuevo
control que agrega al formulario.
Bloqueo del botón. Le permite agregar varios controles del
mismo tipo sin tener que hacer clic en el botón del control
en la barra de herramientas más de una vez.
8. 8
Propiedades
Son los atributos que se aplican sobre los controles.
Ejemplo:
Color, tipo de letra, nombre, texto, etc.
ALGUNAS PROPIEDADES COMUNES:
Name (Nombre): Especifica el nombre que se le asigne al
control, u solo a través de él se puede acceder a las propiedades y
métodos de los controles.
Back Color (Color de Fondo): Asigna el color de fondo sobre el
que aparece el texto o se dibujan los gráficos.
Fore Color (Color de Primer Plano): Asigna un color al primer
plano (color de la tinta o del texto).
9. 9
Font (Fuente o Tipo de Letra): Asigna el tipo de letra, los
atributos y el tamaño de la fuente que se usa para un control de
texto (el texto en un control TextBox, el título de una etiqueta o
de un botón de comando, etc.).
Caption (Título): Asigna el texto que aparece en muchos
controles y que el usuario no puede introducir, por ejemplo el
texto de un control Label, el título de un botón de comando, o de
una cadena de caracteres que se muestran en un cuadro de
activación o en un botón de opción.
Text (Texto): Asigna el texto que se muestra en los controles y
acepta que lo introduzca el usuario, por ejemplo, el control
TextBox.
Width (Ancho) y Height (Alto): Estas propiedades determinan
las dimensiones de los controles.
Left (Izquierda) Top (Arriba): Estas propiedades asignan las
coordenadas de la esquina superior izquierda del control y se
expresan en las unidades del contenedor (normalmente de un
formulario).
Enabled (Activado): Su valor es True por omisión, y significa
que el control se puede usar. Si se pone False se desactiva el
control, aparece en gris y no se puede usar.
Visible: Esta propiedad se pone como False para que el control
sea invisible.
Pasos para cambiar valores a propiedades en tiempo de
diseño:
1.- Presionar clic sobre el botón deseado.
2.-Abrir la ventana de propiedades.
3.-Buscar la propiedad de manera alfabética o otras categoría.
Evento
10. 10
Es una acción que el usuario efectúa sobre un objeto o control y
este a su vez realizara una tarea determinada, el programador
deberá analizar los evento que se pueden llevar a cabo sobre un
control determinado.
Un evento genera una tarea si no existe una tarea, por aquel
evento, no pasara nada.
Ejemplo
Clic
DbllicK
Keypress
Activate
Mousemove
Entre otros
Controles de Formulario
Cuadro de texto.- También denominado control de campo de
edición, muestra la información introducida en tiempo de diseño
por el usuario o asignada al control en código en tiempo de
ejecución.
Propiedades
Alignment.- Devuelve o establece la alineación de un control
checkbox u optionbutton, o el texto de control.
BorderStyle.- devuelve o establece el estilo del borde del objeto.
11. 11
Name.-Devuelve el nombre usado en el código para identificar un
objeto.
PasswordChar.- Devuelve o establece un valor que determina si
se muestra en un control los caracteres escritos por un usuario o
los caracteres marcadores.
Text.- Devuelve o estable el texto contenido en el control.
Las propiedades más comunes
Backcolor.- Devuelve o establece el color de fondo usado para
mostrar texto gráficos en un objeto.
FontName.- Devuelve un objeto de Font.
Forecolor.- Devuelve o establece el color de primer plano usado
para mostrar texto y gráficos en un objeto.
Eventos
MouseMove.- Al mover el ratón por encima del control.
MouseDown.- Al pulsar cualquier botón del ratón.
Change.- Al cambiar el contenido del control.
Click.- Al hacer click con el botón izquierdo del ratón sobre el
control.
DblClick.- Al hacer doble click con el botón izquierdo.
GotFocus.- Este evento se activa cuando el control recibe el
enfoque, es decir, cuando se activa el control en tiempo de
ejecución para introducir datos en el o realizar alguna operación.
LostFocus.- Este control es lo contrario del evento anterior, se
activa cuando el control pierde el enfoque, es decir, se pasa a otro
control para seguir introduciendo datos.
ETIQUETA
12. 12
Es un control de graficos utilizado para mostrar texto que el
usuario no podrá cambiar directamente.
Propiedades
Alignment.- Devuelve o establece la alineación de un control
checkbox u optionbutton, o el texto de control.
BorderStyle.- devuelve o establece el estilo del borde del objeto.
Caption.- Devuelve o estable el texto mostrado en la barra de
titulo de un objeto o bajo el icono de un objeto.
Recuerda:
Para este control no se suele utilizar eventos ya que su contenido
cambia poco a lo largo de la ejecución de la aplicación.
Botón de Comando
Denomina botón de comando, permite comenzar, interrumpir o
terminar un proceso cuando esta activado.
CASILLA DE VERIFICACION.
Muestra un visto cuando esta activado y desaparece cuando el
control Checkbox se desactiva.
Utilice este control para ofrecer al usuario una opción de tipo
Verdadero o Falso o Si o No.
También lo puede utilizar en grupos para mostrar múltiples
opciones.
13. 13
Boton de opciones.
Muestra una opción que se puede activar o desactivar,
generalmente viene en grupos.
Propiedades de los controles.
STR() convierte de número a carácter y VAL() convierte de
carácter a numérico.
THISFORM (Referencia de objeto)
Proporciona una referencia al formulario actual en el código de
evento o en la definición de clase del formulario.
Aplicación Nº 1
Codifique un programa que ingrese dos valores, y sacarle el IVA
y el resultado total.
15. 15
Procedimiento Salir
CAPITULO II
ESTRUCTURA DE CONTROL
Ejecuta condicionalmente un grupo de instrucciones, dependiendo
el valor de una expresión
Se clasifican:
16. 16
SENTENCIAS DE CONTROL DE FLUJO:
If…Then…EndIf:
La estructura If comprueba una condición especifica y, si es
verdadera, ejecuta las sentencias que le siguen. La estructura If
puede tener o una sola línea, o varias líneas. Para ejecutar una
sentencia condicional se usa la sintaxis de una sola línea:
If condición Then sentencia
Se evalúa la condición y, si es verdadera, ejecuta la sentencia que
viene a continuación. Si la condición no es verdadera, continua
con la sentencia siguiente de la estructura.
La sintaxis de varias líneas:
If condición Then
sentencias
EndIf
If…Then…Else…EndIf:
Una variación de la sentencia If …Then es la sentencia If…
Then…Else … EndIf, que ejecuta un bloque de sentencias si la
condición es verdadera, y otro bloque si es falsa. La sintaxis de la
sentencia If … Then … Else EndIf es:
If condición Then
Bloque de sentencias 1
17. 17
Else
Bloque se sentencias 2
EndIf
Visual FoxPro evalúa la condición y, si es verdadera, ejecuta el
primer bloque de sentencias y luego salta a las sentencias que hay
después de EndIf. Si la condición es falsa, Visual FoxPro ignora
el primer bloque de sentencias y ejecuta las que hay a
continuación de la palabra clave Else.
Otra variación de la sentencia If … Then … Else usa varias
condiciones con la palabra clave ElseIf:
If condición 1 Then
Bloque de sentencias 1
Else If condición 2 Then
Bloque se sentencias 2
Else If condición 3 Then
Bloque se sentencias 3
Else
Bloque se sentencias 4
End If
Podemos poner cualquier número de cláusulas desde arriba y, si
una de ellas es verdadera, se ejecuta el bloque de sentencias
correspondiente. La cláusula Else se ejecutará si ninguna de las
expresiones anteriores es verdadera.
Ejemplo:
If puntuación < 50 Then
18. 18
Resultado = “No admitido”
Else If puntuación < 75 Then
Resultado = “Pasable”
Else If puntuación > 90 Then
Resultado = “Muy bueno”
Else
Resultado = “Excelente”
EndIf
ESTRUCTURAS IF … THEN MÚLTIPLES:
Observamos que una vez que se ha encontrado una condición
verdadera, Visual FoxPro ejecuta las sentencias asociadas, salta el
resto de las cláusulas y continua con la ejecución del programa
con las sentencias que hay después de EndIf. Por esta razón
podemos usar la siguiente estructura, más complicada, de varias
sentencias If simples:
If puntuación < 50 Then
Resultado= “No admitido”
EndIf
If puntuación < 75 And puntuación >= 50 Then
Resultado= “Pasable”
EndIf
If puntuación < 90 And puntuación >= 75 Then
Resultado= “Muy bueno”
EndIf
19. 19
If puntuación > 90 Then
Resultado= “Excelente”
EndIf
DO CASE:
La estructura Do Case compara la misma expresión con diferentes
valores. La ventaja de esta sentencia sobre If … Then múltiples
hace que el código sea más fácil de leer y mantener.
La estructura Do Case comprueba una sola expresión, que se
evalúa una sola vez al principio de la estructura. El resultado de
esta comprobación se compara con varios valores y, si coincide
con uno de ellos, se ejecuta el bloque de sentencias
correspondiente. Sintaxis:
Do Case
Case <Condición 1>
Bloque de sentencias 1
Case <Condición 2>
Bloque de sentencias 2
.
.
.
EndCase
Ejemplo:
Opc=this.value
20. 20
Do Case
Case opc=1
NombreDía= “Lunes”
Mensaje= “Feliz semana”
Case opc=6
NombreDía= “Sábado”
Mensaje= “Feliz fin de semana”
Case opc=7
NombreDía= “Domingo”
Mensaje= “ ¿Has tenido un buen fin de semana”
EndCase
La variable opc que se evalúa al principio de la sentencia, es el
número de día de la semana. Después se compara el valor de la
expresión con los valores que tiene cada palabra clave Case. Si
coincide, se ejecuta el bloque de sentencias que viene a
continuación, y después salta el programa a la sentencia siguiente
al EndCase.
SENTENCIAS DE CONTROL DE BUCLE:
DO WHILE… ENDDO:
Ejecuta un bloque de sentencias mientras la condición sea
verdadera. Visual FoxPro evalúa la expresión y, si la expresión es
21. 21
falsa, el programa continúa con las sentencias que van después del
bucle.
Para ejecutar un bloque sentencias mientras la condición sea
verdadera, se usa la siguiente sintaxis:
Do While condición
Bloque de sentencias
Enddo
El bucle Do se repite todas las veces que sea necesario siempre
que la condición sea verdadera (o distinta de cero si la condición
evalúa un número).
FOR … ENDFOR/NEXT: El bucle For … Next es una de las
estructuras de bucle más antiguas dentro de los lenguajes de
programación. A diferencia del bucle Do, el bucle For … Next
requiere que se conozca el número de veces que se van a ejecutar
las sentencias del bucle. Este bucle es una variable (llamada el
contador del bucle) que incrementa o disminuye su valor durante
cada repetición del bucle. Su sintaxis es:
For contador = principio To final [Step incremento]
Sentencias
Next/EndFor [contador]
(las palabras entre corchetes son opcionales). Los argumentos
contador, principio, final e incremento son todos numéricos. El
bucle se ejecuta hasta que el contador llegue (o exceda) el valor
final.
22. 22
Cuando ejecuta un bucle For … Next, Visual FoxPro hace lo
siguiente:
1. Pone contador con el valor de principio.
2. Comprueba si contador es mayor que final. Si lo es, sale del
bucle. Si incremento es negativo, Visual FoxPro comprueba si
contador es menor que final, en cuyo caso sale de bucle.
3. Ejecuta el bloque de sentencias.
4. Incrementa contador con el valor de incremento. Si no se ha
especificado incremento, el contador se incrementa en 1.
5. Repite las sentencias.
La parte más importante a tener en cuenta cuando se trabaja con
bucle For Next/EndFor es que el contador del bucle se establece
al principio del bucle. Si cambiamos el valor de la variable final
mediante una sentencia dentro del bucle, no se detecta el cambio
y se ejecuta como si no se hubiera producido.
WITH ... ENDWITH: Especifica múltiples propiedades para un
objeto.
Sintaxis
WITH NombreObjeto
[Instrucciones]
ENDWITH
NombreObjeto: Especifica el nombre del objeto. NombreObjeto
puede ser el nombre del objeto o una referencia a éste. Ejemplo
With Thisform
23. 23
Instrucciones: Instrucciones puede constar de cualquier número
de comandos de Visual FoxPro empleados para especificar
propiedades para NombreObjeto. Sitúe un punto delante de
Instrucción para indicar que es una propiedad de NombreObjeto.
Propiedad o palabra clave
Referencia
ActiveControl El control del formulario activo actualmente que
tiene el enfoque
ActiveForm El formulario activo actualmente
ActivePage La página activa del formulario activo
actualmente
Parent El contenedor más inmediato del objeto
THIS El objeto, o un procedimiento o evento del objeto
THISFORM El formulario que contiene el objeto
THISFORMSET El conjunto de formularios que contiene el
objeto
THISFORM: Proporciona una referencia a un Form antes de
crearlo.
Sintaxis:
THISFORM.NombrePropiedad | NombreObjeto
Argumentos:
NombrePropiedad: Especifica una propiedad para el Form.
NombreObjeto: Especifica un objeto del Form.
24. 24
Comentarios: THISFORM proporciona, dentro de un método, una
referencia al Form en el que está situado un objeto o a la
propiedad de un Form. THISFORM permite hacer referencia a un
objeto o una propiedad del formulario sin utilizar múltiples
propiedades Parent.
THIS: Proporciona una referencia a un objeto antes de crearlo.
Sintaxis:
THIS.NombrePropiedad | NombreObjeto
Argumentos:
NombrePropiedad: Especifica una propiedad para la clase.
NombreObjeto: Especifica un objeto de la clase.
Comentarios: THIS permite hacer referencia a una propiedad o un
objeto de una definición de clase. Los métodos de un bloque de
definición de clase pueden utilizar THIS para especificar una
propiedad o un objeto que existirá cuando se cree la clase.
Puesto que múltiples instancias de objetos comparten el mismo
código de método, THIS siempre hace referencia a la instancia en
la que está ejecutándose el código. Si hay múltiples instancias de
un objeto, y se llama a uno de los métodos del objeto, THIS hace
referencia al objeto correcto.
THISFORMSET: Proporciona una referencia a un FormSet
antes de crearlo.
Sintaxis:
25. 25
THISFORMSET.NombrePropiedad | NombreObjeto
Argumentos:
NombrePropiedad: Especifica una propiedad para el FormSet.
NombreObjeto: Especifica un objeto del FormSet.
Comentarios: THISFORMSET proporciona, dentro de un método,
una referencia al FormSet en el que está situado un objeto o a la
propiedad de un FormSet. THISFORMSET permite hacer
referencia a un objeto o una propiedad del FormSet sin utilizar
múltiples propiedades Parent.
RELEASE: Permite que los usuarios cierren el formulario activo
haciendo doble clic en el cuadro de control o eligiendo Cerrar en
el menú Control del formulario. También puede permitir que un
usuario cierre y libere un formulario incluyendo el comando
siguiente en el código de evento Click de un control, como un
botón de comando con el título "Salir":
RELEASE THISFORM
CREATE: Nos permite crear formularios, tablas, base de datos,
menús, informes, etc. Ejemplo: Create Form “C:Mis
documentosRenéejemplo1.scx”.
DO FORM: Ejecuta un Form o FormSet compilado que se ha
creado con el Generador de formularios.
MODIFY FORM: Abre el Generador de formularios para que
pueda modificar o crear uno.
26. 26
USE: Abre o cierra una Tabla. Ejemplo: Use Articulo.Dbf↵
(Abre la tabla Articulo.dbf). Use↵ Cierra una tabla en uso.
GO TOP: Ubica el puntero de registro en el primer registro.
GO BOTTOM: Ubica el puntero de registro en el último
registro.
SKIP: Avanza o retrocede el puntero de registro. Skip +1↵
(Avanza). Skip –1 (Retrocede).
APPEND: Adiciona o añade más registro a una tabla abierta.
LIST: Realiza un listado de todos los registros de una tabla
abierta.
BROWSE: Abre la ventana examinar para modificar el contenido
de todos los registro de una tabla abierta.
REPORT FORM: Muestra o imprime un informe bajo el control
de un archivo de definición de informe creado con MODIFY
REPORT o CREATE REPORT.
Mensaje del Sistema.
MenssageBox().- despliega un mensaje en un cuadro de dialogo y
espera que el usuario selecciona un botón.
Sintaxis:
Variable= MessageBox (mensaje,tipo,titulo)
Mensaje: es una expresión de cadena que se despliega como el
mensaje en un cuadro de dialogo.
27. 27
Tipo: Expresión numérica que es la suma de valores que
especifican la cantidad y el tipo de botones para desplegar.
DO WHILE – ENDDO
Repite un bloque de instrucciones cuando una condición es true o
hasta que una condición se convierta en true
Sintaxis
Do while condición
Sentencia
Loop
Enddo
Aplicación Nº 2
Este ejercicio consiste en elaborar un formulario que simule el funcionamiento de un
reloj despertador digital. La aplicación debe permitir al usuario ingresar la hora a la que
desea ser avisado. El diseño de la interfaz debe ser similar a la figura siguiente:
28. 28
Para el desarrollo de esta aplicación proceder a ubicar los siguientes controles en el
formulario:
2 etiquetas
2 cajas de texto
1 cronómetro
2 botones de comandos
En seguida establezca las propiedades según se indica a continuación:
Form1
Name FrmReloj
Caption Reloj despertador digital
MaxButton .F.-Falso
MinButton .F.-Falso
Label1
Name LblHora
Caption Hora
Label2
Name LblDespertador
Caption Despertador
Text1
29. 29
Name TxtHora
FontBold .T.-Verdadero
FontSize 24
Text2
Name TxtDespertador
FontBold .T.-Verdadero
FontSize 24
Timer1
Name Timer1
Enabled .T.-Verdadero
Interval 500
Command1
Name CmdOnOff
Caption <Desactivar
Default .T.-Verdadero
Command2
Name CmdTerminar
Cancel .T.-Verdadero
Caption <Terminar
Una vez establecidas las propiedades, proceda a ingresar el código que se muestra:
Objeto: FrmReloj Procedimiento: Load
Public lOnOff
Objeto: FrmReloj Procedimiento: Init
lOnOff = .F.
Thisform.TxtDespertador.Value = "00:00:00"
30. 30
Thisform.Refresh
Objeto: Timer1 Procedimiento: Timer
If Thisform.TxtHora.Value != Time() Then
Thisform.TxtHora.Value = Time()
EndIf
If (Thisform.TxtDespertador.Value < Time()) And lOnOff Then
* Sonido acústico
?Chr(7)
EndIf
Thisform.Refresh
Objeto: CmdOnOff Procedimiento: Click
If lOnOff Then
lOnOff = .F.
Thisform.CmdOnOff.Caption = "<Activar"
Else
lOnOff = .T.
Thisform.CmdOnOff.Caption = "<Desactivar"
EndIf
Thisform.Refresh
Objeto: CmdTerminar Procedimiento: Click
Release Thisform
31. 31
CAPITULO III
QUE ES UNA BASE DE DATOS
Una Base de Datos es un conjunto de datos organizado de forma
tal, que se presenta al usuario como si fuera una o un conjunto de
matrices bidimensionales (tablas).
Cada fila de una matriz es un registro, el cual contiene
información sobre una unidad de la base de datos y le asigna un
número para poder manejarlo.
Cada columna contiene los diversos campos de ese registro.
Por ejemplo : en una tabla de publicaciones, cada fila contendrá
información sobre una publicación determinado, y la fila estará
dividida en campos (columnas), como el código de publicación,
nombre de la publicación, fecha, tiraje, responsable, etc...
Para abrir una base de datos haz click en archivo, nuevo
selecciona base de datos (Database), y aparecerá la ventana de
Generador de base de datos. En este tu construirás las tablas
visualmente, creas etiquetas de índice, establece relaciones entre
tablas y proporciona otros componentes que ayudan en el proceso
de diseño de una aplicación. En el Generador de bases de datos
32. 32
haz clic en cualquier lugar de la ventana, se desplegará un menú
contextual que contiene las opciones siguientes:
-Expandir (Expand)
- Contraer todos (Collapse all)
- Nueva tabla (New table)
- Nueva vista remota (* New remote view )
- Nueva vista local (*New local view)
- Agregar tabla (Add table)
- Procedimientos almacenados (Stored procedures)
- Integridad referencial (integrity referential)
- Ayuda
Tablas
Tipos de datos
Visual Fox Pro puede manejar diversos tipos de campos (tal
como muestra la figura) . Entre los más importantes están:
Carácter : Campo de caracteres : Almacena cadenas o
conjuntos de caracteres. Un campo de caracteres permite
almacenar tanto letras, como números o caracteres especiales.
Monetario: Campo de Valores Monetarios: Almacena
cantidades en valor monetario, Ejemplo: $55, S/.675,438.
33. 33
Numérico: Campo numéricos : Almacenan cantidades y se
puede hacer cálculos con ellos. Estos campos sólo admiten
número y el punto decimal (la coma decimal si tiene formato
español). Máxima extensión, 20 caracteres.
Flotante : Campo de números reales : Almacenan números en
el rango del conjunto de números reales.
Fecha : Campo fecha : Permite almacenar fechas. La
información la guarda en la forma AAAAMMDD, con 8
caracteres. El formato por defecto para introducir fechas en
Visual Fox Pro es MM/DD/AA (Mes/Día/Año).
Lógico : Campo lógico : Almacenan un tipo especial de
información, sólo permiten almacenar verdadero o falso y acepta
sólo los caracteres : T (verdadero) o F (falso).
Memo : Campo Memo : Permite almacenar textos largos, como
una descripción o un breve resumen.
Estructura de un .BDF
Los datos en FoxPro se almacenan en forma de tablas, estas
tablas son las bases de datos pues la extensión de estas bases de
datos es .DBF aunque también hay otras que se verá más
adelante. Los DBF comienzan con una breve descripción de los
datos que están en la tabla.
RELACIONES ENTRE TABLAS:
Las relaciones mas comunes entre tablas se definen:
De uno a uno: Ejemplo de una llave primaria a otra llave primaria
De uno a muchos: Ejemplo de una llave primaria a una Regular o
Foránea.
34. 34
Las relaciones entre tablas se crean arrastrando la llave de la
tabla a la llave de otra tabla.
Aplicación Nº 3
En este ejercicio vamos a crear un formulario para calcular la edad de una persona a
partir de su fecha de nacimiento.
Para el desarrollo de esta aplicación, proceda a ubicar los siguientes controles en el
formulario:
2 etiquetas
2 cajas de texto
3 botones de comando
Luego, proceda a establecer las propiedades según se indica a continuación:
Form1
Name FrmEdad
Caption
MaxButton .F.-Falso
MinButton .F.-Falso
35. 35
Label1
Name LblFecNac
Caption Fecha de nacimiento:
Label2
Name LblEdad
Caption Su edad es:
Text1
Name TxtFecNac
Enabled .T.-Verdadero
Text2
Name TxtEdad
Enabled .F.-Falso
Command1
Name CmdAceptar
Caption <Aceptar
Command2
Name CmdLimpiar
Caption <Limpiar
Command3
Name CmdSalir
Caption <Salir
Luego de establecidas las propiedades de los controles, proceda a ingresar el siguiente
código:
Objeto: FrmEdad Procedimiento: Load
Set Date French
37. 37
Este ejercicio consiste en elaborar una aplicación que acepte fechas como tres números
(dd, mm, aaaa) y las visualice del modo usual. A manera de ejemplo considere lo
siguiente:
Cuando el usuario haga click en el botón Salir o en el botón Cerrar de la barra de título
del formulario, se debe confirmar si desea terminar la aplicación, tal como se observa en
la figura siguiente:
En caso de que el usuario elija la opción Si, la aplicación debe terminar. Caso contrario,
es decir si el usuario elige la opción No, se debe proseguir con la aplicación.
Para el desarrollo de esta aplicación, proceda a ubicar los siguientes controles en el
formulario:
4 etiquetas
3 controles numéricos
1 caja de texto
3 botones de comando
En seguida proceda a establecer las propiedades según se indica:
Form1
38. 38
Name FrmFecha
Caption Fecha en letras
MaxButton .F.-Falso
MinButton .F.-Falso
Label1
Name LblDia
AutoSize .T.-Verdadero
Caption Día:
Label2
Name LblMes
AutoSize .T.-Verdadero
Caption Mes:
Label3
Name LblAnno
AutoSize .T.-Verdadero
Caption Año:
Label4
Name LblEnLetras
AutoSize .T.-Verdadero
Caption En letras:
Spinner1
Name SpnDia
SpinnerHighValue 31
SpinnerLowValue 1
Spinner2
Name SpnMes
39. 39
SpinnerHighValue 12
SpinnerLowValue 1
Spinner3
Name SpnAnno
SpinnerHighValue 9999
SpinnerLowValue 0
Text1
Name TxtEnLetras
Alignment 2-Centro
Command1
Name CmdAceptar
Caption <Aceptar
Default .T.-Verdadero
Command2
Name CmdLimpiar
Caption <Limpiar
Command3
Name CmdSalir
Cancel .T.-Verdadero
Caption <Salir
Una vez establecidas las propiedades proceda a ingresar el código que se indica a
continuación:
Objeto: FrmFecha Procedimiento: Load
Set Date French
Set Century On
42. 42
CAPITULO IV
Tipos de Menús:
Existen dos tipos de menús : menú y Shortcut.
43. 43
Creación de Menús:
La creación de menús es un proceso que conlleva diferentes pasos. Primero, debemos
definir las opciones del menú y de los submenús. Luego, asignar funcionalidad a las
opciones de menú. Finalmente, generar el programa de menús.
Puede usar el generador de menús de Visual Foxpro para que le ayude a construir
menús rápidamente. El Generador de menús le permite definir la estructura y
funcionalidad de su sistema de menús a través de cuadros de diálogo de fácil uso y de
listas desplegables que puede utilizar para crear y modificar su sitema de menús.
Definición de las opciones de menú.
Los menús presentan su aspecto con una lista de opciones para iniciar una actividad. La
mayoría de los elementos de menú muestran submenús u opciones adicionales cuando
el usuario selecciona uno de estos elementos. Antes de generar un menú para una
aplicación, tendrá que determinar que selecciones tendrá disponibles el usuario final y
qué opciones de menús pertenecen a otras opciones de menús (sub menus).
Cómo crear un nuevo menú
1. Pulse la ficha de otros en el Administrador de proyectos.
2. Seleccione menús
en la lista de
categorías
3. Pulse el botón
nuevo y escoja si es
Menu o un Shortcut
4. Introduzca las opciones del menu y luego el resultado del menú ( submenu, comando
o procedimiento)
5. A la derecha del resultado se encuentra la opción crear o modificar según el caso.
( crea o modificar los resultados de la opción del menu).
44. 44
Tipos de Resultados :
Submenu : Si el menú contiene un submenu
Comando : Si la opción de ese menú invoca un comando
(Ejemplo: DO FORM
Regiones, para llamar un formulario;
CLEAR EVENT, por lo general va en la opción Salir)
Procedimiento : Si la opción de ese menú invoca varias líneas de comandos ( un
procedimiento).
Opciones de Menú:
En las opciones del menú se especifican:
- Teclas de Acceso directo
- Mensajes del menú
- Condición de habilita/No habilitar
Generación del menú :
1. En el menú escoja la opción Menú.
2. Se le pregunta si desea grabar los cambios ( responda que si)
3. Luego se le pide que proporcione el archivo de salida del menu ( escoja la ruta y el
nombre del archivo, por lo general son extension MPR) y luego seleccione generar.
4. Si existe ya el archivo se le pide si desea re-escribirlo ( seleccione que si)
45. 45
Como invocar al menú creado:
Al generar el menú se crea un archivo que por lo general tiene extensión MPR que
contiene el código para desplegar el menú.
La instrucción sería:
DO ruta y nombre del archivo MPR
Ejemplo : DO menu.MPR
· Para volver a re establecer el menú por default de Visual Foxpro utilice la
instrucción: SET SYSMENU TO DEFAULT
Creación del Ejecutable de la Aplicación.
Primero se tiene que crear un programa de inicio, al cual se le tiene que decir que ese es
el programa que se ejecutara de primero ( esto se hace haciendo clic derecho en el
programa que designemos como principal y escoger la opción main ( principal) del
menú de opciones)
Contenido Ejemplo del programa principal:
CLEAR ALL
* Variables Publicas
PUBLIC w_Output, g_año, gid_area, g_nivel, g_cambio, g_login_entry ;
46. 46
,g_pass_entry, V_MENU_PRE, V_ERROR, g_acceso
* Definicion de Ventana para los Reportes
DEFINE WINDOW w_Output ;
FROM 0,0 TO 25,70 ;
TITLE 'Informes - BCN' ;
CLOSE FLOAT GROW ZOOM SYSTEM
* Ambiente
SET SYSMENU TO
SET ECHO OFF
SET TALK OFF
SET CENTURY ON
SET CLOCK STATUS
SET DATE brit
SET DELETE ON
SET PATH TO formenu,bmp,prg,data
SET EXCLUSIVE OFF
SET SAFETY OFF
SET REFRESH TO 5
SET REPROCESS TO AUTOMATIC
SET MULTILOCK ON
SET LOCK OFF
SET PROCEDURE TO .prgutility
* Fondo de la Pantalla principal
_SCREEN.Picture=".bmpfondo.bmp"
_SCREEN.WINDOWSTATE=2
_SCREEN.CLOSABLE=.F.
48. 48
CAPITULO V
Para ejecutable
Crear nuevo proyecto
1.- menú archivo
2. nuevo
3.- Seleccionar proyecto como indica la imagen
4.- clic en nuevo archivo
5.- guardar proyecto en la dirección deseada y el nombre deseado
6.- clic en documentos y luego agregar
49. 49
7.- buscar los formularios que desee agregar al proyecto
8.- clic en código y luego nuevo
9.- escriba o pegue el siguiente código
clear all
set exclusive off
set sysmenu to
set echo off
set talk off
Set Status Bar Off
_screen.windowstate=2
clear
* en la line siguiente va la ruta y el nombre del formulario principal
do form c:israelnombre_formulario.scx
read event
clear all
10.- clic en el signo + (MAS) si no se ve el nombre del programa en el proyecto
50. 50
11.- clic derecho en el nombre del programa y estableces principal
12.- clic en general y generar ejecutable
13.- acepta y guardar en la ruta correspondiente
NOTA:
Copie los archivos .dll en el lugar donde se encuentre el ejecutable
Y LISTO
Aplicación Nº 4
Base de datos Pizzería
Realizar las siguientes tablas para la base de datos Pizzería
51. 51
Para llevar a cabo la Practica Realiza los Siguientes pasos:
1. Crea un nuevo Proyecto con el nombre Pizza
2. en el administrador de proyectos en la Ficha Datos, Selecciona la opción
Databases, y después la opcion Nuevo, para crear la base de datos con el
nombre Pizzería.
3. En el diseñador de Base de datos da un clic en la opción Nueva tabla. y haz lo
sig;
4. Guarda esta tabla con el nombre de Pizza
5. Ahora deberas crear otra tabla nueva con los siguientes campos.
52. 52
6. Guarda esta tabla con el nombre de tamaños.
7. Ahora deberas crear una tercera tabla con los datos siguientes:
8. Guarda esta tabla con el nombre de Venta.
9. por ultimo deberás crear otra tabla como sigue:
53. 53
10. Esta tabla la guardas con el nombre factura
11. Crea las relaciones entre las tablas de tal form que te queden de la siguiente
manera:
12. Ahora debemos introducir los datos a las tablas, comenzaremos por la tabla
Pizza y la llenaremos como sigue:
54. 54
Clave_Pizza Nombre
an Anchoas
pe Peperoni
ha Hawaiana
sa salami
13. seguimos con la tabla Tamaño
Clave_tamaño Tamaño
ch Chica
me Mediana
gr Grande
14. Y Continuamos con la tabla Venta
Clave_Pizza Clave_Tamaño Precio
an ch $ 20.00
an me $ 25.00
an gr $ 30.00
pe ch $ 60.00
pe me $ 65.00
pe gr $ 80.00
ha ch $ 55.00
ha me $ 60.00
ha gr $ 68.00
sa ch $ 63.00
sa me $ 87.00
sa gr $ 98.00
15. ahora crearemos una tabla a partir de una consulta, en la ventana explorador de
proyectos en la pestaña datos selecciona consulta y después nuevo
16. Visual Fox te preguntara que tablas quieres agregar para la realización de tu
consulta, para eso tu debes agregar las siguientes tablas: Tamaña, Venta y
Pizza.
17. una vez con las tablas agregadas, en la ventana diseñador de consultas en la
ficha campos, debemos escoger cuales son los campos que nosotros queremos
que nos muestre la consulta, pues bien vamos a seleccionar los siguientes:
Pizza.nombre, tamaño.tamaño, Venta.Precio, por ultimo agregaremos una
expresión como campo para esto en la misma ventana busca la opción funciones
y expresiones y aparecerá la ventana siguiente:
55. 55
18. Cuando esta ventana aparezca lo primero que debemos de hacer es seleccionr
de la parte funciones Cadena, la opción “texto”, Luego en la parte de abajo
donde dice Desde tabla Selecciona la tabla Pizza, en el cuadro campos
apareceran los campos de la tabla pizza de ese cuadro da doble clic al campo
clave_pizza, una vez esto hecho en el cuadro expresión deberá de aparecer el
siguiente texto: “Pizza.cleve.pizza”, una ves con esto ve otra vez a la lista
Cadena y ahora selecciona el símbolo +, el símbolo aparecera dentro de las
comillas, salte de las comillas y pon un guion(-), la expresión deberá quedar:
“Pizza.cleve.pizza+”-, ahora con lo que ya vimos has que la expresión final
quede de la siguiente forma, recuerda que para sacar los campo de Tamaño
primero debes seleccionar la tabla tamaño de Desde tabla.
56. 56
19. Una vez que tengas la Expresión da un clic al botón aceptar y después un clic
en Agregar. Te debera quedar como en la pantalla siguiente:
20. Ahora da un clic al boton Destino de consulta y Selecciona tabla
21. en el recuadro donde dice Nombre de la tabla le ponemos un nombre que en
este caso será consulta1.dbf. y un clic al botón Aceptar.
22. Después de eso Cierro la ventana de Diseñador de consultas, y ebn el
explorador de proyectos selecciono la consulta que acabo de crear y la ejecuto.
23. después de este paso en el explorador de proyectos selecciono tablas en la
ficha datos y doy un clic a Agregar, busco la tabla consulta1, que es la que se
genero con la consulta y la agrego a mi base de datos.
57. 57
24. Una vez ya agregada la relaciono con la tabla Factura, de tal manera que me
quede de la siguiente manera:
25. Ahora si todo esta listo para que tu generes tus Formularios y tus informes de
tu base de datos, recuerda que puedes hacer tambien consultas por medio de la
tabla factura para ver cuales fueron las ventas que has tenido.