guia_de_formularios_en_fox_ver.2010

Page 1

2010 Guía Práctica de Visual Fox Pro 9.0

Ing. Maynor Guillermo Reynado Universidad Técnica Latinoamericana 22/04/2010


Crear la estructura de directorio

Clic en Inicio Clic en Equipo Ubicarnos en el disco local Crear una carpeta con el nombre de Sistema de RA

Entrar a la carpeta de Sistema de RA Crear cuatro subdirectorios o Bases o Formularios o ImĂĄgenes o Reportes

Abrir el programa de Visual Fox Pro 9.0

Clic en el icono de Zorro En la lĂ­nea de comando digitamos Close all y enter Luego digitamos clear para limpiar

2


Crear un proyecto en Visual Fox Pro 9.0 Ejecutar el programa y dar clic en la opci贸n Nuevo (New)

Seleccionamos Proyecto (project) y damos clic en Nuevo archivo (New file)

Seleccionamos la ubicaci贸n del proyecto (C:\Sistema de RA) y le asignamos nombre (SistemaRA), luego damos clic en el bot贸n Guardar. En el administrador de proyecto es donde nosotros vamos administrar la base da datos, tablas, formularios, etc.

3


Crear una base de datos En al administrador de proyectos nos ubicamos en Databases Damos clic en el bot贸n New Damos Clic en New Database

En la ventana de dialogo localizamos la ubicaci贸n donde vamos a guardar la base de datos (C:\Sistema de RA\Bases) Luego damos clic en el bot贸n Guardar

4


Crear Tablas. En el administrador de proyectos me ubico sobre la base de datos que acabo de crear (registroacademico), extiendo el árbol de contenido Clic sobre tablas Clic sobre New Clic sobre New Table Localizamos la ubicacion de la table (C:\Sistema de RA\Bases) Asignamos el nombre a la tabla Clic en el botón guardar Y comenzamos a diseñar las tablas que a continuación se presenta la estructura de cada una.

Nota: para la práctica se crearan 4 tablas con los siguientes nombres Maestrodealumnos Maestrodecarreras Maestrodematerias Maestroacademico Repetir los pasos para las tablas restantes.

5


Estructura de las bases de Datos.

6


Nota: Al aplicar índices a los campos debemos de configura el tipo, dando clic en la ficha de Índices y seleccionando el tipo “Regular”. Los índices nos sirven para identificar los campos llaves y poder relacionar tablas entre si.

7


Crear Formulario Dar clic en la pestaña de Documentos del administrador de proyectos, seleccionar formularios y dar clic en el botón New y luego en New Form.

En la área de trabajo del formulario dar clic derecho y seleccionar la opción de Entorno de Datos para trabaja con las tablas que sean necesario para la funcionabilidad del mismo.

Localizamos la tabla con la que vamos a trabaja el formulario, la seleccionamos y damos clic en el botón agregar, inmediatamente aparecerá en el entorno de datos del formulario.

8


Al tener la tabla en el entorno de trabajo nos ubicamos en Fields y con clic sostenido arrastramos hasta el formulario para ingresar los campos de la tabla. Luego los ordenamos y distribuimos como mejor consideremos.

Objetos del Formulario: Etiquetas: 19 Cajas de Texto: 19 Botones: 8

9


Despu茅s de insertar los campos al formulario debemos remover la tabla del entorno de trabajo, con clic derecho sobre la tabla y la opci贸n remover.

Luego Vamos a alinear las etiquetas, cajas de texto y botones. Herramienta para alinear

Controles de formulario

Propiedades que vamos a cambiar de algunos objetos: Captio: Nombre para mostrar FontBold: Negrita Backcolor: Color de fondo Enabled: Deshabilitado

10


Hasta este momento tenemos dise帽ado nuestro formulario, debemos guardarlo en la carpeta de formulario que esta dentro de Sistema de RA con el nombre de mantenimiento de alumnos.

C贸digos de los objetos y eventos del Formulario de Datos Personales. EVENTO INIT: THISFORM.TXtCodalu.Value='' THISFORM.TXtNombre.ValUE='' THISFORM.TXtApellidos.Value='' THISFORM.TXtCodcarrera.Value='' THISFORM.TXtDireccion.Value='' THISFORM.TXtDui.Value='' THISFORM.TXtEdad.Value='' THISFORM.TXtEmail.Value='' THISFORM.TXtFechanac.Value='' THISFORM.TXtInstitutopre.Value='' THISFORM.TXtIsss.Value='' THISFORM.TXTLugarnac.Value='' THISFORM.TXtMadre.Value='' THISFORM.TXtMovil.Value='' THISFORM.TXtNit.Value='' THISFORM.TXtNup.Value='' THISFORM.TXtPadre.Value='' THISFORM.TXtTelefono.Value='' THISFORM.TXtTitulo.Value=''

11


EVENTO LOAD CLOSE DATABASES SET DATE FRENCH SET CENTURY ON SET SAFETY OFF SET ECHO OFF SET TALK OFF SET DELETED ON USE USE "\sistema de ra\bases\maestrodealumnos" IN 0 SHARED ORDER CODALU SET MULTILOCKS ON = CURSORSETPROP('BUFFERING',5,'MAESTRODEALUMNOS')

BOTON NUEVO: SELECT MAESTRODEALUMNOS * CREANDO UN REGISTRO EN BLANCO APPEND BLANK *LIMPIANDO LOS CAMPOS THISFORM.TXtCodalu.Value='' THISFORM.TXtNombre.ValUE='' THISFORM.TXtApellidos.Value='' THISFORM.TXtCodcarrera.Value='' THISFORM.TXtDireccion.Value='' THISFORM.TXtDui.Value='' THISFORM.TXtEdad.Value='' THISFORM.TXtEmail.Value='' THISFORM.TXtFechanac.Value='' THISFORM.TXtInstitutopre.Value='' THISFORM.TXtIsss.Value='' THISFORM.TXTLugarnac.Value='' THISFORM.TXtMadre.Value='' THISFORM.TXtMovil.Value='' THISFORM.TXtNit.Value='' THISFORM.TXtNup.Value='' THISFORM.TXtPadre.Value='' THISFORM.TXtTelefono.Value='' THISFORM.TXtTitulo.Value='' * HABILITANDO LOS CAMPOS THISFORM.TXtCodalu.ENABLED=.T. THISFORM.TXtNombre.ENABLED=.T. THISFORM.TXtApellidos.ENABLED=.T. THISFORM.TXtCodcarrera.ENABLED=.T. THISFORM.TXtDireccion.ENABLED=.T. THISFORM.TXtDui.ENABLED=.T. THISFORM.TXtEdad.ENABLED=.T. THISFORM.TXtEmail.ENABLED=.T. THISFORM.TXtFechanac.ENABLED=.T. THISFORM.TXtInstitutopre.ENABLED=.T. THISFORM.TXtIsss.ENABLED=.T. THISFORM.TXTLugarnac.ENABLED=.T. THISFORM.TXtMadre.ENABLED=.T. THISFORM.TXtMovil.ENABLED=.T. THISFORM.TXtNit.ENABLED=.T. THISFORM.TXtNup.ENABLED=.T. THISFORM.TXtPadre.ENABLED=.T. THISFORM.TXtTelefono.ENABLED=.T. THISFORM.TXtTitulo.ENABLED=.T.

12


* POSICIONAMIENTO EN EL PRIMER CAMPO THISFORM.TXtCodalu.SetFocus() * ACTUALIZANDO THISFORM.Refresh()

BOTON GUARDAR: SELECT MAESTRODEALUMNOS TABLEUPDATE() THISFORM.TXtCodalu.ENABLED=.F. THISFORM.TXtNombre.ENABLED=.F. THISFORM.TXtApellidos.ENABLED=.F. THISFORM.TXtCodcarrera.ENABLED=.F. THISFORM.TXtDireccion.ENABLED=.F. THISFORM.TXtDui.ENABLED=.F. THISFORM.TXtEdad.ENABLED=.F. THISFORM.TXtEmail.ENABLED=.F. THISFORM.TXtFechanac.ENABLED=.F. THISFORM.TXtInstitutopre.ENABLED=.F. THISFORM.TXtIsss.ENABLED=.F. THISFORM.TXTLugarnac.ENABLED=.F. THISFORM.TXtMadre.ENABLED=.F. THISFORM.TXtMovil.ENABLED=.F. THISFORM.TXtNit.ENABLED=.F. THISFORM.TXtNup.ENABLED=.F. THISFORM.TXtPadre.ENABLED=.F. THISFORM.TXtTelefono.ENABLED=.F. THISFORM.TXtTitulo.ENABLED=.F.

BOTON ELIMINAR: IF !DELETED() E=MESSAGEBOX('Esta Seguro de Eliminar el Registro',4+32+256,'Eliminar') IF e=6 DELETE ELSE RECALL ENDIF ENDIF

BOTON SALIR: SELECT 1 USE THISFORM.Release()

BOTON PRIMERO: GO top thisform.Refresh()

BOTON ANTERIOR: IF !BOF() SKIP-1 THISFORM.Refresh() ELSE

13


GO BOTTOM THISFORM.Refresh() ENDIF

BOTON SIGUIENTE: IF !EOF() SKIP+1 THISFORM.Refresh() ELSE GO TOP THISFORM.Refresh() ENDIF

BOTON ULTIMO: GO BOTTOM thisform.refRESH() Para ejecutar el formulario presionamos la combinaci贸n Ctrl + E y nos deber铆a de quedar de la siguiente forma.

LOAD SET SET SET SET

DATE FRENCH CENTURY ON SAFETY OFF ECHO OFF

14


SET TALK OFF SET DELETED ON *ABRIENDO TABLAS CLOSE DATABASES USE USE "\sistema de ra\bases\maestrodecarreras" IN 0 SHARED ORDER CODCARRERA SET MULTILOCKS ON = CURSORSETPROP('BUFFERING',5,'MAESTRODECARRERAS') INIT * LIMPIAR CAMPOS THISFORM.TXtCarrera.Value='' THISFORM.TXtCodcarrera2.Value='' BOTON NUEVO SELECT MAESTRODECARRERAS * CREANDO UN REGISTRO EN BLANCO APPEND BLANK * LIMPIAR CAMPOS THISFORM.TXtCarrera.Value='' THISFORM.TXtCodcarrera2.Value='' *HABILITAR CAMPOS THISFORM.TXtCarrera.Enabled=.T. THISFORM.TXtCodcarrera2.Enabled= .T. * POSICIONAMIENTO EN EL PRIMER CAMPO THISFORM.TXtCodCARRERA2.SetFocus() * ACTUALIZANDO THISFORM.Refresh() BOTNO GUARDAR *GUARDADOS CAMBIOS SELECT MAESTRODECARRERAS TABLEUPDATE() *DESHABILITAR CAMPOS THISFORM.TXtCarrera.Enabled=.F. THISFORM.TXtCodcarrera2.Enabled= .F. BOTNO ELIMINAR IF !DELETED() E=MESSAGEBOX('Esta Seguro de Eliminar el Registro',4+32+256,'Eliminar') IF e=6

15


DELETE ELSE RECALL ENDIF ENDIF BOTON SALIR select 1 USE THISFORM.Release()

LOAD SET SET SET SET SET SET

DATE FRENCH CENTURY ON SAFETY OFF ECHO OFF TALK OFF DELETED ON

*HACIENDO VARIABLES PUBLICAS PUBLIC XCARRERA *ABRIENDO TABLAS CLOSE DATABASES USE USE "\sistema de ra\bases\maestrodematerias" IN 0 SHARED ORDER CODMATE USE "\sistema de ra\bases\maestrodecarreras" IN 0 SHARED ORDER CODCARRERA

16


SET MULTILOCKS ON = CURSORSETPROP('BUFFERING',5,'MAESTRODEMATERIAS') INIT *LIMPIANDO CAMPOS THISFORM.TXTCodcarrera.Value='' THISFORM.TXtCodmate.Value='' THISFORM.TXtCodprerequi.Value='' THISFORM.TXTMateria.Value='' THISFORM.TXTPlan.VALUE='' THISFORM.TXtPrerequisito.Value='' THISFORM.TXTUv.Value=0 THISFORM.Text1.ValUE='' *INICIALIZANDO VARIABLES STORE '' TO XCARRERA VALID TXTCODCARRE *BUSCAR REGISTRO EN OTRA TABLA IF !EMPTY (THIS.VALUE) SELECT MAESTRODECARRERAS SEEK ALLTRIM(THIS.Value) IF FOUND() XCARRERA= ALLTRIM(MAESTRODECARRERAS.CARRERA) ELSE WAIT WINDOWS 'EL CODIGO DE CARRERA ESTA INCORRECTA, INTENTE DE NUEVO' RETURN 0 ENDIF ELSE WAIT WINDOWS 'DIGITE EL CODIGO DE LA CARRERA' RETURN 0 ENDIF THISFORM.Refresh() BOTON NUEVO SELECT MAESTRODEMATERIAS * CREANDO UN REGISTRO EN BLANCO APPEND BLANK *LIMPIANDO LOS CAMPOS THISFORM.TXTCodcarrera.Value='' THISFORM.TXtCodmate.Value='' THISFORM.TXtCodprerequi.Value='' THISFORM.TXTMateria.Value='' THISFORM.TXTPlan.VALUE='' THISFORM.TXtPrerequisito.Value='' THISFORM.TXTUv.Value=0

17


* HABILITANDO LOS CAMPOS THISFORM.TXTCodcarrera.ENABLED=.T. THISFORM.TXtCodmate.ENABLED=.T. THISFORM.TXtCodprerequi.ENABLED=.T. THISFORM.TXTMateria.ENABLED=.T. THISFORM.TXTPlan.ENABLED=.T. THISFORM.TXtPrerequisito.ENABLED=.T. THISFORM.TXTUv.ENABLED=.T. * POSICIONAMIENTO EN EL PRIMER CAMPO THISFORM.TXtCodmate.SetFocus() * ACTUALIZANDO THISFORM.Refresh() BOTON GUARDAR *GUARDADOS CAMBIOS SELECT MAESTRODEMATERIAS TABLEUPDATE() *DASHABILITANDO CAMPOS THISFORM.TXTCodcarrera.ENABLED=.F. THISFORM.TXtCodmate.ENABLED=.F. THISFORM.TXtCodprerequi.ENABLED=.F. THISFORM.TXTMateria.ENABLED=.F. THISFORM.TXTPlan.ENABLED=.F. THISFORM.TXtPrerequisito.ENABLED=.F. THISFORM.TXTUv.ENABLED=.F. BOTON ELIMINAR IF !DELETED() E=MESSAGEBOX('Esta Seguro de Eliminar el Registro',4+32+256,'Eliminar') IF e=6 DELETE ELSE RECALL ENDIF ENDIF BOTNO SALIR select 1 USE SELECT 2 USE THISFORM.Release()

18


LOAD CLOSE DATABASES SET DATE FRENCH SET CENTURY ON SET SAFETY OFF SET ECHO OFF SET TALK OFF SET DELETED ON PUBLIC XNOMBRE, XCARRERA, XMATERIA, XPROMEDIO, XESTADO USE USE "\sistema USE "\sistema USE "\sistema USE "\sistema CODCARRERA

de de de de

ra\bases\maestroacademico" IN 0 SHARED ORDER CODALU ra\bases\maestrodealumnos" IN 0 SHARED ORDER CODALU ra\bases\maestrodeMATERIAS" IN 0 SHARED ORDER CODMATE ra\bases\maestrodeCARRERAS" IN 0 SHARED ORDER

SET MULTILOCKS ON = CURSORSETPROP('BUFFERING',5,'MAESTROACADEMICO') INIT STORE '' TO XNOMBRE, XCARRERA, XMATERIA, XESTADO STORE 0 TO XPROMEDIO CREAMOS UN METODO PARA EL CALCULO DEL ESTADO. CLIC EN TOOLS CLIC EN NEW METHOD LE ASIGNAMOS NOMBRE Y DESCRIPCION

19


CALCULO SELECT MAESTROACADEMICO REPLACE MAESTROACADEMICO.PROMEDIO WITH ROUND((MAESTROACADEMICO.NOTA1+MAESTROACADEMICO.NOTA2+MAESTROACADEMICO. NOTA3; +MAESTROACADEMICO.NOTA4+MAESTROACADEMICO.NOTA5)/5,2) IF MAESTROACADEMICO.PROMEDIO >=6 REPLACE MAESTROACADEMICO.ESTADO WITH 'APROBADO' ELSE REPLACE MAESTROACADEMICO.ESTADO WITH 'REPROBADO' ENDIF REFRESH THISFORM.Calculo() TXTCODALU IF !EMPTY (THIS.VALUE) SELECT MAESTRODEALUMNOS SEEK ALLTRIM(THIS.Value) IF FOUND() XNOMBRE= ALLTRIM(MAESTRODEALUMNOS.NOMBRE)+ ALLTRIM(MAESTRODEALUMNOS.APELLIDOS) ELSE WAIT WINDOWS 'EL CODIGO DEL ALUMNO ESTA INCORRECTO, INTENTE DE NUEVO' RETURN 0 ENDIF ELSE WAIT WINDOWS 'DIGITE EL CODIGO DEL ALUMNO' RETURN 0 ENDIF THISFORM.Refresh() TXTCODCARRE IF !EMPTY (THIS.VALUE)

20


SELECT MAESTRODECARRERAS SEEK ALLTRIM(THIS.Value) IF FOUND() XCARRERA= ALLTRIM(MAESTRODECARRERAS.CARRERA) ELSE WAIT WINDOWS 'EL CODIGO DE CARRERA ESTA INCORRECTA, INTENTE DE NUEVO' RETURN 0 ENDIF ELSE WAIT WINDOWS 'DIGITE EL CODIGO DE LA CARRERA' RETURN 0 ENDIF THISFORM.Refresh() TXTCODMATE IF !EMPTY (THIS.VALUE) SELECT MAESTRODEMATERIAS SEEK ALLTRIM(THIS.Value) IF FOUND() XMATERIA= ALLTRIM(MAESTRODEMATERIAS.MATERIA) ELSE WAIT WINDOWS 'EL CODIGO DE MATERIA ESTA INCORRECTA, INTENTE DE NUEVO' RETURN 0 ENDIF ELSE WAIT WINDOWS 'DIGITE EL CODIGO DE LA MATERIA' RETURN 0 ENDIF THISFORM.Refresh() BOTON NUEVO SELECT MAESTROACADEMICO * CREANDO UN REGISTRO EN BLANCO APPEND BLANK * LIMPIAR CAMPOS THISFORM.TXtCodalu.Value='' THISFORM.TExt6.ValUE='' THISFORM.TXtCodcarrera.Value='' THISFORM.TExt7.Value='' THISFORM.TXtCodmate.Value='' THISFORM.TExt8.Value='' THISFORM.TXtA単o.Value='' THISFORM.TXtCiclo.Value='' THISFORM.TXtEstado.Value='' THISFORM.TXtFecha.Value='' THISFORM.TXtNota1.Value=0 THISFORM.TXtNota2.Value=0 THISFORM.TXtNota3.Value=0 THISFORM.TXtNota4.Value=0

21


THISFORM.TXtNota5.Value=0 THISFORM.TXTPromedio.Value=0 *HABILITAR CAMPOS THISFORM.TXtCodalu.ENABLED=.T. THISFORM.TXtCodcarrera.ENABLED=.T. THISFORM.TXtCodmate.ENABLED=.T. THISFORM.TXtA単o.ENABLED=.T. THISFORM.TXtCiclo.ENABLED=.T. THISFORM.TXtFecha.ENABLED=.T. THISFORM.TXtNota1.ENABLED=.T. THISFORM.TXtNota2.ENABLED=.T. THISFORM.TXtNota3.ENABLED=.T. THISFORM.TXtNota4.ENABLED=.T. THISFORM.TXtNota5.ENABLED=.T. * POSICIONAMIENTO EN EL PRIMER CAMPO THISFORM.TXtCodALU.SetFocus() * ACTUALIZANDO THISFORM.Refresh() BOTON GUARDAR *GUARDADOS CAMBIOS SELECT MAESTROACADEMICO TABLEUPDATE() *DESHABILITAR CAMPOS THISFORM.TXtCodalu.ENABLED=.F. THISFORM.TXtCodcarrera.ENABLED=.F. THISFORM.TXtCodmate.ENABLED=.F. THISFORM.TXtA単o.ENABLED=.F. THISFORM.TXtCiclo.ENABLED=.F. THISFORM.TXtFecha.ENABLED=.F. THISFORM.TXtNota1.ENABLED=.F. THISFORM.TXtNota2.ENABLED=.F. THISFORM.TXtNota3.ENABLED=.F. THISFORM.TXtNota4.ENABLED=.F. THISFORM.TXtNota5.ENABLED=.F. BOTON ELIMINAR IF !DELETED() E=MESSAGEBOX('Esta Seguro de Eliminar el Registro',4+32+256,'Eliminar') IF e=6 DELETE ELSE RECALL ENDIF ENDIF

22


BOTNO SALIR select 1 USE SELECT 2 USE SELECT 3 USE SELECT 4 use CLOSE DATABASES THISFORM.Release()

CREACION DE MENU

23


DO FORM "\sistema de ra\formularios\mantenimiento de alumnos" DO FORM "\sistema de ra\formularios\mantenimiento de materia" DO FORM "\sistema de ra\formularios\mantenimiento de carreras" DO FORM "\sistema de ra\formularios\mantenimiento academico"

CODIGO PRINCIPAL

CLOSE DATABASES SET DELETED OFF SET PATH TO \sistema de ra\; \sistema de ra\BASES\;\sistema de ra\FORMULARIOS\; \sistema de ra\MENU\; \sistema de ra\PROGRAMAS\;\sistema de ra\IMAGENES\; \sistema de ra\REPORTES\;\sistema de ra\TEMP\ SET DEFAULT TO "\sistema de ra\"

24


_SCREEN.AutoCenter= .T. _SCREEN.BACKCOLOR=RGB(192,192,192) _SCREEN.Caption='SISTEMA DE REGISTRO ACADEMICO' _SCREEN.WindowState= 2 _SCREEN.PICTURE="\sistema de ra\IMAGENES\WEB.jpg" @ 20.615,01.200 SAY 'SISTEMA DESARROLLADO PARA:' ; FONT 'ARIAL', 20; STYLE 'BT'; COLOR RGB(0,0,255,,,,) @ 23.615,00.800 SAY 'LABORATORIO DE TIC:' ; FONT 'ARIAL', 20; STYLE 'BT'; COLOR RGB(0,0,255,,,,) @ 30.950,01.000 SAY 'DESARROLLADO POR ING. MAYNOR GUILLERMO REYNADO' ; FONT 'ARIAL', 20; STYLE 'BT'; COLOR RGB(0,0,255,,,,) DO '\sistema de ra\menu\menu principal.MPR' READ EVENTS CLEAR READ RELEASE memory QUIT CREAR EL ARCHIVO EJECUTABLE

25


26


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.