Visual FoxPro 6 0

16
COMPLEJO EDUCATIVO PRIVADO “PITAGORAS” BOLETIN COMPUTACIÓN 4TO II B – 2011 VISUAL FOX PRO 6.0 Profesor: Jaime César Landa Soriano Es un sistema orientado a objeto para la generación de Base de Datos y el desarrollo de aplicaciones. Desde Visual FoxPro podemos crear Formularios, Base de Datos, Informes, Vistas, Proyectos entre otros. Podemos crear los elementos de un proyecto por separado y luego agregarlos a un proyecto existente o crear un proyecto y desde éste ir agregando los elemento que deba contener. Cuando creamos un proyecto debemos crear una carpeta de trabajo en la se guarde el proyecto. Para indicarle a Visual Foxpro en cual directorio debe buscar los archivos del proyecto debemos indicarle el directorio por defecto; en le menú Herramientas en la opción de Opciones en la ficha de Archivos, aparecerá la ruta por defecto el directorio de Vfp cambiamos este directorio por la carpeta en la que está nuestro proyecto y seleccionamos Aceptar. Desde la Ventana de Comandos se utiliza el comando SET DEFAULT nombrederuta por ejemplo: Set default c:\publico\practica (La Ventana de Comandos será explicada mas adelante) Calle Manuel Fuentes Nº 320 - El Tambo - Huancayo 253049 1

Transcript of Visual FoxPro 6 0

Page 1: Visual FoxPro 6 0

COMPLEJO EDUCATIVO PRIVADO “PITAGORAS” BOLETIN COMPUTACIÓN – 4TO – II B – 2011

VISUAL FOX PRO 6.0Profesor: Jaime César Landa Soriano

Es un sistema orientado a objeto para la generación de Base de Datos y el desarrollo de aplicaciones.

Desde Visual FoxPro podemos crear Formularios, Base de Datos, Informes, Vistas, Proyectos entre otros.

Podemos crear los elementos de un proyecto por separado y luego agregarlos a un proyecto existente o crear un proyecto y desde éste ir agregando los elemento que deba contener. Cuando creamos un proyecto debemos crear una carpeta de trabajo en la se guarde el proyecto. Para indicarle a Visual Foxpro en cual directorio debe buscar los archivos del proyecto debemos indicarle el directorio por defecto; en le menú Herramientas en la opción de Opciones en la ficha de Archivos, aparecerá la ruta por defecto el directorio de Vfp cambiamos este directorio por la carpeta en la que está nuestro proyecto y seleccionamos Aceptar. Desde la Ventana de Comandos se utiliza el comando SET DEFAULT nombrederuta por ejemplo: Set default c:\publico\practica (La Ventana de Comandos será explicada mas adelante)

Calle Manuel Fuentes Nº 320 - El Tambo - Huancayo 253049 1

Page 2: Visual FoxPro 6 0

COMPLEJO EDUCATIVO PRIVADO “PITAGORAS” BOLETIN COMPUTACIÓN – 4TO – II B – 2011

ENTORNO DE DESARROLLO O VENTANA PRINCIPAL

El entorno de desarrollo son las partes visuales de las que esta compuesto todo lenguaje de programación visual como lo son Visual FoxPro, Visual Basic, Delphi, etc. A continuación veamos la ventana de inicio de Visual FoxPro 6.0.

PARTES:Barra de Menús:Por medio de esta barra de menús podremos acceder a todas las opciones que Visual FoxPro nos ofrece como Abrir o Crear una Base de Datos, un Reporte, etc.Barra de Herramientas:Por medio de esta barra de Herramientas podernos acceder a todas las opciones que más se utilizan, sin necesidad de ir a los menús a buscar sus respectivas opciones, esto es para tener un acceso más rápido.Ventana de Comandos:No sirve para utilizar comandos interactivamente (fuera de un programa) con Visual FoxPro, para efectuar tareas de revisión, mantenimiento y algunas otras cosas.

CREACION DE LA BASE DE DATOS

1. Ubiquese en la ficha Datos y luego en Base de Datos y presione el botón Nuevo

Calle Manuel Fuentes Nº 320 - El Tambo - Huancayo 253049 2

Page 3: Visual FoxPro 6 0

COMPLEJO EDUCATIVO PRIVADO “PITAGORAS” BOLETIN COMPUTACIÓN – 4TO – II B – 2011

La ventana del Diseñador de Base da datos aparecerá:

Puede utilizar la barra de herramientas del Diseñador para el control de la Base de Datos.Descripción de los botones de la Barra de herramientas (Diseñador de Base de Datos):

Crear una nueva tabla.

Agregar una tabla existente

Eliminar una tabla seleccionada

Modificar una tabla seleccionada

Creación de Vistas remotas

Creación de Vistas locales

Editar Procedimientos almacenados en la Base de Datos

Creación de Conexiones con vistas remotas

Examinar el contenido la tabla (BROWSE)

Los nombres de las tablas deben ser de una a ocho caracteres de largo y deben tener la extensión predeterminada .dbf (database file: archivo de Base de Datos)

Crear una nueva tabla:1. Click en el botón de Nueva tabla, aparecerá la ventana Nueva Tabla

2. Se selecciona Nueva Tabla, luego aparece la ventana de guardar el archivo, seleccione el directorio y el nombre de la tabla y luego presione el boton de guardar.

Calle Manuel Fuentes Nº 320 - El Tambo - Huancayo 253049 3

Page 4: Visual FoxPro 6 0

COMPLEJO EDUCATIVO PRIVADO “PITAGORAS” BOLETIN COMPUTACIÓN – 4TO – II B – 2011

La ventana del Diseñador de tablas aparecerá en pantalla:

Esta es la parte más importante de la tabla, es aquí donde se define la estructura de datos que contendrá dicha tabla. El primer paso es definir los campos, tipos, tamaño, Formato y Reglas de validación.

a) Definición de campos:b) Se introduce el nombre del campo (Nombre) el tipo de datos que soportará (Tipo) y el tamaño.

Los nombres de los campos pueden tener hasta 254 caracteres sin espacios en blanco.Formato: Es el formato de salida del campo, ejemplo si fuera númerico 9,999.99 o si fuera carácter !!!!!!!!!!!!, para que solo acepte mayusculasMáscara de entrada: Igual que el Formato, lo único que es para la entrada de datos.Título: Descripción más precisa del campo, es de utilidad al diseñar los Formularios.

c) Definición del Displayd) Definición de reglas de validación a nivel de campo

La validación son triggers o eventos que se ejecutan a nivel de campo. Ejemplo: una validación de un campo que solo acepte números positivos. (id > 0)Regla: Es la regla de validación, ejemplo: id > 0, si queremos que acepte valores positivos.Mensaje: Es el mensaje personalizado que queremos que aparezca en pantalla a la hora de violarse la regla de validación del campo. Ejemplo: “Solo se aceptan números positivos” (nota: el texto debe escribirse entre comillas).Valor predeterminado: Valor por defecto del campo. (nota: hay que respetar el tipo de dato del Campo)

Luego de hacer la definición de los campos, pasamos a la definición de Indices de la tabla, que será muy importante a la hora de crear las relaciones entre las tablas.

Los índices facilitan la ubicaciòn en la tabla de un registro especìfico asì como tambien determinan el tipo de relaciones que existen entre las tablas.

Los índices pueden ser CDX o IDX:Los índices .IDX son índices compactos se crean: "INDEX ON estado to estado compact" crea un archivo de índice llamado estado.cdx. Desafortunadamente si alguna vez abre la tabla sin el índice y añade un registro, éste no se actualizará y tendrá que ser recreado.Los índices .CDX se crean: "INDEX ON estado tag estado" . Estos archivos se abren automáticamente junto con las tablas.

La estructura interna de los IDX y los CDX es diferente.a. Nombre del Indice (Nombre)b. Introducir el Nombre del archivo índice. Es conocido también como TAG (etiqueta).c. Tipo ( tipo de Indice)

Principal: Llave primaria.Candidato: Llave candidataÚnico: Llave única.Normal: Llave foránea.

El índice Principal: garantiza que solo se introduzcan valores únicos en un campo y determina el orden en el que se procesan los registros. Cada tabla puede tener únicamente un índice Principal.

Calle Manuel Fuentes Nº 320 - El Tambo - Huancayo 253049 4

Page 5: Visual FoxPro 6 0

COMPLEJO EDUCATIVO PRIVADO “PITAGORAS” BOLETIN COMPUTACIÓN – 4TO – II B – 2011

El índice Candidato: puede ser un candidato para utilizarse como índice principal, refuerza la unicidad de los valores.El índice Unico: almacena un lista de cada valor único en la tabla índices.El índice Normal: puede ser utilizado para ordenar y buscar datos en consultas e informes. No refuerza la unicidad de los datos

d. Nombre de la ExpresiónNombre de los campos que conforman la clave primaria:Ejemplo : id, o si son varios campos : id + lineaNota: si los campos no son del mismo hay que forzarlos al tipo de dato deseado, ejemplo: si id es carácter y linea, entoces el nombre de la expresion sería:Id + STR(linea)

STR() convierte de número a carácter y VAL() convierte de carácter a númerico.

Después de detallar los índices, se define los eventos de La validación a nivel de registro y los eventos que se ejecuten a la hora de Insertar un registro, de actualizar o borrar.

Visual Foxpro tiene 37.767 espacios de trabajo, llamadas áreas de trabajo porque una tabla deber ser seleccionada para volverla la tabla actual. Cuando se inicia Visual FoxPro el área de trabajo es la 1 por omisión.

Para abrir una tabla en el área de trabajo 1 cuando ninguna otra tabla está abierta, tecleamos en la Ventana de Comandos:

USE nombretabla

No necesariamente debe estar en un área de trabajo para abrir una tabla puede especificar: USE nombretabla IN 3Sin embargo con más frecuencia se utiliza: USE nombre tabla IN 0 lo que significa encuentre el área de trabajo siguiente en la que no se encuentre abierta una tabla y abre nombretabla ahí.Cuando se utiliza una tabla Visual FoxPro le asigna un alias, un nombre de hasta 10 caracteres con el cual se refiere a ella en el programa, generalmente el alias es el mismo nombre que el de la tabla

Para crear una tabla desde la Ventana de Comandos: CREATE <nombretabla>

Para modificar una tabla Administrador de Proyectos | Datos | Base de Datos| Tablas | Seleccionamos la tabla | Modificar.Desde la Ventana de Comandos: Use tabla | MODIFY STRUCTURE

En Visual FoxPro existe la Ventana de comandos ésta funge como la ventana de MSDOS que puede utilizarse desde Windows con la finalidad de permitir utilizar comandos del lenguaje para ejecutar algunas funciones. Por ejemplo desde Windows desde el explorador podemos examinar el contenido de un disckette acción que también podemos hacer si abrimos una ventana de MSDOS y tecleamos DIR A:. Es decir a pesar de que se pueden tener acceso a la mayoría de los elementos de Visual FoxPro desde el menú muchas veces es útil simplemente teclear un comando.

Calle Manuel Fuentes Nº 320 - El Tambo - Huancayo 253049 5

Page 6: Visual FoxPro 6 0

COMPLEJO EDUCATIVO PRIVADO “PITAGORAS” BOLETIN COMPUTACIÓN – 4TO – II B – 2011

Para activar la Ventana de Comandos aunque ella aparece por defecto en el en el entorno de trabajo tecleamos Ctrl. F2

Para agregar registros a una tabla: Administrador de Proyectos | Datos | Base de Datos | Tablas | Seleccionamos la tabla | Examinar y luego en el menú Ver | Modo AñadirDesde la Ventana de Comandos: Teniendo la tabla activa escribimos APPEND.

Para ver los registros de una tabla: Administrador de Proyectos | Datos | Base de Datos | Tablas | Seleccionamos la tabla | Examinar.Desde la Ventana de Comandos: teniendo la tabla activa escribimos BROWSE.En Visual Foxpro los registros de una tabla pueden borrarse lógicamente y físicamente.

Para borrar lógicamente un registro: Administrador de Proyectos | Base de Datos | Tablas | Seleccionamos la Tabla | Examinar luego con el ratón hacemos Click en la primera columna de izquierda a derecha, la columna en la celda seleccionada se colocará de color negro.Desde la Ventana de Comandos: DELETE (Teniendo seleccionado el registro)

Para ver los registros de una tabla sin que aparezcan los registros borrados lógicamente:Primero desde la Ventana de Comandos debemos teclear : SET DELETE ON y luego desde el Administrador de Proyectos | Datos | Base de Datos | Tablas | Examinar .También desde la Ventana de Comandos con el comando BROWSESi queremos incluso los registros borrados lógicamente tecleamos en la Ventana de Comandos SET DELETE OFF y luego tecleamos BROWSE.

Para desmarcar los registros borrados lógicamente (desde la Ventana de Comandos): Suponemos que anteriormente habían sido borrados los empleados cuyo sueldo era 15000: DELETE FOR sueldo=15000Para desmarcar estos registros: RECALL FOR sueldo=15000

Para borrar físicamente registros de una tabla primero deben estar borrados lógicamente:Y luego desde la Ventana de Comandos tecleamos el comando PACK, para utilizar este comando la tabla debe ser abierta en modo exclusivo USE nombretabla EXCLUSIVE.

Algunos comandos para manipular tablas:List for cedula="12434213" Muestra en el entorno de trabajo la informacion del registro que cumpla con esta condición.

List fields cedula,nombre. Muestra en el entorno de trabajo todas las cédulas y nombres de la tabla seleccionada.

Sum cantidad (suponemos que la tabla activa tiene un campo de tipo numérico llamado cantidad). Muestra en el entorno de trabajo la suma del campo cantidad de la tabla activa.

Sum cantidad for cantidad>1000 Obtiene la suma de los campos cantidad de los registros que cumplen con la condición indicada

Count to Registros for nota>15 (quermos contar los registros de una tabla cuyo campo nota sea mayor a 15 puntos, guardar este total en una variable llamada Registros ) Si luego queremos examinar el contenido de la variable Registros tecleamos ?Registros (signo de interrogación que cierra y luego el nombre de la variable que queremos examinar)

Comandos SEEK y LOCATELos comandos Locate y Seek permiten buscar un registro en particular. Locate funciona en cualquier campo dentro de una tabla ya sea que esté indexada o no Seek da por hecho que la clave que está buscando encaja con el índice actual.

Locate for nombre="Luis" La tabla activa posiciona su cursor el registro que cumpla con esta condiciòn.

Seek("Luis") ERRORSet order to nombre (CORRECTO) Primero se debe activar el ìndiceSeek("Luis") y luego hacer la bùsqueda

Calle Manuel Fuentes Nº 320 - El Tambo - Huancayo 253049 6

Page 7: Visual FoxPro 6 0

COMPLEJO EDUCATIVO PRIVADO “PITAGORAS” BOLETIN COMPUTACIÓN – 4TO – II B – 2011

La funciòn Set filter:Esta funciòn provoca que Visual FoxPro se comporte como si no existieran los registros que no coinciden con la expresiòn de filtro, y en las operaciones que se realicen solo se tomaràn en cuenta las registros que cumplen con la condiciòn del filtro actual.Set filter to nota=15Para desactivar un filtro colocamos set filter to y para

Como moverse en una tabla de VFP

Skip mueve el puntero hacia delante un registroSkip - 1 mueve el puntero hacia tras un registroGo top mueve el puntero hacia el primer registro de la tablaGo bottom mueve el puntero hacia el ùltimo registro de la tabla.Go 3 mueve el puntero hacia el registro #3 de la tabla

Operaciones Ciclìcas:

Existen una cantidad de mecanismos de ciclos que puede utilizar para moverse a travès de una tabla. El principal es SCANPor ejemplo:Select Cliente (No hay necesidad de hacer go top)ScanSueldo=sueldo + 5000EndscanLas lìneas de còdigo entre Scan y Endscan se ejecutaràn 1 vez por cada registro de la tabla.Lo mismo se puede hacer con:Select ClienteGo topDo While not eof()Sueldo=sueldo+5000SkipEnddo

La instrucciòn FOR:For i=1 to 10Cont=cont+1;endfor

Para eliminar una tabla:Para eliminar una tabla con los indices principales, valores predeterminados y reglas de validaciòn asociadas a la tabla use el comando DROP nombretabla por ejemplo:Open Database inscripcionesDrop table alumnos

Uso de Funciones:Str() convierte a StringVal convierte a nùmeroDate() devuelve la fecha del sistemaHoy=Date()GetDir() Obtiene el directorio por defectoCd GetDirImprime el dìa de la semana?Dow(Date())Len() Devuelve el nùmero de caracteres de una expresiòn de caracteresRecno() Obtiene la posiciòn de un registroPara cerrar abierta en el àrea de trabajo actual utilizamos el comando USE

Uso de Procedimientos y Funciones:

Calle Manuel Fuentes Nº 320 - El Tambo - Huancayo 253049 7

Page 8: Visual FoxPro 6 0

COMPLEJO EDUCATIVO PRIVADO “PITAGORAS” BOLETIN COMPUTACIÓN – 4TO – II B – 2011

Procedure Nombreprocedure*Aquí va el còdigo ejecutableendproc

Function Nombrefuncion*aquí va el còdigo ejecutableendfunc

El valor devuelto de forma predeterminada es verdadero (.t.) pero puede utilizarse el comando Return

Function semanas(dDate)Return dDate + 14Endfunc

Si se incluyen los procedimientos y funciones en un archivo de programa distinto, podrá hacer accesibles estos procedimientos y funciones desde su programa si utiliza el Set procedure to. Por ejemplo: Si tiene un archivo llamado: FunProc.prg se utiliza el siguiente comando:Set Procedure to FunProc.prg

Llamado a un procedimiento o a una fuciòn:-Utilizar el Do:Do Miproc-Incluir delante del nombre de la funciòn un signo (=) e incluir parentesis despues del nombre de la funciòn. Por ejemplo=Mifuncion()

Envìo de valores a un Procedimiento o a una Funcion:Procedure Nombreprocedimiento(eString)*La linea siguiente muestra un mensajemessagebox("Mi proc" + eString)endproc

El paso de paràmetros a una funciòn es exactamente igual.Para invocar a un procedimiento:Do nombreprocedimiento with parametro ò=NombreFunciòn(paràmetro)

Con mùltiples paràmetros:Procedure nombreproc (dDate, eString,Ntimes)*Codigo ejecutableendproc

En la llamada: do nombreproc with Date(), "Hola", 10Comprobaciòn de Paràmetros en un Procedimiento o una funciònFunction Semanas (dDate)If type("dDate")="D"Return dDate + 14ElseMessagebox("Requiere un paràmetro de fecha")Return{} &&Devuelve una fecha vacìaendifendfuncProcedure valores (cStore, dDate2, nDatos)If parameters()<3Messagebox("No se han pasado suficientes paràmetros") Return .f.ElseIf parameters()=3*Operar con los paràmetrosendifendifendproc

Calle Manuel Fuentes Nº 320 - El Tambo - Huancayo 253049 8

Page 9: Visual FoxPro 6 0

COMPLEJO EDUCATIVO PRIVADO “PITAGORAS” BOLETIN COMPUTACIÓN – 4TO – II B – 2011

Si se especifican dos paràmetros pero llamò al procedimiento con tres paràmetros, obtendrà un mensaje de erros. Pero si un procedimiento espera mas paràmetros de los que recibe, los paràmetros adicionales se inicializaràn como falso (.F.)

EJERCICIO PRÁCTICO:

Cree la siguiente base de datos con el nombre de scott.

RELACIONES ENTRE TABLAS:

Las relaciones mas comunes entre tablas se definen:De uno a uno: Ejemplo de una llave primaria a otra llave primariaDe uno a muchos: Ejemplo de una llave primaria a una Regular o Foránea.

Crear Relaciones:Las relaciones entre tablas se crean arrastrando la llave de la tabla a la llave de otra tabla.La figura muestra una relación entre las tablas región y departamento, la relación se leería así : "Una región tiene muchos departamentos".

Generación de integridad referencial:Reglas que rigen la coherencia de datos, específicamente las relaciones entre las claves principal y externa de claves de tablas distintas. Visual Foxpro Resuelve la Integridad Referencial mediante reglas a nivel de campo y a nivel de registro definidas por el usuario. El Generador de la Integridad Referencial le ayuda a definir reglas para controlar cómo se insertan actualizan o eliminan registros de tablas relacionadas.

Desencadenante: código de evento a nivel de registro que se ejecuta despues de una inserción, una actualización o una eliminación. Se ocupan para integridad entre las tablas.

Calle Manuel Fuentes Nº 320 - El Tambo - Huancayo 253049 9

Page 10: Visual FoxPro 6 0

COMPLEJO EDUCATIVO PRIVADO “PITAGORAS” BOLETIN COMPUTACIÓN – 4TO – II B – 2011

El establecimiento de la integridad referencial implica la creación de un conjunto de reglas para preservar las relaciones definidas entre las tablas al introducir o eliminar registros.

Si exige la integridad referencial, Visual FoxPro impedirá las acciones siguientes:• Agregar registros a una tabla relacionada cuando no haya ningún registro asociado en la tabla

primaria.• Cambiar valores de una tabla primaria cuando tales cambios supongan dejar registros huérfanos

en una tabla relacionada.• Eliminar registros de una tabla primaria cuando tengan registros relacionados coincidentes.

Si lo desea, puede escribir sus propios desencadenantes y procedimientos almacenados para exigir la integridad referencial. Sin embargo, el Generador de integridad referencial (IR) de Visual FoxPro permite determinar los tipos de reglas que desea exigir, las tablas a las que desea exigirlas y los eventos del sistema que harán que Visual FoxPro las compruebe.El Generador de IR trata múltiples niveles de eliminaciones y actualizaciones en cascada, y es recomendable como herramienta para asegurar la integridad referencial.

Para abrir el Generador de IR:1. Abra el Diseñador de bases de datos.2. En el menú Base de datos, elija Editar integridad referencial.

Al utilizar el Generador de IR para crear reglas que se van a aplicar a la base de datos, Visual FoxPro guarda el código generado para exigir las reglas de integridad referencial como desencadenantes que hacen referencia a procedimientos almacenados. Para ver este código puede abrir el editor de texto de procedimientos almacenados en la base de datos. Si desea información sobre la forma de crear desencadenantes por programa, consulte Uso de desencadenantes en el capítulo 7, Trabajo con tablas.

Precaución: Cuando haga cambios en el diseño de una base de datos, como modificaciones en sus tablas o alteraciones en los índices utilizados en una relación persistente, debe volver a ejecutar el Generador de IR antes de utilizar de nuevo la base de datos. De esta forma se revisarán el código de procedimiento almacenado y los desencadenantes utilizados para exigir la integridad referencial, de forma que reflejen el nuevo diseño. Si no vuelve a ejecutar el Generador de RI, puede que obtenga resultados inesperados, ya que no se habrán actualizado los procedimientos almacenados y los desencadenantes para ajustarlos a las modificaciones.

El Generador IR se muestra cuando:• Hace doble clic en una línea de relación entre dos tablas del Diseñador de bases de datos y elige

el botón Integridad Referencial en el cuadro de diálogo Editar relación.• Elige Integridad referencial en el menú contextual del Diseñador de bases de datos.• Elige Editar integridad referencial en el menú Base de datos.

Fichas del generador:Reglas para la actualización: Especifica reglas para aplicar cuando se modifica el valor clave de la tabla primaria.Reglas para la eliminación: Especifica las reglas que se aplican cuando se elimina un registro de la tabla primaria.Reglas para insertar: Especifica las reglas que se aplican cuando se inserta un nuevo registro o cuando se actualiza un registro existente en la tabla secundaria.

FORMULARIOS SENCILLOS

Un Formulario Sencillo, es el que es realizado generalmente utilizando una sola tabla.Un ejemplo típico de formularios sencillos son las pantallas de los catálogos de un Sistema, que solamente tienen la función de registrar, modificar, eliminar y consultar datos de una tabla.

Por ejemplo vamos a construir una forma sencilla utilizando el Asistente de Visual Foxpro:1. Abra su proyecto2. Ubíquese en la pestaña de documentos (document) y luego en Formas (Forms).3. Presione el Botón Nuevo (New). Aparece la siguiente ventana:

Calle Manuel Fuentes Nº 320 - El Tambo - Huancayo 253049 10

Page 11: Visual FoxPro 6 0

COMPLEJO EDUCATIVO PRIVADO “PITAGORAS” BOLETIN COMPUTACIÓN – 4TO – II B – 2011

4. Seleccione Wizard.5. Seleccione Form Wizard y OK.6. Luego aparece la ventana donde usted escoge la tabla a utilizar y los campos de esa tabla. 7. Una vez seleccionado la tabla y sus respectivos campos, presiones próximo (Next).8. Se visualizará la siguiente ventana:9. Seleccione el estilo de la forma y el tipo de botones a utilizar en la forma y luego presione

próximo (Next).10. Aparecerá la siguiente ventana:

Para visualizar todas las imágenes faltantes haga click en el menu superior "Bajar Trabajo".11. Seleccione el ordenamiento de la tabla, aquí por lo general se selecciona el índice de la tabla

( los índices aparecen con asterisco *)

12. Introduzca el titulo de la forma y luego Finalizar

Visual Foxpro Generará la forma, luego usted puede modificar la forma si lo desea.La forma, que creamos con el wizard, quedaría de esta forma:

FORMULARIOS MAESTRO - DETALLE

Un formulario maestro detalles es aquel en que entran en juego dos o más tablas, las cuales tengan una relación de uno a muchos. Ejemplo la relación de s_region con s_dept (una región puede tener muchos departamentos).

Se pueden construir formularios mestro-detalle utilizando el Asistente, sin embargo, nosotros utilizaremos la forma manual para personalizar a nuestro gusto el formulario.

Pasos para construir una formulario maestro - detalle

Para este ejemplo utilizaremos las tablas s_region y s_dept1. Abra su proyecto2. Ubíquese en la pestaña de documentos (document) y luego en Formas (Forms).3. Presione el Botón Nuevo (New).4. Seleccione Nueva Forma en blanco.5. En la forma en blanco presione el botón derecho del ratón y luego Entorno de Datos (Data

Environment)

Calle Manuel Fuentes Nº 320 - El Tambo - Huancayo 253049 11

Page 12: Visual FoxPro 6 0

COMPLEJO EDUCATIVO PRIVADO “PITAGORAS” BOLETIN COMPUTACIÓN – 4TO – II B – 2011

6. Seleccione las tablas s_region, que será el maestro y luego la tabla s_dept que será nuestro detalle.

7. Arrastre uno por uno los campos de la tabla s_region a su forma, de tal manera que queden asi:

8. Luego arrastre toda la tabla s_dept al formulario

Ahora vamos a modificar las propiedades del Grid que hemos insertado: seleccionan el grid, botón derecho del ratón y luego propiedades. Se sitúan en la pestaña datos, para modificar las siguientes propiedades con el fin de establecer la relación entre las dos tablas:

Calle Manuel Fuentes Nº 320 - El Tambo - Huancayo 253049 12

Page 13: Visual FoxPro 6 0

COMPLEJO EDUCATIVO PRIVADO “PITAGORAS” BOLETIN COMPUTACIÓN – 4TO – II B – 2011

En la clase se explicaron los procedimientos para Incluir Modificar y Eliminar alumnos a una base de datos de inscripciones. En este este codigo se estan actualizando clientes el código es análogo

Boton Incluir:if thisform.incluir.caption="Incluir"scatter memvar blankthisform.incluir.caption="Guardar"thisform.salir.caption="Cancelar"thisform.text1.enabled=.t. (Recuerden que los texbox poseen nombres que secorresponden con la realidad txtcedula,txtnombre…,aunque en este ejemplo no se planteen así debeprogramarse)thisform.text2.enabled=.t.thisform.text3.enabled=.t.thisform.text4.enabled=.t.elseif thisform.text1.value<>''if thisform.text2.value<>''if thisform.text3.value<>''if thisform.text4.value<>''append blankgather memvarendif (Pueden mostrarse mensajes de validación de llenar todoslos campos antes de incluir un registro)endifendifendifthisform.incluir.caption="incluir"thisform.salir.caption="Salir"thisform.text2.enabled=.f.thisform.text3.enabled=.f.thisform.text4.enabled=.f.endifthisform.refresh

Boton Modificar:if thisform.modificar.caption="Modificar"thisform.text1.enabled=.f.thisform.text2.enabled=.t.thisform.text3.enabled=.t.thisform.text4.enabled=.t.thisform.modificar.caption="Guardar"thisform.salir.caption="Cnacelar"else

Calle Manuel Fuentes Nº 320 - El Tambo - Huancayo 253049 13

Page 14: Visual FoxPro 6 0

COMPLEJO EDUCATIVO PRIVADO “PITAGORAS” BOLETIN COMPUTACIÓN – 4TO – II B – 2011

gather memvarthisform.text1.enabled=.t.thisform.text2.enabled=.f.thisform.text3.enabled=.f.thisform.text4.enabled=.f.thisform.modificar.caption="Modificar"thisform.salir.caption="Salir"endif

Boton Eliminar(Recuerden que en la ayuda de Visual FoxPro está la información de la aplicación de la función y/o procedimiento Messagebox)if messagebox("Esta seguro que desea eliminar este cliente",36,"Confirmacion")=6(Implementada como función)deletepackmessagebox("El registro fue eliminado",0,"Aviso")(implementada como procedimiento)scatter memvar blankendifthisform.refresh

Boton Salir:if thisform.incluir.caption="Guardar"thisform.text2.enabled=.f.thisform.text3.enabled=.f.thisform.text4.enabled=.f.thisform.incluir.caption="Incluir"thisform.Salir.caption="Salir"elseif thisform.modificar.caption="Guardar"thisform.text1.enabled=.t.thisform.text2.enabled=.f.thisform.text3.enabled=.f.thisform.text4.enabled=.f.thisform.modificar.caption="Modificar"thisform.Salir.caption="Salir"elsethisform.releaseendifendif

Calle Manuel Fuentes Nº 320 - El Tambo - Huancayo 253049 14

Page 15: Visual FoxPro 6 0

COMPLEJO EDUCATIVO PRIVADO “PITAGORAS” BOLETIN COMPUTACIÓN – 4TO – II B – 2011

Boton Primero:go topm.codigo=clientes.codigom.nombre=clientes.nombrem.telefono=clientes.telefonom.direccion=clientes.direccionthisform.refresh

Boton Ultimo:go bottomm.codigo=clientes.codigom.nombre=clientes.nombrem.telefono=clientes.telefonom.direccion=clientes.direccionthisform.refresh

Boton Siguienteif eof()thisform.siguiente.enabled=.f.go bottomm.codigo=clientes.codigom.nombre=clientes.nombrem.telefono=clientes.telefonom.direccion=clientes.direcciónfrmactcliente.refreshelseskip 1m.codigo=clientes.codigom.nombre=clientes.nombrem.telefono=clientes.telefonom.direccion=clientes.direccionif thisform.anterior.enabled=.f.thisform.anterior.enabled=.t.endifendif

Calle Manuel Fuentes Nº 320 - El Tambo - Huancayo 253049 15

Page 16: Visual FoxPro 6 0

COMPLEJO EDUCATIVO PRIVADO “PITAGORAS” BOLETIN COMPUTACIÓN – 4TO – II B – 2011

thisform.refresh

Boton Anteriorif bof()thisform.anterior.enabled=.f.go topelseskip -1if thisform.siguiente.enabled=.f.thisform.siguiente.enabled=.t.endifendifm.codigo=clientes.codigom.nombre=clientes.nombrem.telefono=clientes.telefonom.direccion=clientes.direccionthisform.refresh

-------- 0 --------

“Entiendes perfectamente que no es lo mismo fracasar que ser un fracasado; que el ayer ya pasó y hoy es otro

día.”

Calle Manuel Fuentes Nº 320 - El Tambo - Huancayo 253049 16