Professional Documents
Culture Documents
ESFE – AGAPE
Desarrollo de Software II
CAPITULO I
CREACIÓ DE FORMULARIOS
DE MANTENIMIENTO
Para comenzar hay que tener la siguiente estructura de directorios en el disco C:\
Ingrese al programa Visual FoxPro y establezca una ruta de trabajo hacia la carpeta sistema
de la siguiente forma desde la ventana de comandos:
SET DEFAULT TO C:\SISTEMA ó bien CD C:\SISTEMA
Además de esto es muy importante declarar las rutas alternas para evitar que nuestros
formularios desplieguen errores como que no se encuentra algún archivo, esto lo hacemos
de la siguiente manera:
SET PATH TO DATOS, FORMULARIOS, IMG, INFORMES, MENUS, PRG que son
los nombres de cada una de las carpetas de la estructura creada en el primer paso.
Cabe mencionar que para que nuestro formulario funcione necesitamos declara algunas
variables publicas, el nombre de las variables son a criterio del programador en nuestro
caso las llamaremos OPCION, UBICA ; como este proceso debe realizar cada vez que
vayamos a programar, podemos almacenar las líneas de ruta y declaración de variables
dentro de un prg y le podemos llamar RUTA
Cree un proyecto con el nombre de miproyecto, y dentro de él cree una base de datos con
el nombre de ventas que contenga las siguientes tablas.
Arrastramos del entorno de datos desde el ítem que dice Fields hacia el formulario en
donde soltamos el puntero para que aparezcan los text y label respectivo de la tabla.
Luego insertamos un grid que servirá para navegar sobre los registros y elegir el deseado
para hacer las operaciones de Modificación, consulta y eliminación de registros.
Asegurandonos que el grid esta seleccionado hacemos uso del menú principal de fox,
elegimos la opción FORMAT y luego SEND TO BACK quedando de la siguiente forma.
Como siguiente paso editaremos la propiedad VISIBLE de todos los TEXT y LABEL y
además los BOTONES GUARDAR, LIMPIAR, ELIMINAR Y CANCELAR para cambiar
el estado de estos cuando el formulario inicia. Las propiedad tiene que ser cambiada a
VISIBLE=.F. esto provocara que dichos objetos estén invisibles cuando el formulario
inicie. Además tenemos que cambiar la propiedad ENABLED=.F. Y READONLY=.T. del
GRID. Y por último la propiedad ENABLED=.F. del botón guardar para evitar que se
guarden vacíos los campos
Para crear el método, primero tenemos que asegurarnos que no esté seleccionado ningún
objeto luego vamos al menú principal de fox y elegimos la Opcion de FORM, elegimos del
submenú la opción NEW METHOD
Cabe mencionar que el grid es un objeto de tipo contenedor, osea que esta compuesto de
otros objetos como lo son COLUMNAS, HEADER Y TEXT, los cuales para mejor
apariencia deben ser editados, por ejemplo el ANCHO Y CAPTION de las columnas. Para
editar los objetos del grid debemos dar click derecho sobre el grid y luego elegir la opción
EDIT.
Ahora procedemos a programar en el evento KEYPRESS del TEXT1 pero del grid,es muy importante que
usted se asegure de no hacerlo en el text del formulario, damos doble click sobre el grid y luego en la ventana
de edición de eventos elegimos el objeto text1 del grid, luego cambiamos de evento eligiendo el evento
KEYPRESS
Primero vamos a poner la propiedad ENABLED=.F. del Boton de Guardar para evitar que nos puedan agregar
datos vacios, puesto que no hemos validado eso todavía. Luego vamos a convertir todos los TEXT en
variables de memoria, editando la propiedad CONTROLSOURCE de cada uno de los TEXT, en donde
reemplazamos el nombre de la tabla por la letra “M” (de memory) de la siguiente manera. Esto es la escencia
de las variables de memoria por eso muy importante realizarlo.
Y para terminar con nuestro formulario de mantenimiento, vamos a validar el nombre del
cliente para que nuestro sistema nos comunique si el cliente ya existe, nosotros
determinaremos si se puede repetir o no el nombre, para ello hay que tomar en cuenta que
pueden existir mas de una persona que se llame exactamente igual, por ejemplo si fuese un
formulario de marcas, no debe dejar que existan dos con el mismo nombre, repito es a
criterio de la tabla a la que vayamos a agregar datos.
CAPITULO II
CREACIÓ DE FORMULARIOS
DE BUSQUEDA
Para poder utilizar el grid con Consultas SQL debemos cambiar las propiedades
RECORDSOURCETYPE=4 SQL, y la propiedad
RECORDSOURCE= SELECT * FROM CLIENTES INTO CURSOR XLX
Vamos a proceder a programar el evento KEYPRESS y DBLCLICK del TEXT1 pero del
GRID de igual manera como lo hicimos en el formulario de mantenimiento, con la variante
que NO vamos ocupar el GENERRADOR de GRID para determinar las columnas del grid,
vamos a utilizar la propiedad COLUMNCOUNT, en este caso vamos a colocar cuatro
columnas, sin embargo debe contener las columnas que sean necesarias para ver la
información adecuada. Además debemos editar el ancho y caption de cada columna para
que tenga buena apariencia como lo vimos cuando diseñamos el form de
MANTENIMIENTO.
select cliente
loca for allt(id_cliente) = allt(this.value)
thisform.release
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
CAPITULO III
ENCRIPATAMIENTO
PARA SEGURIDAD
EN ACCESOS AL SISTEMA
********************************
* PROCEDIMIENTO PARA ENCRIPTAR *
********************************
Procedure Encriptar
Parameter mensaje
MensajeEncriptado = ""
for a = 1 to len(alltrim(mensaje) )
letra = subs(alltrim(mensaje),a,1)
AsciideLetra = asc(letra)
LetraEncriptada = chr(AsciideLetra * 2)
MensajeEncriptado = MensajeEncriptado + LetraEncriptada
Endfor
Return MensajeEncriptado
***********************************
* PROCEDIMIENTO PARA DESENCRIPTAR *
***********************************
Procedure desencripta
Parameter mensa
MensajedesenEncripta = ""
for A = 1 to len(mensa)
CARACTER = subs(ALLTRIM(mensa),a,1)
LETRA=ASC(CARACTER)
B=LETRA/2
B = chr(B)
MensajedesenEncripta= MensajedesenEncripta + B
Endfor
Return MensajedesenEncripta
Explicación:
thisform.text2.value = encriptar(thisform.text1.value) : Lo que hace esto es llamar un
procedimiento que se llama Encriptar que se encuentra en el archivo procedimiento que
se invocó desde el LOAD, y luego envia el valor del text1 en la variable que recibe el
Nombre Carácter 40
Nivel Carácter 15
Login Carácter 25
Contraseña Carácter 8
Crear un formulario que contenga los objetos siguientes y agregue al entorno de datos la tabla
usuario: Nombre del formulario USUARIOS
SELECT Usuario
SCATTER MEMVAR
Thisform.Refresh
NOTA: Recuerda que el procedimiento que estamos invocando es el que creasteis para encriptar
datos en el formulario anterior
SELECT Usuario
SET ORDER TO Login
IF SEEK (m.Login)
=messagebox("Error login ya existe ",32,"Error")
return 0
ENDIF
CAPITULO IV
CREACIÓN Y GENERADOR
DE MENÚS
Luego
Para eso tienes que subir de nivel en el formulario, seleccione barra de menús
Escribe….
Recuerda que tienes que subir de nivel en el formulario, seleccione barra de menús
· Generar...
(Todos los menús tienen una extensión *.mnx antes de generarse, cuando se
generan se crea otro archivo con la extensión a *.mpr pero con el mismo
nombre, el cual es el archivo a ejecutar)
· Ahora si cerramos el diseñador de menú con CTR-W para guardar los cambios
Ahora es cuando ya podemos utilizar el menú Formulario, Consultas y Salir; y ejecutar los
formularios que hemos creado anteriormente. Para ello ejecutar utiliza en botón RUN
del Administrador de Proyectos:
CAPITULO V
CREACIÓN Y
CONFIGURACION PARA
EL PROGRAMA PRINCIPAL
DE LA APLICACIÓN
Do Menu.Mpr
SET DEFAULT TO SYS(5) + CURDIR() **// Establece la ruta hacia la carpeta principal
set sysmenu off **//Desactiva la barra de menús de Fox durante la ejecución del sistema
set talk off **// Determina si Fox muestra o no los resultados de los comandos
set delete on **// Deshabilita los registros marcados para ser eliminados
set date dmy **// Establece el formato de fecha Dia, Mes y Año
set notify off **// Desactiva la presentación de algunos mensajes del sistema.
read events
Valid Text1
selec usuario
if !empty(this.value)
locate for alltrim(login)==alltrim(this.value)
if !found()
=messagebox("Error ",16,thisform.caption)
this.value=" "
ThisForm.Label1.caption = ""
return 0
thisform.refresh
else
ThisForm.Label1.caption = usuario.nombre
thisform.refresh
endif
thisform.text2.enabled=.t.
endif
Interactivechange Text2
thisform.vacio
Valid Text2
Clave = encriptar(alltr(this.value))
Elmer Galdámez...