P. 1
GUIA DE FOXPRO 9.0

GUIA DE FOXPRO 9.0

3.0

|Views: 10.906|Likes:
Publicado porAnselmo Shunico

More info:

Published by: Anselmo Shunico on May 06, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

08/12/2013

pdf

text

original

Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II

CAPITULO I CREACIÓ DE FORMULARIOS DE MANTENIMIENTO

Catedrático: Josué Elí Quijada

1

Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II

Manual de Programación en Visual Fox Pro 9.0
En este manual se muestra la forma básica de programar formularios utilizando variables de memoria. Se tomarán como base unas tablas que en realidad no cumplen los requisitos básicos para una base de datos, sin embargo se tomaran como ejemplo por razones didácticos, recuerden que solo se usaran para poder completar el manual, si ustedes desean crear una base de datos con todos sus requisitos deben hacer el estudio para poder determinar todos los requerimientos.

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 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 que son

Catedrático: Josué Elí Quijada

2

Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II

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.

Creamos un formulario Llamado CLIENTES y agregamos al entorno de datos del formulario la tabla clientes de la siguiente manera

Catedrático: Josué Elí Quijada

3

Catedrático: Josué Elí Quijada 4 . 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.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II Aparece la ventana del entorno de datos elegimos la Tabla CLIENTES y pulsamos Click Sobre el botón ADD posteriormente damos Click al botón Close.

Luego introducimos y editamos los botones correspondientes para el funcionamiento de nuestro formulario de mantenimiento. Quedando de la siguiente manera: Catedrático: Josué Elí Quijada 5 . y editando la propiedad NAME de los TEXT para tratar de generar programación de tipo genérica.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II Nos queda de la siguiente manera distribuyéndolos adecuadamente.

esto provocara que dichos objetos estén invisibles cuando el formulario inicie.F. LIMPIAR. Las propiedad tiene que ser cambiada a VISIBLE=.F. del botón guardar para evitar que se guarden vacíos los campos Catedrático: Josué Elí Quijada 6 . consulta y eliminación de registros. command2. Y por último la propiedad ENABLED=.F.T.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II Solo agregar los botones básicos y no vamos validar los datos de entrada (el formulario debe verse así) El nombre de los botones puedes dejarlos como están por defecto. Y READONLY=. 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. Además tenemos que cambiar la propiedad ENABLED=. ELIMINAR Y CANCELAR para cambiar el estado de estos cuando el formulario inicia. Asegurandonos que el grid esta seleccionado hacemos uso del menú principal de fox. del GRID. en este caso se llamaran Command1. command3 y así sucesivamente hasta llegar al Command9 que es el de salir Luego insertamos un grid que servirá para navegar sobre los registros y elegir el deseado para hacer las operaciones de Modificación.

para mejor comprensión dividiremos los botones en dos grupos llamando el primer grupo BOTONES PRINCIPALES Y el segundo grupo lo llamaremos BOTONES AUXILIARES Para crear el método. elegimos del submenú la opción NEW METHOD Procedemos a escribir el código en dicho método que ahora se encuentra en la ventana de propiedades de nuestro formulario. nos quedara de la siguiente manera: METODO OPCIONES DEL FORMULARIO Catedrático: Josué Elí Quijada 7 .Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II A CONTINUACIÓN ES HORA DE EMPEZAR A PROGRAMAR Como primer paso crearemos un método con el nombre OPCIONES el cual tendrá la programación de todos los botones principales de nuestro formulario de mantenimiento. primero tenemos que asegurarnos que no esté seleccionado ningún objeto luego vamos al menú principal de fox y elegimos la Opcion de FORM.

255) Catedrático: Josué Elí Quijada 8 . nos tiene que quedar de la siguiente manera.255) thisform.128.128.255) thisform.DisabledBackColor=RGB(0.opciones EVENTO CLICK DEL BOTON CONSULTAR COMMAND7 opcion=3 this. a continuación la programación de los botones principales: EVENTO CLICK DEL BOTON NUEVO COMMAND5 opcion=1 this.DisabledBackColor=RGB(0.255) thisform.opciones EVENTO CLICK DEL BOTON ELIMINAR COMMAND8 opcion=4 this. Bueno estos dos métodos los principales de nuestro formulario.128.DisabledBackColor=RGB(0.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II De igual manera creamos un método que le llamaremos ENTER. el cual se ejecutará cuando el usuario presione la TECLA ENTER dentro del grid.128.DisabledBackColor=RGB(0.opciones EVENTO CLICK DEL BOTON MODIFICAR COMMAND6 opcion=2 this.

opciones EVENTO LOAD DEL FORM Select clientes Scatter memvar blank EVENTO CLICK DEL BOTON GUARDAR COMMAND1 EVENTO CLICK DEL BOTON LIMPIAR COMMAND2 EVENTO CLICK DEL BOTON ELIMINAR COMMAND3 (BOTON AUXILIAR) Catedrático: Josué Elí Quijada 9 .Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II thisform.

Para podamos elegir la procedencia y distribución de los registros.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II EVENTO CLICK DEL BOTON CANCELAR COMMAND4 ¿Bueno. Catedrático: Josué Elí Quijada 10 . Para definir el grid. Salir no hay que mostrarlo. verdad? VAMOS A PROCEDER A DEFINIR Y PROGRAMAR EL GRID. elegimos la opción BUILDER (generador). necesitamos seleccionarlo y luego dar click derecho sobre el.

Cabe mencionar que el grid es un objeto de tipo contenedor. Para editar los objetos del grid debemos dar click derecho sobre el grid y luego elegir la opción EDIT. en donde deben aparecer todos los campos que queremos que aparezcan en nuestro grid. por ejemplo el ANCHO Y CAPTION de las columnas. HEADER Y TEXT. eso va ha permitir visualizar los campos de la tabla.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II Damos click a la tabla clientes. osea que esta compuesto de otros objetos como lo son COLUMNAS. los cuales para mejor apariencia deben ser editados. los trasladamos al ítem SELECT FIELDS(campos seleccionados). Catedrático: Josué Elí Quijada 11 . haciendo uso de los botones de desplazamiento.

editando la propiedad CONTROLSOURCE de cada uno de los TEXT. Catedrático: Josué Elí Quijada 12 . (ESTE CODIGO DEBE COPIARSE Y PEGARSE EN CADA UNA DE LAS COLUMNAS DEL GRID EN EL TEXT1) VAMOS A PROCEDER A PROGRAMAR Y VALIDAR LOS TEXT Y BOTON DE GUARDAR Primero vamos a poner la propiedad ENABLED=. Esto es la escencia de las variables de memoria por eso muy importante realizarlo. damos doble click sobre el grid y luego en la ventana de edición de eventos elegimos el objeto text1 del grid.es muy importante que usted se asegure de no hacerlo en el text del formulario. luego cambiamos de evento eligiendo el evento KEYPRESS EVENTO KEYPRESS DEL TEXT1 DEL GRID Si presionamos ENTER dentro del grid ejecuta el método que creamos anteriormente llamado ENTER y La BARRA ESPACIADORA ejecuta una búsqueda de registros. del Boton de Guardar para evitar que nos puedan agregar datos vacios. Luego vamos a convertir todos los TEXT en variables de memoria. en donde reemplazamos el nombre de la tabla por la letra M (de memory) de la siguiente manera.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II Ahora procedemos a programar en el evento KEYPRESS del TEXT1 pero del grid. puesto que no hemos validado eso todavía.F.

Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II GENERAR EL CÓDIGO DE CLIENTE Y ACTIVAR EL BOTON GUARDA Primero vamos a editar la propiedad FORMAT de los TEXT escribiendo los símbolos !k . Catedrático: Josué Elí Quijada 13 . que sirven para solo mayúsculas y auto selección respectivamente. en esta GUIA lo haremos directamente en el evento INTERACTIVECHANGE del Text2 Correspondiente al Nombre del Cliente. luego procedemos generar el código de cliente. Existen diferentes formas para generar códigos.

T. HEMOS TERMINADO CON EL FORM DE MANTENIMIENTO Catedrático: Josué Elí Quijada 14 . repito es a criterio de la tabla a la que vayamos a agregar datos. EVENTO VALID DEL TEXT2 (NOMBRE) Solo resta editar el CAPTION y poner el FORM como AUTOCENTER=. 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. vamos a ejecutar el evento interactivechange del text2 que ya tiene la programación necesaria.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II Luego tenemos que programar en el evento INTERACTIVECHANGE de cada uno de los TEXT que son obligatorios. para ello hay que tomar en cuenta que pueden existir mas de una persona que se llame exactamente igual. no debe dejar que existan dos con el mismo nombre. por ejemplo si fuese un formulario de marcas. Y para terminar con nuestro formulario de mantenimiento. no vamos a repetir el código.

Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II CAPITULO II CREACIÓ DE FORMULARIOS DE BUSQUEDA Catedrático: Josué Elí Quijada 15 .

quedando de la siguiente manera. Luego insertamos un LABEL.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II FORMULARIO DE BUSQUEDA DE CLIENTES. a demás utilizaremos un control GRID para mostrar los datos. Procedemos a insertar el grupo de opciones y hacer uso del generador de grupo de opciones para editar los CAPTION y aumentar el Número de OPCIONES. vamos dejar como auto seleccionado la opción de No Reg el enfoque debe empezar en el TEXT ya listo para que el usuario digite su búsqueda. Debemos nombrar al formulario BUSCA_CLIE. de la siguiente manera. puesto que en el METODO ENTER del form de mantenimiento Programamos con ese nombre al formulario de búsqueda. un TEXT. Ahora crearemos un formulario de búsqueda de clientes. tome en cuenta que cuando un objeto OPTION esta seleccionado. la propiedad value de éste es igual a 1. donde pondremos objetos OPTION GROUP para seleccionar la búsqueda. el GRID y los botones necesarios. Catedrático: Josué Elí Quijada 16 .

Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II Las propiedades a cambiar del formulario solo es Windowstype = 1 Modal 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 Catedrático: Josué Elí Quijada 17 .

Catedrático: Josué Elí Quijada 18 . (No está demás mencionar que para editar las opciones damos Click derecho y luego EDIT) EVENTO INTERACTIVECHANGE DEL TEXT1 Aquí en se realiza una consulta SQL dependiendo la opción que este seleccionada. eso quiere decir que puede ser copiado y pegado en las demás opciones sin necesidad de cambiar nada.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II EVENTO CLICK DE CADA UNA DE LAS OPCIONES El código que hemos escrito es genérico. la SQL es almacenada en la propiedad RECORDSOUCE del GRID.

sin embargo debe contener las columnas que sean necesarias para ver la información adecuada. vamos a utilizar la propiedad COLUMNCOUNT.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II 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. Catedrático: Josué Elí Quijada 19 . en este caso vamos a colocar cuatro columnas. 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. con la variante que NO vamos ocupar el GENERRADOR de GRID para determinar las columnas del grid.

paste) EVENTO CLICK DEL BOTON CANCELAR Catedrático: Josué Elí Quijada 20 .Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II EVENTO KEYPRESS DEL TEXT1 DEL GRID Como en form de MANTENIMIENTO anteriormente descrito tenemos que copiar en todos los TEXT1 de cada columna del GRID.release (copy. EVENTO DBLCLICK DEL TEXT1 DEL GRID EVENTO CLICK DEL BOTON CANCELAR Thisform.

se los mostrará en la lista y para seleccionar uno de ellos debe doble clic.Ejecute el formulario Clientes y desde ahí ejecute el de búsqueda de clientes y trate de buscar un registro.value) thisform.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II Objeto: List1 Procedimiento: Dblclick select cliente loca for allt(id_cliente) = allt(this. Catedrático: Josué Elí Quijada 21 .release Y eso es todo para un formulario básico de búsqueda de registros .

Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II CAPITULO III ENCRIPATAMIENTO PARA SEGURIDAD EN ACCESOS AL SISTEMA Catedrático: Josué Elí Quijada 22 .

La línea Parameter mensaje significa que esta recibiendo parámetros (Valores) en la variable que se llama mensaje. La línea Procedure Encriptar significa que se esta creando un procedimiento llamado Encriptar. crear un prg que se llame procedimiento Y que contenga lo siguiente: ******************************** * PROCEDIMIENTO PARA ENCRIPTAR * ******************************** Procedure Encriptar Parameter mensaje MensajeEncriptado = "" for a = 1 to len(alltrim(mensaje) ) letra = subs(alltrim(mensaje).1) LETRA=ASC(CARACTER) B=LETRA/2 B = chr(B) MensajedesenEncripta= MensajedesenEncripta + B Endfor Return MensajedesenEncripta Nota: el prg llamado procedimiento debes guardarlo en la carpeta PRG Explicación: 1. 4. Luego encripta los valores utilizando ciertas funciones que son de su conocimiento.a. 2. La línea Return MensajeEncriptado envía los valores recibidos en mensaje ya encriptados. desde el proyecto.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II Como Encriptar Claves a través de procedimientos Para Encriptar claves se debe crear un programa que realice la encriptación.a. 3. Catedrático: Josué Elí Quijada 23 .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).

Ahora agregue un formulario llamado ENCRIPTAMIENTO que contenga los siguientes objetos: Ahora vamos a programar nuestro formulario encriptador y desencriptador Primero invocamos el archivo que contiene los procedimientos que para tal caso se llama procedimiento.value = encriptar(thisform.t.text2.value) thisform.text2.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 Catedrático: Josué Elí Quijada 24 . Explicación: thisform.img.prg OBJETO: FORM PROCEDIMIENTO: LOAD (puedes utilizar el INIT en lugar de load) set path to datos.label2.t.informes set procedure to procedimiento BOTON ENCRIPTAR PROCEDIMIENTO: Click thisform.prg.visible = .value = encriptar(thisform. thisform.text2.text1.menus.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II El programa anterior contiene dos procedimientos un encriptador y un desencriptador.visible = .formularios.text1.

thisform.f.visible=.text3.label2.value=desencripta(thisform. Campo Nombre Nivel Login Contraseña Tipo Carácter Carácter Carácter Carácter Ancho 40 15 25 8 Crear un formulario que contenga los objetos siguientes y agregue al entorno de datos la tabla usuario: Nombre del formulario USUARIOS Catedrático: Josué Elí Quijada 25 . BOTON ENCRIPTAR PROCEDIMIENTO: Click thisform.text2. CLICK BOTON LIMPIAR thisform.t.refresh Hasta aquí como Encriptar valores utilizando procedimientos. luego el procedimiento Encriptar envía el valor en la variable MensajeEncriptado y se lo esta asignando al valor del text2. Creación De Usuarios Crear la siguiente tabla con el nombre de usuario y agregarla a la base de datos ventas (El campo login debe ser Índice Principal)."".setfocus thisform.f.value) thisform. thisform.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II procedimiento que se llama mensaje. thisform.text3.visible=.visible=.t.visible=."textbox") thisform.text1. Ahora vamos a crear un formulario de usuarios y guardar la clave encriptada en la tabla correspondiente.setall("value".text2.label3.

caption = "\<Guardar" this."textbox") THISFORM.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II Name = Boton Name = Bcancelar Name = Bsalir Objetos: Txtcontraseña Text1 = propiedad Passwordchar Passwordchar valor de la propiedad * * Ahora vamos a programar: OBJETO: FORM PROCEDIMIENTO LOAD set path to datos. thisform.repetir store spac(10) to clave .bmp" ThisForm.combo1.informes.TEXT1.txtNombre.Refresh NOTA: Recuerda que el procedimiento que estamos invocando es el que creasteis para encriptar datos en el formulario anterior Procedimiento CLICK OBJETO: Boton if this..setall("enabled".combo1. thisform.enabled=.setfocus selec usuario SCATTER MEMVAR blank thisform.commandgroup1.bsalir.VALUE = "" thisform.enabled=.caption = "\<Nuevo" this. !empty(ThisForm.f.value)and !empty(ThisForm.picture = "wzsave.caption = "\<Nuevo" this.txtNombre. thisform.t.f.enabled=.value) select usuario APPEND BLANK GATHER MEMVAR thisform."textbox") thisform. ThisForm.bcancelar.combo1..prg.t.value)and.formularios set procedure to procedimiento PUBLIC clave. this.repetir SELECT Usuario SCATTER MEMVAR Thisform.refresh else if !empty(ThisForm.setall("enabled"..enabled=.f.img.t.f.picture = "wznew..txtcontraseña.bmp" Catedrático: Josué Elí Quijada 26 .enabled=.

combo1.f. thisform.txtContraseña.commandgroup1.txtNombre.bcancelar.boton.value)) if clave == Repetir thisform.refresh endif Catedrático: Josué Elí Quijada 27 .setfocus thisform. thisform.caption = "\<Nuevo" thisform.setfocus thisform.enabled=. thisform.setall("enabled".enabled=.thisform. this.f.enabled=.T.enabled=."textbox") thisform.bmp" thisform..enabled=.t.value="" this.value="" ThisForm.Login) =messagebox("Error login ya existe ".T.enabled=.32.t.bsalir. thisform.value = alltrim(clave) thisform.f.picture = "wznew.f.16.refresh else guardar") endif endif thisform.value)) Procedimiento LOSTFOCUS OBJETO: TEXT1 Repetir = encriptar(alltr(this.caption) ThisForm.enabled=. thisform.bsalir.. =messagebox("Faltan datos para almacenar".commandgroup1.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II thisform.refresh Procedimiento VALID OBJETO: TxtLogin SELECT Usuario SET ORDER TO Login IF SEEK (m.boton.refresh Procedimiento CLICK OBJETO: Bcancelar selec usuario go top SCATTER MEMVAR thisform."Error") return 0 ENDIF Procedimiento VALID OBJETO: TxtContraseña Clave = encriptar(alltrim(this."No se puede thisform.refresh else =messagebox(" Error: contraseñas no coinciden ".txtcontraseña.txtContraseña.16.

Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II CAPITULO IV CREACIÓN Y GENERADOR DE MENÚS Catedrático: Josué Elí Quijada 28 .

Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II CREAR MENUS Ahora vamos a crear el menú Luego Visualizamos la siguiente ventana Prompt Result Options palabra en ingles que significa Indicador Significa Acción ó resultado (la tomaremos como acción) significa opciones Catedrático: Josué Elí Quijada 29 .

Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II En la columna indicador (Prompt en ingles) escribe Formulario. seleccione barra de menús Catedrático: Josué Elí Quijada 30 . tal como se muestra en la imagen Ahora creamos el submenú para Formulario Ahora escribe lo que muestra la siguiente imagen: Ahora creamos el submenú para Consultas Para eso tienes que subir de nivel en el formulario. Consultas y Salir.

Ahora creamos el submenú para Salir Recuerda que tienes que subir de nivel en el formulario. seleccione barra de menús Continúa realizando que se muestra: Catedrático: Josué Elí Quijada 31 .Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II Entonces realiza lo que a continuación de se muestra Escribe .

. el cual es el archivo a ejecutar) · · Ahora si cerramos el diseñador de menú con CTR-W para guardar los cambios Y nos queda algo similar a lo que se muestra a continuación Catedrático: Josué Elí Quijada 32 . cuando se generan se crea otro archivo con la extensión a *..mnx antes de generarse. Si el menú no esta guardado VFP te pide que lo guardes Luego nos pide información del archivo de menú que se generará · Recuerda tiene el mismo nombre que el archivo de menú fuente pero su extensión es diferente en este caso es *. · · · · · El menú debe estar activo (abierto) Clic en la barra de menú opción menú Generar.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II Ahora vamos a generar el menú.MPR (Todos los menús tienen una extensión *.mpr pero con el mismo nombre.

Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II 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: Catedrático: Josué Elí Quijada 33 .

Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II CAPITULO V CREACIÓN Y CONFIGURACION PARA EL PROGRAMA PRINCIPAL DE LA APLICACIÓN Catedrático: Josué Elí Quijada 34 .

Para crear un PRG **//Desactiva la barra de menús del sistema de Visual FoxPro durante la ejecución del sistema set sysmenu off Do Menu.prg *Autore: elmergaldamez@hotmail.formularios. podríamos determinar a un formulario como principal sin embargo para nuestro caso vamos a proceder a crear un PRG para posteriormente configurarlo como principal de la aplicación.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II Como primer punto aclaro que para crear un programa principal para una aplicación existen diversos métodos.menuss. se debe crear un programa para configurar las pantallas. Desde el administrador reproyectos.com SET DEFAULT TO SYS(5) + CURDIR() **// Establece la ruta hacia la carpeta principal cualquiera que sea la ubicación **// Establece rutas alternas de búsquedas SET PATH TO datos.prg set sysmenu off set talk off set delete on set date dmy set echo off set notify off **//Desactiva la barra de menús de Fox durante la ejecución del sistema **// Determina si Fox muestra o no los resultados de los comandos **// Deshabilita los registros marcados para ser eliminados **// Establece el formato de fecha Dia.Mpr Crear Ejecutable un proyecto Ahora Para poder empaquetar todo el proyecto. crear un programa con el siguiente código: *Aplicacion : Establece Seteos y cerrar formulario de seguridad *Nombre: Main. informes. etc.img. Mes y Año **//Cierra la ventana Seguimiento **// Desactiva la presentación de algunos mensajes del sistema. **//muestra o no un cuadro de diálogo antes de sobrescribir un archivo existente Catedrático: Josué Elí Quijada 35 . configuraciones de ventanas.

MENUS.IMG. luego selecciona SET MAIN) Formulario de Acceso al Sistema A continuación vamos a crear un ejemplo de un formulario de acceso a un sistema.maxbutton=. _screen.f. Passwordchar = * BOTON ACEPTAR Enabled = .f. debe crear un formulario con los siguientes objetos: Las propiedades para los objetos son: TEXT2 Enabled = . Procedimiento LOAD del FORM SET PATH TO DATOS.windowstate=2 _screen.f.Desarrollo de Software -ITSO-" _screen.prg y debes de establecerlo como principal desde tu proyecto (Clic derecho.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II set safety off set exclusive off set refresh to 5 **//Desactiva abrir los archivos de forma exclusiva **//Actualizar cada 5 segundos **// Permite establecer el titulo de la ventana principal _Screen. Para Comenzar.f.f.caption="Sistema Didáctico .PRG.INFORMES set procedure to PROCEDIMIENTO Catedrático: Josué Elí Quijada 36 . do form acceso read events **// Abre la venta de forma maximizada **// Desactiva el botón maximizar de la ventana **// Desactiva el botón cerrar **// Desactiva los botones de control de la venta principal **// Llama al formulario de acceso del sistema NOTA IMPORTANTE: El nombre de este programa debe ser Main.closable=.FORMULARIOS. _screen.controlbox=.

16.thisform.text1.nombre thisform.SETFOCUS() else DO FORM FONDO do menu. "Consulte Con El Administrador De Sistema".refresh else ThisForm.enabled=.mpr _screen.entrar store spac(10) to clave.Label1.Label1.value) locate for alltrim(login)==alltrim(this.t.REFRESH Valid Text1 selec usuario if !empty(this.enabled=.text2. empty(allt(thisform.closable=.caption) this.value)) or. endcase THISFORM.windowstate = 2 Catedrático: Josué Elí Quijada 37 .REPETIR entrar=0 Crear un metodo con el nombre vacio y que contenga lo siguiente do case case empty(allt(thisform. endif Interactivechange Text2 thisform.value) if !found() =messagebox("Error ".16.value=" " ThisForm.text2. and alltr(contraseña)=alltr(clave) if !found() =messagebox ("Error: Usuario o Contraseña No Coinciden"+chr(13)+.thisform.text1.value="" thisform.value)) thisform.command1.f.enabled=.t.vacio Valid Text2 Clave = encriptar(alltr(this.command1.text2.text2. otherwise thisform.value).caption = "" return 0 thisform.f.value)) Click command1 Aceptar selec usuario locate for alltr(login)=alltr(thisform.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II PUBLIC clave.refresh endif thisform.caption) entrar=entrar+1 thisform.caption = usuario. _screen.

El buen maestro solo puede enseñarte el camino al éxito..16.release Click command2 Cancelar rele thisform Clear progra Clear memo Clear events Close databases Close all quit Espero haber conseguido ayudarlos con este material ya que lo he tratado de hacer desde el inicio para no solamente orientar a las personas que tienen un poco más de experiencia trabajando en VFP sino para aquellos que se están iniciando en el fascinante mundo del desarrollo de software con Visual FoxPro. thisform. Catedrático: Josué Elí Quijada 38 .visible = .click endif _screen.Escuela Superior Franciscana Especializada en Ciencia y Tecnología ESFE AGAPE Desarrollo de Software II endif if entrar=3 =messagebox("Limite de intentos agotados"+chr(13)+."Error de ingreso") thisform.t. Saludos y hasta una nueva oportunidad..command2. eres tu quien debe explorarlo Elmer Galdámez. "El sistema se cerrará".

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->