You are on page 1of 23

Manual Terico Prctico de Visual FoxPro 6.

Indice 1. Introduccin 2. Bases de datos. 3. Programacin. 4. Formularios 5. Informes 1. Introduccin En este manual daremos a conocer al estudiante el lenguaje de programacin Visual Fox Pro 6.0. Se pretende familiarizar al alumno con el entorno de desarrollo de aplicaciones para base de datos. Visual Fox Pro es un gestor de base de datos, orientado a la programacin de objetos. Visual Fox Pro pertenece a la familia xbase lo que hace que su programacin sea sencilla, estructurada y mas fcil de entender tanto para programadores principiantes como programadores expertos. Nos enfocaremos en cinco reas principales: o o o o o Base de datos: Trata sobre el diseo, creacin y manipulacin de tablas libres o tablas con integridad referencial (base de datos) Programcin: En esta parte seremos capaces de identificar y aplicar las estructuras bsicas de programacin y conocer aspectos sobre la programacin orientada a objetos. Formularios: Aplicaremos conocimientos para la integracin de una interfaz con el usuario y base de datos. Informes: Aprenderemos a disear las salidas de los sistemas de informacin, haciendo uso de las herramientas que el programa ofrece. SQL: En esta seccin haremos uso del lenguaje SQL para manipular datos, creando as diferentes consultas o vistas. 2. Bases de datos. Introduccin En este manual mostraremos lo bsico pero tambin puedes consultar algn libro de Visual FoxPro pues todo ser para tu desarrollo, en las bibliotecas o en las libreras. FoxPro es un lenguaje de mucha rapidez, esto lo convierte en un lenguaje de los ms rpidos en el mercado, FoxPro es tambin uno de los lenguajes de programacin que contiene mucha potencia en el manejo de las bases de datos. Conceptos Bsicos Base de datos es un conjunto de datos almacenados en campos y registros, es decir que la base de datos esta conformada por estos dos elementos. As, por ejemplo: Base de datos (Campos)

------------------------------------------------------------------------------(Nombre de las variables) Nombre Edad Sueldo ------------------------------------------------------------------------------(Registros) Jos Mendoza 19 2,568.52 Omar Mendoza 20 3,759.45 -----------------------------------------------------------------------------Los campos son los que estn en vertical y los registros llamados tambin datos, son los que estn en horizontal. Componentes de Interfaz Algunas herramientas ms utilizadas son: Ventana Examinar: una vista, tipo hoja de clculo, de una tabla. Ventana Cdigo: para desplegar cdigo asociado a varios eventos en los formularios y controles. Cuando un evento se dispara el cdigo se ejecuta. Ventana Depuracin: permite examinar variables de memoria o valores campos y establecer puntos de interrupcin. La ejecucin del programa se detiene cuando una variable de memoria o una expresin con un punto de interrupcin cambian de valor. Comando Opciones (Men de Herramientas): permite controlar la configuracin de docenas de caractersticas en el entorno FoxPro, incluidos todos los comandos SET, as como planillas y bibliotecas de clases. Ventana Propiedades: permite establecer propiedades en una buena cantidad de generadores, incluidos los generadores de formularios, informes etiquetas y de las bases de datos, tambin proporciona acceso a propiedades, mtodos y cdigo de eventos. Administrador de Proyectos: un diseo completamente novedoso de FoxPro para Windows, este administrador de proyectos administra todos los componentes de un proyecto en cinco grupos: Bases de datos (con extensin .DBC), tablas libres (con extensin .DBF), vistas locales y remotas, conexiones, etc. Generador de consultas: una recodificacin completa del RQBE (Consulta Relacional Ejemplificada), esta herramienta maneja todos los aspectos de construir una consulta. Barras de herramientas FoxPro: proporciona a los generadores aplicaciones ms de una docena de barras de herramientas para colocar toda la herramienta para varias tareas justo al alcance de sus dedos. Adems, puedes disear tus propias barras de herramientas en conjuncin con formularios, para proporcionar a los usuarios el mismo tipo de acceso instantneo a las herramientas. Generadores Los generadores son entornos de trabajo en los que se construyen componentes de una aplicacin de FoxPro. En la siguiente lista te mostrare algunos generadores: Generador de clases Para construir objetos reutilizables.

Generador de Bases de Datos Para organizar los datos en tablas y documentar las relaciones entre tablas. Generador de formularios Para disear las pantallas de la aplicacin. Generador de consulta Para construir conjuntos de datos utilizados en reportes y en pantallas de slo lectura. Generador de informes Para construir informes para la pantalla o la impresora. Generador de mens Construye el sistema de mens que ejecuta una aplicacin. Generador de tablas Administra el formato de las tablas utilizadas en la aplicacin. Generador de cuadrculas Permite aprender cmo las configuraciones de la propiedad de cuadrcula del objeto controlan la operacin de la cuadrcula. Asistentes Son conjunto de cuadro de dilogos que te ayudan paso a paso a crear una determinada aplicacin, por ejemplo un formulario, etc. Asistente para formularios: Construye "Pantallas instantneas" con la estructura de las tablas basndose en clases prediseadas, incluidos efectos especiales en las pantallas y botones de navegacin nter construidos. Asistente para documentacin: Documenta la aplicacin. Asistente para informes: Disea informes, sencillos o complejos, utilizando un poco ms que la estructura de las tablas. Asistente para tablas: til para hacer tablas sencillas Barras de Herramientas El propsito de que hayan estas barras es para hacerte un poco ms fcil el trabajo, es decir que el uso que le dar a la ventana de comandos ser un poquito reducido. Paleta de colores creo que te imaginas que es la barra de los colores en funcin RGB. Bueno RGB significa (Rojo, Verde y Azul) Generador de bases de datos en esta barra se manejan el entorno de datos, iconos para: crear, agregar, y quitar una tabla as, como tambin modificar, vista remota o local, examinar una tabla o editar procedimientos almacenados en el contenedor de la base de datos. Generador de formularios esta barra te permite el paso rpido de uno a otro entre varios elementos usados en el diseo de pantallas: el entorno de los datos, la ventana propiedades, la ventana cdigo la barra Controles de formularios, la paleta de colores, la barra de herramientas. Distribucin, entre otros. Presentacin Preliminar para que una vez diseado un informe puedas apreciarlo como te quedar y si no te gusta pues lo podrs modificar. Estndar Este lo vers cuando inicies FoxPro, proporciona acceso al generador de formularios y al Generador de informes, a bases de datos de impresin consultan tablas, conexiones, vistas, etiquetas, programas, clases, archivos de texto y mens.

Administrador de Proyectos Estos proyectos estn integrados por el Administrador de proyectos, quien mantiene la pista de los componentes de la aplicacin. Conforme se agregan componentes a un proyecto, (Estas son las carpetas o nombre de los mens del Administrador) FoxPro los colecta bajo alguno de los siguientes encabezados: Datos: las bases de datos (y todos los elementos que pueden describir), incluidas las tablas, vistas locales y remotas, conexiones y procedimientos almacenados, as como tablas libres y consultas. Documentos: formularios, etiquetas e informes. Bibliotecas de clases: repositorios de objetos usados en la aplicacin. Cdigo: los archivos con extensin .PRG que contienen cdigo que no est asociado con un formulario, as como bibliotecas API y archivos llamados por la aplicacin. Otros: mens, archivos de texto y otros, incluyendo mapas de bits. La barra de herramientas En FoxPro hay muchos botones, estos botones pertenecen a la barra de herramientas de VFP. Tambin existen otras barras de herramientas. Se hace clic en el men Ver, aparece una sola opcin de barras de herramientas. Slo haz clic en la barra que quieres activar y aparecer al igual que la estndar. Algunas de estas barras ya las vimos anteriormente, recuerdas?. Estructura de un .BDF Los datos en FoxPro se almacenan en forma de tablas, estas tablas son las bases de datos pues la extensin de estas bases de datos es .DBF aunque tambin hay otras que se ver ms adelante. Los DBF comienzan con una breve descripcin de los datos que estn en la tabla. Escritorio de Visual FoxPro Para ingresar a Visual FoxPro tienes que presionar el botn de inicio / todos los programas / Microsoft Visual Studio 6.0 /Microsoft Visual FoxPro 6.0 (versin windows XP). inicio / programas / Microsoft Visual Studio 6.0 /Microsoft Visual FoxPro 6.0 (versin windows estndar). Aparecer en tu pantalla la siguiente ventana: Escritorio de Visual FoxPro Configuracin de Visual FoxPro 6.0 Cuando se carga FoxPro, lee un archivo llamado CONFIG.FPW en el directorio VFP. CONFIG.FPW es un archivo de texto ASCII y contiene instrucciones que se leen al momento de iniciar y se convierten en valores predeterminados de la sesin de FoxPro. He aqu algunos de los elementos que se fijan en la configuracin del sistema: SAFETY = OFF && no avisa antes de sobrescribir archivos TALK= OFF && no despliega el progreso

ECHO= OFF && inicialmente desactiva el rastreo DEBUG= ON && habilita el rastreo y la depuracin RESOURCE=FOXUSER && elige un archivo de recursos RESOURCE=OFF && no se use hasta que se solicite COMMAND= DO PROG && corre PROG al inicio Comandos de configuracin (SET) Los anteriores son comandos los cuales se pueden modificar utilizando los comandos que inician con la instruccin SET desde la ventana de comandos, por ej: SET DEFAULT TO A: && establece el dispositivo y el directorio Por ejemplo si los archivos que se van a utilizar se encuentran en el directorio C:\programas\transmisin\datos, escribiremos el comando SET de la siguiente forma: SET DEFAULT TO C:\programas\transmisin\datos. Otros comandos de configuracin son: SET CENTURY ON/OFF SET CLOCK ON/OFF SET DATE SET DELETE ON/OFF SET ECHO ON/OFF SET SYSMENU Creacin de tablas Diseador de tablas El diseador de tablas es una ventana donde podrs disear la estructura de un archivo de base de datos o tabla. Tipos de Campos Los campos no deben de contener caracteres especiales, fuera del carcter "Guin bajo", y tampoco puede empezar con un nmero. Pueden ser cuales quiera de varios tipos: Carcter: Cualquier cosa que se pueda teclear, puede ir en un campo de caracteres. Un carcter es lo mismo que un byte y un byte puede tener cualquier valor ASCII hasta 255, con unas cuntas excepciones. Numrico: Hasta un lmite de 18 dgitos, con tantas cifras decimales como quieras. Los enteros se almacenan en este formato y un nuevo tipo de dato "moneda" se usa generalmente para dinero.

Flotante: Este no lo utilizaremos en este manual pues slo sirve por compatibilidad con dBASE V, es equivalente al formato numrico. Fecha: Para almacenar la fecha en un formato interno numrico, pero su validacin y representacin se controlan con este tipo de campo. Lgico: ste, ya sea verdadero o falso, es representado por T o F, para verdadero o falso respectivamente. Memo: Representado en su estructura de registros como un campo de caracteres de longitud 10. Estos campos almacenan en una segunda tabla con la extensin .FPT. Pueden ser casi de cualquier tamao. General: stos tambin son campos memos, excepto que usualmente almacenan otros tipos de objetos adems de texto como grficos. Fecha-hora: incluye la hora despus de la fecha, en el formato [MM/DD/AA hh:mm:ss]. Moneda: Es un campo numrico e incluye cuatro cifras decimales. Imagen: Usado para guardar imgenes. Carcter binario: Campos de caracteres no sujetos a traducciones de pginas de cdigos. Memo binario: Campos memo con la misma caracterstica NOCPTRANS. Abrir y cerrar tablas. Para abrir un DBF en el rea de trabajo 1 cuando ninguna otra tabla est abierta, teclee en la ventana de comando (ventanita pequea que aparece generalmente al lado izquierdo): USE nombre de la tabla Nota: Un rea de trabajo es un espacio de memoria reservado para que all se manipulen los datos de la tabla. Puede especificar: USE nombre de la tabla IN 3 pero recuerda para abrir o cerrar una tabla tiene que estar ya creada. Para reservar un rea de trabajo puedes digitar: SELECT 0 && 0 es el nmero de rea de trabajo Este comando tambin puede ser SELECT nombre de la tabla / alias SELECT es para seleccionar la tabla a trabajar (abrir, cerrar, modificar, etc.) USE nombre de la tabla (y se abrir el cuadro de dialogo abrir, pues FoxPro no sabe que tabla abrir debes abrir la que necesites). Si necesitas tener varias tablas abiertas puedes hacer lo siguiente: SELECT A USE tabla1 SELECT B USE tabla2 SELECT C

USE tabla3 Y cuando quiera utilizar una de las tablas solo tienes que llamar el rea de trabajo como por ejemplo si vas ha utilizar la tabla2 escribe en la ventana de comandos o dentro de un programa SELECT B. Para cerrar tablas o una sesin de tablas abiertas puedes escribir los siguientes comandos: CLOSE ALL && cierra todas las tablas abiertas CLOSE DATABASE && cierra las bases de datos abiertas O simplemente escribe USE. Diseo de tablas Primero hay que crear un directorio para almacenar tu trabajo (aunque esto no es necesario pero si vas a trabajar con un disco flexible o en un directorio distinto al que trae designado FoxPro tienes que hacerlo), para ello digita: MD ruta luego para que FoxPro trabaje con este directorio debes digitar: SET DEFA TO ruta (nombre del directorio que se supone ya creaste con el comando md). Bien ahora tienes varias opciones para crear la tabla: 1. digita CREATE nombre de la tabla. 2. haz clic en nuevo (new) luego selecciona tabla (table) luego digite el nombre de la tabla. 3. Ctrl + n y selecciona tabla (table) luego digite el nombre de la tabla Despus tendrs que darle un nombre a la tabla y lo guardas aparecer el generador de tablas con las carpetas tabla e ndice (si es VFP 6.0 estar tambin campos). Ahora puedes introducir el nombre, el tipo y la longitud del campo en el orden correcto. Por ejemplo: Nombre Carcter 40 Direccin Carcter 40 Ciudad Carcter 22 Saldo monetario 8 (este es automtico) No oprimas enter porque el programa entender que la tabla ya esta terminada si quieres pasar a digitar el siguiente campo debe moverte con la tecla tab NO CON ENTER. Enseguida introduce datos a tu tabla. Si digitas LIST STRUCTURE (en la ventana de comandos), vers la estructura de tu tabla puedes borrar los campos si digitas DELETE NEXT numero de campo (2 por ejemplo), y puedes recuperarlo si digitas RECALL NEXT 2 y regresar. Ahora puedes digitar BROWSE y veras los datos que introdujiste la tabla despus de creada,

Si digitas SET SCAPE ON podrs detener algunos procesos cuando lo desees como el comando LIST pero aqu no ser necesario pues se introducirn pocos datos en la tabla. t puedes digitar LIST y ver los datos en forma rpida la sintaxis de LIST es: LIST | FIELDS listacampos | TO PRINT | WHILE expresiondominio | FOR expresiondominio | OFF FIELD digitas el nombre del campo o campos a visualizar. TO PRINT en para enviar la salida a la impresora. FOR seguido de una expresin de dominio, lista slo aquellos registros que coincidan con la expresin. ejemplo LIST FOR ciudad ="San Salvador" el WHILE seria LIST WHILE ciudad = "San Salvador", el WHILE se utiliza para optimizar muchos aspectos del desempeo de FoxPro. OFF desactiva la opcin de numeracin de registros digtalos y notars la diferencia. Sum si digitas SUM saldo te sumar todos los saldos (registros) almacenados en este campo. Cmo moverse en una tabla de FoxPro Cuando utilizamos inicialmente una tabla de FoxPro, t ests ubicado en el primer registro de la tabla. Puedes mover este puntero de registro imaginario alrededor de la tabla, en diversas formas: Skip Mueve el puntero hacia adelante un registro Skip-1 mueve el puntero hacia atrs un registro Go TOP Mueve el puntero al primer registr Go bottom Mueve el puntero al ltimo registro en la tabla Go 2 Mueve el puntero del registro al registro nmero 2. * Prueba estos comandos primero digita uno de ellos y luego digita list y vers los resultados. Practica 1 Segn la siguiente hoja, evalua los datos que pudan servir para realizar una tabla de Inventario, construye la estructura, tomando en cuenta algunos datos que puedan enriquecer la tabla. Computadoras SYSTEM S.A. Inventario fsico al _____ de __________ del 2001 Precio Descripcin Marca Exist. Costo Precio Venta Proveedor

igo

Monitor 14"

Acer

50

900.00

1080.00

Procom S.A.

Monitor 12"

Acer

102

850.00

1020.00

Procom S.A.

Monitor Radius

Acer

10

1100.00

1320.00

Procom S.A.

Case Mini tower Deluxe

ADS

300

105.00

126.00

Distribuidora SalCom

Case Desk Top

ADS

100

125.00

150.00

Distribuidora SalCom

Impresor Color JET 1000

Canon

25

367.00

440.40

Procom S.A.

Impresor color JET 2000 Agrega 20 registros a la tabla.

Canon

15

452.25

542.70

Procom S.A.

Utiliza los comandos Use, Browse, List y Display, segn te indique el instructor y anota en tu cuaderno lo que pasa. Manipulacin de registros Puedes utilizar diferentes tipos de comando para manipular los datos de tu tabla, estos comandos pueden utilizarse desde su modo ms simple hasta su forma compuesta utilizando expresiones de dominio, por ejemplo: LIST FOR pas = "ES" && lista los registro que pas = "ES" He aqu algunos comandos con sus expresiones de dominio: DISPLAY ALL DISPLAY RECORD 5 GOTO 17 GO TOP GO BOTTOM SKIP -3 DELETE RECORD 6 LIST FOR precio >1200 BROWSE FOR precio >=900 .AND. precio <2500 GO 6 RECALL

PACK ZAP Mencionaremos otros comandos que son de gran ayuda al momento de manipular los datos:

APPEND APPEND FROM

Agrega registros a la base de datos seleccionada Agrega registros desde otra tabla al final de los registros de la tabla seleccionada Copia cualquier tipo de archivos Almacena la estructura de una base de datos en una nueva base Copia datos de una base de datos a un archivo Determina el nmero de registro en la base de datos Muestra informacin de base de datos Despliega la informacin de las variables de memoria Despliega informacin de la condicin de FOX Muestra la estructura de una base de datos Abre una ventana de modificacin de texto Modifica la estructura de una base de datos Actualiza los registros en una base de datos

COPY FILE COPY STRUCTURE

COPY TO COUNT DISPLAY FILES DISPLAY MEMORY DISPLAY STATUS DISPLAY STRUCTURE MODIFY COMMAND MODIFY STRUCTURE REPLACE

Otro tipo de comandos tiles para la manipulacin de tablas y registros son las FUNCIONES, las cuales se dividen en: a. Cadenas o manejo de caracteres: este grupo de funciones gestiona el manejo de caracteres. b. Matemticas: permiten efectauar operaciones con valores numricos. c. Manejo de fechas y hora: se encarga de gesstionar las variables de tipo fecha.

d. Lgicas: Se encargan de efectuar operaciones de tipo lgico. e. Funciones de convercin de tipos: conviertes variables de un tipo a otro. Antes de mostrar ejemplos definiremos dos componentes que se hacen necesarios en la manipulacin de datos: Constante: Son valores predefinidos que no cambian nunca por ejemplo: valor1=15478, cadena="abcd". Variable: Se utilizan como identificadores de secciones de memoria donde se guarda informacin, por ejemplo: var1=campo1, var2=tabla.campo. Las variables se pueden definir como: publicas, privadas y locales ejemplo: PUBLIC nombre, apellidos PRIVATE sueldo Operadores relacionales Los operadores se utilizan en tiempo de ejecucin para unir dos o ms elementos del lenguaje. Operadores aritmticos ( ) Agrupa subexpresiones **, ^ Exponenciacin *, / Multiplicacin y divisin % Mdulo (resto de la divisin) +, - Suma y resta Operadores relacionales < Menor que > Mayor que <= Menor o igual que >= Mayor o igual que = igual a <>, #, =Distinto de $ Contenido en Ahora te daremos unos ejemplos con funciones en Visual FoxPro.

* Declaracin de variables cadena1 = SPACE(15) cadena2 = SPACE(15) nmero = 0 cuenta = 0 * Asignacin de datos cadena1 = "abcd efgh ijkl" * utilizando la funcin LEN para contar el nmero de la cadena ? LEN(Cadena1) && imprime en pantalla 14 ? Cadena2= SUSBTR(cadena1,1,4) && imprime en pantalla abad ? DTOC(DATE()) ? SIN (0) ndices Cuando se insertan registros en una tabla estos no se encuentran ordenados, para ello es necesario utilizar comandos que nos permitan ordenar los registros de acorde a la informacin que necesitamos. Comando SORT Clasifica un archivo de base de datos SINTAXIS SORT TO <archivo> ON <campo> [/A] [/D] [/C] [,<campo2> [/A] [/D] [/C]..] [ASCENDING | DESCENDING] [<alcances>] [FOR <expresin lgica1>] [WHILE <expresin lgica2>] [FIELDS <lista de campos>] EJEMPLO: USE persona SORT TO persona_ordenada ON nombre USE persona_ordenada

Persona Juan Martnez Roxana Cuellar Margarita Rosales Pedro Lpez Eduardo Garay Comando INDEX ON

persona_ordenada Eduardo Garay Juan Martnez Margarita Rosales Pedro Lpez Roxana Cuellar

Crea un ndice en un archivo de ndices compuestos o bien un archivo de ndice simple. SINTAXIS INDEX ON campo TO nombre de archivo IDX | TAG etiqueta [OF archivo CDX][FOR expresin lgica] [COMPACT][ASCENDING | DESCENDING] [CANDIDATE |UNIQUE ][ADDITIVE] EJEMPLO: USE persona INDEX ON nombre TO persona.idx El comando INDEX ON crea una archivo ndice llamado persona.idx, el cual tendr el ndice de el archivo persona. Una mejor forma de crear un ndice y en el cual Fox trabaja a una mejor capacidad es creando un ndice compuesto. INDEX ON nombre TAG persona De la forma anterior se crea un archivo ndice persona.CDX. Tambin se pueden crear ndices combinados con dos o ms campos por ejemplo: INDEX ON UPPER(LEFT(apellido,10) + LEFT(nombre,10)) TO nombre. Practica 2 1. Abre la tabla de inventario. 1. 2. 3. 4. Escribe la siguiente instruccin SORT ON codigo TO inventarioordenado. Aplica un BROWSE y abre la nueva tabla y BROWSE, compara ambas. Cierra las tablas en uso escribiendo la siguiente sentencia CLOSE ALL. Haremos una copia del archivo inventario.dbf COPY FILE inventario.dbf TO inventa.dbf. 5. Ahora ordenaremos la tabla por medio de un ndice escribiendo la siguiente sentencia INDEX ON CODIGO TO CODIGO; le estas diciendo que el ndice va

ha ser por medio de cdigo y que el archivo ndice se llamar CODIGO solo que este con extensin IDX, visualiza el archivo escribiendo DIR *.IDX. 6. Ahora cierra la tablas. Y vuelve a abrirla escribiendo USE INVENTARIO INDEX CODIGO. 7. Busca un registro haciendo uso del comando SEEK, de la forma siguiente SEEK <expresin> por ejemplo SEEK "MO01"; recuerda si el campo es de tipo numrico no se le colocan comillas. 8. Ahora DISPLAY, y veras que te aparece el registro que buscaste por medio del ndice. Ejercicio: Crea una tabla que guarde los datos de tus compaeros y pon un ndice por el campo que creas conveniente y prctica lo anterior. Tambin puedes indexar una tabla, desde el generador de tablas de FoxPro marcando la casilla que se muestra en la figura: Primero tienes que seleccionar el campo que servir como ndice, luego selecciona la ficha de modo que te aparezca la siguiente pantalla: Tienes que elegir el tipo de de ndice el cual le indicara a la tabla que tipo de ndice tiene. Los tipos de ndices son los siguientes: Principal: No admites claves duplicadas, acta como referente a un registro de una tabla, de forma que no puede haber dos registros con la misma clave. Candidato: Este ndice tampoco admite claves duplicadas. Puede haber ms de uno por tabla. nico: En este ndice slo se guardan aquellos valores que sean distintos entre s, pero s admite registros con valores duplicados. Regular: Es el ndice tpico. Admite claves duplicadas. Relacin de Tablas Normalizacin La nica y ms importante tcnica en el desarrollo de base de datos es la capacidad de observar los datos y ver la base de la estructura de los mismos. Al tener varios datos desordenados y organizarlos en diferentes tablas relacionadas entre s, a este proceso se le llama normalizacin. Vincular tablas SET RELATION TO Crea una relacin entre una base de datos padre, la que deber estar abierta en el rea de trabajo actualmente seleccionada, y una base de datos hija, ya abierta en otra rea de trabajo. SINTAXIS SET RELATION TO [<expresin1> INTO <expresin numrica1>|<expresin carcter1>] Ejemplo:

Para relacionar tablas tienes que tener do o ms tablas abiertas en distintas reas de trabajo y que por lo menos tengan un campo en comn. SELECT 1 USE empleado INDEX empleado.IDX SELECT 2 USE departamento INDEX departamento.IDX SELECT 1 SET RELATION TO cod_dpto INTO 2 En el ejemplo anterior empleado es la tabla padre y departamento la tabla hija, la relacin de se da por medio del capo en comn cod_dpto. El generador de bases de dato Almacena informacin sobre tablas, ndices y otros temas relacionados. Un contenedor de base de datos en verdad es una tabla de FoxPro con la extensin .DBC. Sus campos memo relacionados estn en una tabla del mismo nombre con la extensin .DCT.

Los DBC son esencialmente diccionarios de datos activos. Su representacin visual de un modelo de datos de aplicacin visual es precisa en la documentacin y comunicacin de las relaciones entre las tablas de sus aplicaciones. Las relaciones ms comunes entre tablas: De uno a uno: Ejemplo de una llave primaria a otra llave primaria. De uno a muchos: Ejemplo de una llave primaria a una regular o fornea. Prctica 3. Haciendo uso de los conocimientos adquiridos en Anlisis de Sistemas, normaliza tu tabla de inventario y construye una base de datos del inventario que por lo menos tenga las tablas: Productos, Proveedores y Marca. Construye el diagrama de Entidad - Relacin con su cardinalidad y realiza la estructura de la base de datos en Visual FoxPro. Despus de que hayas relacionado la estructura de tu base de datos, has la siguiente prueba para verificar si la base de datos esta bien construida. a. Agrega a la tabla de Productos 20 registros, a la de proveedores 3 registros y a marcas 12 registros, tomando en cuenta que deben de tener datos en comn como por ejemplo: MO25 - Monitor de 14" - ACER - 1080.00 - Procom S.A. b. Para verificar la relacin de los datos debers realizar los siguientes pasos: 1. Elige el men Ventana - Sesin de datos.

2. Te aparece la ventana de sesin de datos, luego elige el botn Abrir y selecciona una de las tablas. 3. Has lo mismo con las otras tablas. 4. Ya abiertas las tablas, selecciona la tabla de proveedores y has clic en el botn Relaciones, luego selecciona la tabla Marca y elige el campo con el cual armaras tu relacin. 5. Si te aparece el cuadro expresiones, selecciona el campo de la tabla de la cual armaras la relacin. 6. Luego has clic otra vez en la tabla proveedores y da clic en el botn Relaciones. 7. Repite los pasos anteriores solo que esta vez elige la tabla de producto, de modo que al finalizar te quede de la siguiente forma. 8. Ahora selecciona el botn Examinar para cada tabla y navega en la tabla proveedores, los datos de las otras tablas aparecern relacionados con ella, de lo contrario revisa tu relacin. 9. Prueba con la relacin Producto - Marca - Proveedores, Marca Productos - Proveedores. 3. Programacin. Conceptos. Usualmente se agrupa el cdigo fuente en archivos de programa. Un archivo de programa esta compuesto de varias sentencias, que incluyen comandos, funciones y estructuras de control de flujo. El compilador traduce el contenido de estos archivos de texto ASCII a cdigo interpretado. En cuanto el compilador ha traducido el cdigo fuente crea un archivo con extensin .FXP que es el que va a utilizar a partir de ese momento. Cada vez que el programador introduce algn cambio en el archivo .PRG el compilador compara la fecha de ambos archivos y crea una nueva versin compilada del programa. Haciendo el cdigo legible: Espacios en blanco: Significan reas vacas dentro del cdigo de programa, tambin espacios, tabulaciones o lneas vacas. Sangrado: Sangrar es la mejor manera de optimizar el cdigo. Es una prctica comn sangrar dentro de comandos pares anidados, por ejemplo: DO ENDDO IF ENDIF SCAN..ENDSCAN DOCASE...ENDCASE WITHENDWITH Maysculas y minsculas: Muchos programadores utilizan maysculas y minsculas para distinguir entre los elementos del programa; maysculas para los comandos y minsculas para las variables. Comentarios: Los comentarios pueden existir en una lnea precedidos por un asterisco y despus de una lnea de cdigo, si estn separados de && consecutivos. Continuar lneas largas de cdigo: Puede continuar lneas largas de cdigo en la siguiente lnea insertando un ";" al final de la lnea.

Una de las tcnicas ms tiles en la programacin son los encabezados de programa, por ejemplo: * Nombre del programa : nombre * Autor : Hctor Hernndez * Propsito : Dibujar cuadros en la pantalla * Fecha : 12/12/2001 Comandos de Asignacin Para crear variables de memoria y darles valores al mismo tiempo, escriba lo siguiente: X=3 STORE "lunes" TO da Para solamente crearlas: PUBLIC a, b, c PRIVATE x, y, z LOCAL nombre, trabaja DIMENSION nombres(3) Declaracin de Variables. Las variables temporales se pueden declarar utilizando los comandos anteriores, nicamente, hay que tomar en cuenta la forma en que se van a declarar o escribir, como ejemplo: Nom_Empleado; NomEmpleado, si son variables de memoria se le puede anteponer una m x de la forma siguiente, mNom_Empleado; xNom_Empleado, tambin se pueden declarar variables haciendo saber el tipo de datos que maneja por ejemplo: cNom_Empleado, nSueldo_Empleado; dFecha_Ingreso, etc. Operadores. Los operadores + y son, por supuesto, usados para aadir y substraer nmeros, pero tambin se pueden usar en campos de caracteres. El operador ms eslabona dos expresiones de caracteres, campos o variables de memoria, de forma que Fred + Smith; producir: FredSmith. El operador menos quita espacio rezagado. Operadores cclicos y ramificaciones. Las operaciones cclicas y de ramificacin son los mecanismos para crear la lgica de un programa, ejemplo: FOR I=1 TO 10 ? I && Imprime los nmeros del 1 al 10 ENDFOR

SELECT clientes SCAN ? Clientes.nombre&&Lee un archivo desde el inicio hasta el final ENDSCAN SELECT clientes GO TOP DO WHILE NOT EOF() ? Clientes.nombre&& Lee un archivo desde el inicio hasta el final SKIP ENNDO Puede salir de estas construcciones cclicas en cualquier momento mediante el comando: EXIT. La ramificacin en VF es controlada con la construccin IF.. ENDIF, por ejemplo: IF I >10 ? [El contador excedi 10] ENDIF Los contadores se utilizan a menudo para salir de operaciones cclicas: L=1 DO WHILE L=LEN(nombrelista) IF [CRUZ]$ nombrelista(L) SEEK nombrelista(L) IF nombre= [John] DO prgnombre LOOP ENDIF ENDIF ENDDO

Se recomienda que cuando se utiliza un operador cclico, un operador condicional, o cualquier otro operador que abra y cierre una estructura se escriba el comando primero y luego se realice el proceso, esto para no perderse en la programacin. Tipos de comandos Vamos a dividir los comandos segn su funcionalidad en los siguientes tipos: 1. Base de datos: Todos los que sirven para manipular bases de datos, tablas y campos. 2. Entorno: Entorno del sistema operativo y de Visual Fox Pro. 3. Acceso compartido a datos: Acceso multiusuario a tablas y base de datos. 4. Entrada y salida: Los que permiten la interfaz entre la computadora y el usuario. 5. Programacin: Los que tienen relacin con el entorno de desarrollo de aplicaciones. Funciones Son procesos internos programadores que pueden ser llamados desde cualquier punta de Visual Fox lo que diferencia de los mandatos de las funciones es que estas devuelven un valor. Aceptan una serie de parmetros, y se reconocen por el uso de parntesis para encerrar los argumentos, por ejemplo DATE( ) y TIME ( ). Las funciones se dividen de la siguiente forma: Practica 4 Realiza los siguientes programas utilizando programacin simple (programas .PRG) y da solucin a las siguientes situaciones. 1. Desplegar el valor a cobrar por llamadas telefnicas locales, si se cobra $0.09 cada llamada, haciendo hasta 100 llamadas, $0.08 por 200, $0.07 por 300 y $0.06 por ms de trescientos, teniendo en cuenta tambin que por llamadas internacionales la tarifa es fija de $1.93 si son diurnas y $1.75 si son nocturnas, cada una de estas tarifas esta medida en minutos. 2. Calcular la utilidad que un trabajador recibe en el reparto de utilidades si ste se le asigna como porcentaje de un salario mensual que depende de su antigedad en la empresa de acuerdo con esta tabla: Tiempo Utilidad Menos de un ao 5% de 1 hasta menos 2 aos 7% 2 aos a menos de 5 aos 10% de 5 aos a ms 15% Tipos de datos Funciones de manejo de cadenas de caracteres. Funciones de conversin de tipos Funciones de fecha y hora Funciones de manejo de valores numricos Funciones definidas por los usuarios (FDU)

3. Determinar la cantidad de dinero que recibir un trabajador por concepto de las horas trabajadas en una empresa, sabiendo que cuando las horas extras de trabajo exceden de 40, el resto se considera horas extras y que stas se pagan al doble de una hora normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan al doble ms el 70% de la hora normal, las horas extras no exceden de 55. 4. Realice un programa en el cual pida el nombre completo de una persona y este indique cuantas vocales y cuantas consonantes tiene. 5. Realice un programa o diferentes programas que permita un mantenimiento de una tabla de direcciones. Programacin orientada a objetos La POO intenta ser un mejor sistema para el desarrollo de aplicaciones. Como toda tcnica de programacin, si se hace mal puede ser desastrosa. Una de las mejoras que se tiene con la POO es el permitir afrontar programas ms complejos y de mayor tamao con menor esfuerzo. El hecho de trabajar con pequeos elementos bien definidos, como son los objetos, nos permite aislar cada componente de la aplicacin, del resto y de esa forma aprovechar en mayor medida nuestro esfuerzo. Elementos de la POO Clase y objeto: la clase es la generalizacin de los objetos y los objetos son la concrecin de la clase. Como ejemplo podemos observar los botones de un entorno grfico, donde definimos que la clase botn es la generalizacin de las propiedades y comportamientos de todos los botones de los entorno grficos. Definir una clase: las clases son la descripcin de los elementos comunes de los objetos que generalizan. As las clases se definen y pueden ser usadas para crear innumerables objetos de este tipo. Para definir una clase utilizaremos una sencilla sintaxis de VFP. DEFINE CLASS NombreClase AS Clasebase Para poder utilizar esta definicin debemos incluirla en un fichero .PRG y cargado con SET PROCEDURE TO o bien incluirla al final de nuestro fichero .PRG. Crear un objeto: ya podemos crear objetos basado en esta clase, para ello utilizaremos la siguiente expresin: Variable1 = CREATEOBJECT("NombreClase") Propiedades: Como hemos dicho, las propiedades son los datos que manejan las clases. Estas propiedades se declaran en la definicin de la clase y permanecen en todo momento asociados a los objetos CREADOS bajo esa clase. Mtodos: el otro elemento caracterstico de una clase son los mtodos. Los mtodos son acciones que pueden realizar los objetos, es decir, son funciones o procedimientos asociados a este tipo objeto. Mensajes: Cuando llamamos a un mtodo de un objeto se dice que estamos enviando un mensaje al objeto para que realice una determinada accin. Operador this: Cuado vamos a utilizar una propiedad o un mtodo de la clase, debemos anteponer al operador punto el operador THIS, para indicar que se trataran las propiedades del objeto que recibe el mensaje, es decir, que ha sido invocado, y no para otro.

Las propiedades mantienen valores diferentes para cada uno de los objetos, pero los mtodos comparten su cdigo entre todos los objetos de una clase. Un mtodo vara en la medida que las propiedades del objeto que lo llama son diferentes, por ello es tan importante el operador THIS. Ocultacin: Una de las mejoras que implementa la POO, es la posibilidad de limitar el acceso a determinadas propiedades o mtodos. Con ello conseguimos que la utilizacin de la clase se haga de forma ordenada. Las propiedades o mtodos protegidos slo son utilizables desde los mtodos pertenecientes a esta clase y no pueden usarse directamente por otros programas. Al igual que podemos proteger propiedades, podemos proteger mtodos. De esta forma podemos definir mtodos que slo sean usados por otros mtodos de la clase y no puedan ser invocados a partir de los objetos de esta clase. Para ello basta colocar la clusula PROTECTED antes de PROCEDURE. Polimorfismo: Cuando realizamos programacin estructurada debemos tener cuidado de no llamar con el mismo nombre a dos variables o a dos procedimientos, sin embargo en la POO podemos llamar a un mtodo o a una propiedad de una clase de igual forma que un mtodo o propiedad de otra. Esta caracterstica es lo que se denomina polimorfismo. Eventos: Existe una serie de mtodos especiales, que normalmente no se ejecutan por ser invocados de forma explcita, como los que hemos definido hasta ahora, sino que por denominarse de una forma determinada son lanzados cuando "pasa algo", es decir, cuando se produce un evento. Estos eventos pueden ser un clic, el movimiento del ratn, una pulsacin de tecla, etc. Conclusiones La POO es un conjunto de conceptos interrelacionados que difcilmente se entiende unos sin los otros. La POO est aqu y no deberamos ignorarla por ms tiempo. Posiblemente no es necesario este tipo de programacin, pero es realmente muy recomendable, es seguro que no soluciona todos los problemas, pero es mucho ms sencillo el desarrollo, tendremos que esforzarnos un poco al principio, pero nuestro esfuerzo se ver sobradamente recompensado. En definitiva la PROGRAMACIN ORIENTADA A OBJETO es una mejor forma de programar. Ejemplo: formu = CREATEOBJECT("Ejemplo") formu.ADDOBJECT("boton","boton") formu.SHOW READ EVENT DEFINE CLASS ejemplo AS FORM MOVABLE=.F. CLASE DEL OBJETO formu DEFINE EL OBJETO boton DEFINE EL OBJETO formu

CLOSABLE=.F. CAPTION="EJEMPLO DE POO" AUTOCENTER=.T. ENDDEFINE CLASE DEL OBJETO boton DEFINE CLASS boton AS COMMANDBUTTON VISIBLE=.T. CAPTION="PRESIONE AQUI" LEFT=125 TOP=65 HEIGHT=100 PROCEDURE CLICK IF MESSAGEBOX("ACABAS DE UTILIZAR POO",0+48)=1 CLEAR EVENT ENDIF ENDDEFINE Fin del programa

4. Formularios Conceptos Objeto: Una instancia de una clase que combina datos y procedimientos. Por ejemplo, un control de un formulario en ejecucin es un objeto. Formulario: Se utilizan para visualizar e introducir cualquier tipo de informacin y son el medio de comunicacin entre el usuario y los datos. Propiedades: Un atributo de un control, campo u objeto de base de datos que se establece para definir una de las caractersticas del objeto o un aspecto de su comportamiento. Por ejemplo, la propiedad Visible afecta a la visibilidad en tiempo de ejecucin de un control. Puede cambiar los valores de las propiedades de objeto mediante la ventana Propiedades. Evento: Una accin, reconocida por un objeto, para la cual puede escribir cdigo de respuesta. Los eventos pueden estar generados por una accin del usuario, como hacer clic con el mouse o presionar una tecla, por cdigo de programa o por el sistema, como ocurre con los cronmetros.

Mtodo: Una accin que un objeto es capaz de realizar. Por ejemplo, los cuadros de lista tienen mtodos llamados AddItem, RemoveItem y Clear para mantener el contenido de las listas. Barra de herramientas: Una serie de botones en los que se hace clic para realizar tareas frecuentes. Las barras de herramientas pueden flotar en su propia ventana o bien puede

You might also like