Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Grohmann
_ . ,."}'i ~f -r -. ~~ ,,""'; .LHU.,, l!~'"
i(j
A~ C;."'.~'tld{t ".LJ' ., dA~.k;.,.,A.,. tJ~~f'(" dH,..t,,{l tff~'f..;(""'" r: ,("1 11'~ PP"!--:;l7'*~{~t ;:n,~ 7_ "!;::9g/.Uh.t-~'.o ,
J
PRACTICA 01 CREACION DE UNA BASE DE DATOS EN VISUAL FOX PRO 6.0 OBJETIVOS Reconocer los controles bsicos de Visual Fox Pro 6.0 cuando se desea obtener una Base de Datos. METODOLOGIA Se crear una base de datos que incluya las tablas bsicas de un sistema de matrculas de alumnos. PREPARATIVOS Crear un directorio denominado \Practica01. Dentro de este directorio, crear los subdirectorios Class, Data, Forms y Reports. Todos los archivos generados durante el desarrollo de esta prctica debern de ser guardados en estos directorios. La estructura de directorios debe ser similar a la siguiente figura.
BU
.:::J
"W L..U .LJ .LJ ..r:::J
:--a Clessee
Data Forms Graphics Help
Practica02
-o a lnclude
Menus
ther
Reports
0 Progs
DESARROLLO DE LA PRACTICA 1. Activar el programa Microsoft Visual Fox Pro 6.0 PARTE 01: CREACiN DE UNA NUEVA APLICACiN DE VISUAL FOX 2. Ir al men "Archivo", seleccionar el submen "Nuevo". En el cuadro de dilogo que se le presentare, seleccionar la opcin Proyecto y presionar el botn "Nuevo Archivo". Guardar el archivo del nuevo proyecto con el nombre \Practica01\PryMatriculas.pjx (es decir, dentro del directorio de trabajo)
Universidad Jorgeliasadre Grohmann T" - ,. n.. r ., -<" E' ..;,scue(!/lcadenuco Proj"cstontu1 {le'rmgetuena en Intormatica ~ Sistemas v ~, ~ ~
y
Luego de realizar esta accion se le mostrar el cuadro del detalle de los elementos componentes del nuevo proyecto, tal como se muestra a cotinuacin: '!I.6.drmrustrador de proyectos - Prymetricules
Todos
el
Ot~o
1
:.~
Datos
Documentos
1 Clases 1 Cdigo 1
1 G.
8'~rI Datos
~ifil!lll'*!!I!.lIm!!l!
Nuevo: ..
8gregar.,.
Consultas [l ... ;=; Documentos 11\ Bibliotecas de clases [fi.E] Cdigo Otros Mens ~ElArchivos de texto Otros archivos
'ilifl
PASO 02: CREACiN DE UNA BASE DE DATOS 3. Seleccionar el item de nodo denominado "Databases". A continuacin presionar Nuevo. Guardar el archivo de base de datos como \Practica01\Data\DeMatriculas_dbc Luego de esta accin, se le mostrar tanto el contenido de la base de datos (por ahora vaco) como el Diseador de Base de Datos.
,',J'BiIIIEI
Nueva tabla ~lliI Agregarabla''''''. t
Ouitar Tahla~"
.t.:k
'
m
r'
...J
T::
.~J.<.J
... ~J!
PASO 03: CREACION DE UNA TABLA DE UNA BASE DE DATOS 4. Crear una nueva tabla y guardarla con el nombre "\Practica01\DatalAlumno_dbf'. Para realizar esto, seleccionar el botan "Nueva Tabla" y la opcion "Nueva Tabla". Configurar los campos de la tabla tal como se ha indicado al inicio de esta base de datos. Campos de la tabla Alumno dbf Campo C_alumno Nombre Apellido Sexo Direccin
Ancho
20 20
1
50
Indices de la tabla Alumno db: nombre C_alumno Principal Normal Apellido Nombre Normal
Tipo
5.
Crear una nueva tabla y guardarla con el nombre "\Practica01\Data\Docente.dbf'. Para realizar esto, seleccionar el boto n "Nueva Tabla" y la opcion "Nueva Tabla". Configurar los campos de la tabla tal como se ha indicado al final de esta base de datos. Agregar en la definicin los siguientes ndices: Definicin de la tabla Docente.dbf Campo C_docente Nombre Apellido Sexo. . Direccin Indices de la tabla Docente dbt: Nombre \ C_docente Principal Apellido Normal Nombre Normal
Ancho
20 20 1 50
Expresin C_docente Apellido Nombre
Tipo
6.
Crear una nueva tabla y guardarla con el nombre "\Practica01\Data\Curso.dbf'. Para realizar esto, seleccionar el boto n "Nueva Tabla" y la opcion "Nueva Tabla". Configurar los campos de la tabla tal como se ha indicado al final de esta base de datos. Agregar en la definicin los siguientes ndices: Definicin de la tabla Curso.dbf Campo C_curso Curso Creditos Indices de la tabla Curso.dbf: Nombre C_curso Curso Tipo Principal Normal C_curso Curso Expresin
Ancho
50
4
7.
Crear una nueva tabla y guardarla con el nombre "\Practica01\Data\Alumno_Curso.dbf'. Para realizar esto, seleccionar el botan "Nueva Tabla" y la opcion "Nueva Tabla". Configurar los campos de la tabla tal como se ha indicado al final de esta base de datos. Definicin de la tabla Alumno_Curso.dbf Campo C_alumno C_Curso Nota Tipo Entero Entero Flotante Ancho
50 10
Pgina: 3
8.
Crear una nueva tabla y guardarla con el nombre "\Practica01\Data\Docente_Curso.dbf'. Para realizar esto, seleccionar el botan "Nueva Tabla" y la opcion "Nueva Tabla". Configurar los campos de la tabla tal como se ha indicado al final de esta base de datos. Definicin de la tabla Docente_Curso.dbf Campo C_docente ,C_curso Nota Indices de la tabla Docente_Curso.dbf: Nombre C_docente C_Curso Tipo Expresin C_docente C_Cu rso Tipo Entero Entero Flotante Ancho
4 4 10
,
\
Normal Normal
9.
Con las tablas recren creadas, proceda a realizar los arrastres de claves primarias y forneas de las tablas(al igual que en Access), con lo cual habr logrado proporcionar el atributo de integridad de datos a su sistema.
li~~~~}~1Affulfi~~
::: Campos: c_curso curso creditos Olndices: ,:,' ;
';fc_curso
curso
'iJ'c_alumno
apellido nombre
Campos:
.,
"
\ic_docente
nombre apellido '.,..
Pgina: 4
METODOLOGIA Se crearn clases reutilizables. Las clases a implementarse sern: TAplication, el gran objeto administrador de la aplicacin. Un formulario para mostrar informacin de referencia sobre el programa implementado. PREPARATIVOS Crear un directorio denominado \Practica 02. Dentro de este directorio, copiar todo el contenido del directorio Practica01 (prctica anterior) en el directorio \Practica02. Todos los dems archivos generados durante el desarrollo de esta prctica debern de ser guardados en estos directorios.
a.tiliJ
...] Classes
W Data .... ]] Forms {
\::::~ ~~~~hiCS M enus O ther
Progs
Heports
Practica02
{.i2it E.lill ~
DESARROLLO DE LA PRACTICA
bill Inc\ude
Li.IT@
PARTE 01: DISEO DE UN FORMULARIO (CLASE TFormAcerca) 1. Abrir el proyecto PryMatriculas.pjx 2. Abrir el Administrador de Proyectos. Abrir la pgina Clases.
3.
Presionar el botn NUEVO. Y en el cuadro de dilogo que se le presentar, definir los siguientes datos: Nombre de clase: TformAcerca Basado en: Form Almacenar en: ..\Practica02\Classes\Tforms_ Class. vcx
Pgina: 1
4.
En el formulario recientemente creado, insertar los siguientes componentes ventana Controles de formulario): 01 control Image 03 controles Label 01 Control Une 01 Control Command
(Utilizando la
5.
Configurar las propiedades de los componentes de la siguiente manera Componente Propiedad Valor Caption Aplicacin 1.0 Label1 Esta es mi primera aplicacin Label2 Caption Caption Copyright 2003 Label3 Picture Cualquier archivo que contenga una imagen (*.bmp, Image1 *.wmf, *.dib). Previamente, coloque el archivo de esta imagen en el directorio .. \Practica02\ Graphics Command1 Name CmdCerrar Caption Cerrar
6.
Hacer doble click sobre el componente cmdCerrar, y sobre el respectivo evento OnClick de este componente, escribir la siguiente sentencia:
manejador del
7.
Ir al men Clase\ y seleccione el submen Nuevo Mtodo. Luego,en el cuadro de dilogo 2 que se le presentar, escriba el nombre del nuevo mtodo: Do_Form_Explore Mtodo Do_form_explore Visibilidad pblico Descripcin Mtodo de visualizacin del formulario
Este men solamente ser visible cuando est visible (activa) una clase, en nuestro caso, la clase
TformAcerca.
2 Luego de esta accin, inmediatamente se podr visualizar el nombre de este mtodo en la ventana de propiedades respectiva.
Pgina: 2
8.
Seleccione el formulario (clase) TformAcerca, y en la ventana de propiedades (inspector de objetos) seleccione el mtodo Do_Form_Explore. Haga doble click sobre este mtodo, y en respectivo manejador de este mtodo, escribir el siguiente cdigo LPARAMETERS tcCodigo, Local LValue THIS.Show(l) RETURN O tcTag
9.
PARTE 02:DlSEO DE LA CLASE TAPLlCATION (ADMINISTRADOR DE LA APLlCACION) 10. Al igual que el paso 2, vuelva a abrir el Administrador de Proyectos, y luego la pgina Clases. 11. Presionar el botn NUEVO. Y en el cuadro de dilogo que se le presentar, definir los siguientes datos: Nombre de clase: TAplication Basado en: Custom Almacenar en: .. \Practica02\Classes\TAplication.vcx * Al realizar este paso, usted habr creado un archivo denominado TAplication.vcx en el cual estar definida la clase TAplication 12. Ir al men Clase3, y seleccione el submen Nuevo Mtodo. Defina sucesivamente los siguientes mtodos (Presione el botn Agregar para ello.) Descripcin Mtodo Visibilidad Ejecuta la aplicacin Pblico Do Mtodo de ejecucin de formularios (clases). Invoca Do_Form_Explore Pblico el mtodo Do_Form_Explore del formulario Do_Form_Libre M_Cierra_Forms M_Rec_Libera Pblico Pblico Pblico Ejecuta un formulario independiente Cierra todos los formularios abiertos procedimiento de liberacion de recursos usados Defina sucesivamente las
13. Ir al men ctsse", y seleccione el submen Nueva Propiedad. siguientes propiedades (Presione el botn Agregar para ello.)
Este men solamente ser visible cuando est visible una clase, en nuestro caso, la clase TAplication.
Pgina: 3
Descripcin Nombre del archivo *.dbc que contiene la referencia a la base de datos Nombre del archivo *.bmp que contiene el color de fondo de la aplicacin Archivo que contiene un mapa de bits en blanco Nombre del archivo *.MPR" en el cual est definido el menu de la aplicacin(Generado por VFoxPro) Titulo de la anterior aplicacin Titulo de la actual aplicacin Indica si liberados los recursos de memoria han sido
configurar
del objeto
Taplication
de
OBSERVACiN
Es vaco (equivale a una cadena vaca) Es vaco (equivale a una cadena vaca) Es vaco (equivale a una cadena vaca) Es vaco (equivale a una cadena vaca) Es vaco (equivale a una cadena vaca) Es vaco (equivale a una cadena vaca) Almacena variables .F.
.T.
15. Usando el Inspector de propiedades, escriba el siguiente cdigo en el procedimiento administracin del evento Init Event del objeto TAplication:
de
anterior this.p_OldTitulo = screen.Caption screen.caption = this.p_Titulo *-- Libera todos los menus del entorno de programacion PUSH MENU MSYSMENU
16. Usando el Inspector de propiedades, escriba el siguiente cdigo en el procedimiento administracin del evento Destroy Event del objeto TAplication:
de
* Estas instrucciones verifican que se hayan liberado los * respectivos recursos de memoria antes de finalizar la aplico
IF !this.p_Rec_Libera This.m Rec Libera() ENDIF CLOSE DATA ALL
Este men solamente ser visible cuando est visible una clase, en nuestro caso, la clase T Aplication. Un archivo *.MPR es generado a partir de un archivo *.mnx (en el cual est definido un men). Puede usar el mismo VfoxPro para generar este archivo. 6 Las variables y propiedades manipuladas por VFoxPro son variantes. No es posible hacer referencia al tipo de datos de manera explcita, stos se redefinen en tiempo de ejecucin, cuando se asigna algn valor a una variable o propiedad.
4 5
Pgina: 4
----l. PROCEDIMIENTO DE APERTURA DE LA BASE DE DATOS -------CLOSE DATA ALL IF !EMPTY(this.p_DataBaseFile) OPEN DATABASE (this.p_DataBaseFile) IF EMPTY (DBC ()) =MessageBox(FILENOTEXIST_LOC + this.p_DataBaseFile, MB OK + MB_ICONSTOP, ERRORTITLE LOC) RETURN .F. ENDIF ENDIF * 2. ----- COLOREA EL FONDO DE PANTALLA ---IF !EMPTY(this.p_FileNameFondoApp) IF FILE(this.p_FileNameFondoApp) MODIFY WINDOW SCREEN FILL FILE (this.p_FileNameFondoApp) ENDIF ENDIF
* 3.
if
~--- ACTIVA
EL MENU
PRINCIPAL
DE LA APLICACION
* 4. - ESPERA QUE EL USUARIO FINALIZE LA APLICACION * GENERANDO ALGUN EVENTO ADECUADO CON EL TECLADO
*-- Start the event loop DO WHILE .T. READ EVENTS IF THIS.m_Cierra Forms() THIS.m Rec Libera EXIT ENDIF ENDDO * 5. ----- RESTAURA EL FONDO DE PANTALLA ------IF !EMPTY(this.p_FileNameFondoBlanco) IF FILE(this.p_FileNameFondoBlanco) MODIFY WINDOW SCREEN FILL FILE (this.p FileNameFondoBlanco) ENDIF ENDIF 18. Usando el Inspector de propiedades, escriba Do_Form_Explore del objeto TAplication: el siguiente cdigo en el procedimiento
LPARAMETERS tcForm, tcCodigo, tcTag * tcForm = Nombre de la clase del formulario * tcCodigo = Codigo pasado al formulario * tcTag = Algun valor extra LOCAL 1 Form, l_ValorDeRetorno 1 Form = CREATEOBJECT(tcForm) 1 ValorDeRetorno = 1 Form.Do Form_Explore(m.tcCodigo, RELEASE 1 Form RETURN 1 ValorDeRetorno
m.tcTag)
Pgina: 5
un formulario
20. Usando el Inspector de propiedades, escriba m_Cierra_Forms del objeto TAplication: LOCAL lnForm, LOCAL loForm lnFormToClose
el siguiente
cdigo en el procedimiento
FOR EACH loForm IN application.Forms IF TYPE("loForm") == "O" AND loForm.Baseclass IF !loForm.QueryUnload() RETURN .F. ENDIF -LoFo rm .Release () ENDIF ENDFOR RETURN .T .., 21. Usando el Inspector de propiedades, m_Rec_Libera del objeto TAplication: escriba el siguiente
"Form"
cdigo en el procedimiento
* Este procedimiento
libera dems recursos screen.caption = this.p_OldTitulo CLEAR EVENTS POP MENU MSYSMENU TO MASTER this.p_Rec_Libera = .T.
24. Seleccione el nodo Mens. Presionar el botn NUEVO. Y en el cuadro de dilogo que se le presentar, seleccione la opcin Men
Pgina: 6
26. Para el men Archivo, definir el submen Indicador Accin \<Salir Procedimiento En el respectivo procedimiento del submen Salir, escribir: MESSAGEBOX ("Vamos a cerrar la aplicacion. Este ser el final") CLEAR EVENTS
27. Para el men Alumnos, definir el submen Indicador Accin Ingresa datos Procedimiento En el respectivo procedimiento del submen Ingresa datos, escribir: MESSAGEBOX("Aqu va el cdigo de Ingreso , 0, "Sistema Prototipo") de datos de los Alumnos"
28. Para el men Docentes, definir el submen Indicador Accin Ingresa datos Procedimiento En el respectivo procedimiento del submen Ingresa Datos, escribir: MESSAGEBOX("Aqu va el cdigo de Ingreso , 0, "Sistema Prototipo") de datos de los Docentes"
29. Para el men Cursos, definir el submen Accin Indicador Procedimiento Ingresa datos
Pgina: 7
* Este procedimiento
En el respectivo procedimiento del submen Ayuda, escribir: MESSAGEBOX("ESTA ES UNA APLICACIN DE EJEMPLO" , O, "Sistema Prototipo") ;
32. Guardar el men recin creado como \\Practica02\Menus\MenuMatricula.mnx7 33. Vaya el men "Men" y el selecione el submen "Generar". le muestre,seleccione la opcin "Generar". 8 En el cuadro de dilogo que se
Al terminar este paso, se habrn creado los archivos \\Practica02\Menus\MenuMatricula.mnt \\Practica02\Menus\MenuMatricula.mpr El archivo *.mpr es donde se encuentra definido el procedimiento que utilizar la aplicacin para generar el men en el tiempo de ejecucin (archivo ejecutable *.exe). 34. Guardar todo.
PARTE 04:DISEO
extensin *.llUlX la asigna de manera predeterminada Visual Fox Pro. Este paso debe ser realizado cada vez que usted modifique un menu y desea que ese cambio se traduzca de manera efectiva en su aplicacin
8
7 La
Pgina: 8
*-- Desactiva el sistema lF SET ('TALK') = 'ON' SET TALK OFF PUBLlC gcOldTalk gcOldTalk = 'ON' ELSE PUBLlC gcOldTalk gcOldTalk 'OFF' ENDlF
de mensajes
PUBLlC gcOldDir, gcOldPath, gcOldClassLib, GcOldEscape . SET ("ESCAPE' ) = gcOldDir = FULLPATH(CURDlR()) gcOldPath SET('PATH') gcOldClassLib = SET('CLASSLlB') gTTrade = .T. *-- Configura el Path de Predeterminado lF SetPath () * Declara el objeto publico OApp PUBLlC oApp oApp = CREATEOBJECT("Taplication")
gcOldEscape,
gTTrade
de la aplicacion
* Verifica que hubo asignacin de memoria. * El sistema tiene espacio *de memoria lF TYPE('oApp') = "O" *-- Libera todas las variables publicas RELEASE gcOldDir, gcOldPath, gcOldClassLib, gcOldTalk, gcOldEscape oApp.p_Titulo="Aplicacin De Ejemplo" oApp.p_FileNameFondoApp=GetPath() + "Graphics\Piedra.bmp" oApp.p_FileNameFondoBlanco=GetPath() + " Graphics\Blanco.bmp" oApp.p DataBaseFile GetPath() + "Data\DeMatriculas.dbc" oApp.p::::FileNameMenu = GetPath() + "Menus\MenuMatricula.mpr" oApp. Do () ENDlF ENDlF * Libera otros recursos CLEAR DLLS RELEASE ALL EXTENDED CLEAR ALL ** Configuracin de directorios function GetPath() LOCAL lcSys16, lcProgram lcSys16 = SYS(16) lcProgram = SUBSTR(lcSys16, AT(":", lcSys16) - 1) lcProgram = LEFT (lcProgram, RAT ("\", lcProgram)) Return lcProgram Endfunc
Pgina: 9
class
37. Guarde todo. 38. Ejecute el programa main.prg 39. La practica 02 ha terminado. NOTA: Guarde (antes de empezar la prctica) en el directorio .. \Practica02\Graphics\ archivos de imagen, con los siguientes nombres: - Piedra.bmp , que contiene un 'mapa de bits con el diseo del fondo de la pantalla de la aplicacin - Blanco.bmp , que contiene un mapa de bits con un fondo Blanco ( una imagen en blanco Vaco). dos
Pgina:
l_~