Manual Te rico Pr ctico de Visual FoxPro 6tareazdec.galeon.com/fox.pdf · as , como tambi n...
Transcript of Manual Te rico Pr ctico de Visual FoxPro 6tareazdec.galeon.com/fox.pdf · as , como tambi n...
Manual Te rico Pr ctico de Visual FoxPro 6.0
Indice
1. Introducci n
2. Bases de datos.
3. Programaci n.
4. Formularios
5. Informes
1. Introducci n
En este manual daremos a conocer al estudiante el lenguaje de programacin Visual Fox Pro 6.0. Se pretendefamiliarizar 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 programaci n sea sencilla, estructurada y mas fc il deentender tanto para programadores principiantes como programadores expertos.
Nos enfocaremos en cinco rea s principales:
Base de datos: Trata sobre el diseo , creacin y manipulaci n de tablas libres o tablas con integridad referencial (base dedatos) Programci n: En esta parte seremos capaces de identificar y aplicar las estructuras b sicas de programacin y conoceraspectos sobre la programacin orientada a objeto s. Formularios: Aplicaremos conocimientos para la integracin de una interfaz con el usuario y base de datos. Informes: Aprenderemos a disear la s salidas de los sistemas de informaci n, haciendo uso de las herramientas que elprograma ofrece. SQL: En esta seccin haremos uso del lenguaje SQL para manipular datos, creando as diferentes consultas o vistas.2. Bases de datos.
Introducci n
En este manual mostraremos lo b sico pero tambin puede s consultar alg n libro de Visual FoxPro pues todo ser para tudesarrollo, en las bibliotecas o en las librera s. FoxPro es un lenguaje de mucha rapidez, esto lo convierte en unlenguaje de los m s r pidos en el mercado, FoxPro es tambi n uno de los lenguajes de programacin que contiene muchapotencia en el manejo de las bases de datos.
Conceptos B sicos
Base de datos es un conjunto de datos almacenados en campos y registros, es decir que la base de datos estaconformada 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 dato s, son los que estn en horizontal.
Componentes de Interfaz
Algunas herramientas ms utilizadas son:
Ventana Examinar: una vista, tipo hoja de clcu lo, de una tabla.
Ventana C digo: para desplegar c digo asociado a varios eventos en los formularios y controles. Cuando un evento sedispara el c digo se ejecuta.
Ventana Depuraci n: permite examinar variables de memoria o valores campos y establecer puntos de interrupcin . Laejecucin del programa se detiene cuando una variable de memoria o una expresin con un punto de interrupci ncambian de valor.
Comando Opciones (Men de Herramientas): permite controlar la configuracin de doce nas de caracterstica s en elentorno 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 generadoresde formularios, informes etiquetas y de las bases de datos, tambin prop orciona acceso a propiedades, mtodo s y cdigode eventos.
Administrador de Proyectos: un diseo completamente novedoso de FoxPro para Windows, este administrador deproyectos 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 herramientamaneja todos los aspectos de construir una consulta.
Barras de herramientas FoxPro: proporciona a los generadores aplicaciones m s de una docena de barras deherramientas para colocar toda la herramienta para varias tareas justo al alcance de sus dedos. Adem s, puedes dise artus propias barras de herramientas en conjuncin con formularios, para proporcionar a los usuarios el mismo tipo deacceso instant neo 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 aplicaci n.
Generador de consulta Para construir conjuntos de datos utilizados en reportes y en pantallas de sl o lectura.
Generador de informes Para construir informes para la pantalla o la impresora.
Generador de mens C onstruye el sistema de mens que ejecuta una aplicaci n.
Generador de tablas Administra el formato de las tablas utilizadas en la aplicaci n.
Generador de cuadr culas Permite aprender cmo la s configuraciones de la propiedad de cuadr cula del objeto controlanla operacin de l a cuadr cula.
Asistentes
Son conjunto de cuadro de di logos que te ayudan paso a paso a crear una determinada aplicacin, por ejemplo unformulario, etc.
Asistente para formularios: Construye "Pantallas instantneas" con la estructura de las tablas basndo se en clasesprediseada s, 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 m s que la estructura de las tablas.
Asistente para tablas: til para hacer tablas sencillas
Barras de Herramientas
El prop sito de que hayan estas barras es para hacerte un poco m s f cil el trabajo, es decir que el uso que le dar a laventana de comandos ser un poquito reducido.
Paleta de colores creo que te imaginas que es la barra de los colores en funci n 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 tablaas , como tambi n modificar, vista remota o local, examinar una tabla o editar procedimientos almacenados en elcontenedor 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 diseode pantallas: el entorno de los datos, la ventana propiedades, la ventana cdigo la barra C ontroles de formularios, lapaleta de colores, la barra de herramientas. Distribucin, entre otro s.
Presentacin P reliminar para que una vez diseado un informe pueda s apreciarlo como te quedar y si no te gusta pues lopodr s modificar.
Estnda r Este lo ver s cuando inicies FoxPro, proporciona acceso al generador de formularios y al Generador deinformes, a bases de datos de impresin consultan tablas, conexiones, vistas, etiquetas, programas, clases, archivos detexto y men s.
Administrador de Proyectos
Estos proyectos estn integrado s por el Administrador de proyectos, quien mantiene la pista de los componentes de laaplicaci n. Conforme se agregan componentes a un proyecto, (Estas son las carpetas o nombre de los men s delAdministrador) 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.
C digo: los archivos con extensin . PRG que contienen c digo que no est a sociado con un formulario, as comobibliotecas API y archivos llamados por la aplicaci n.
Otros: men s, 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 exi sten otrasbarras de herramientas. Se hace clic en el men Ver, aparece una sola opci n de barras de herramientas. S lo haz clic enla barra que quieres activar y aparecer al igual que la estnda r. Algunas de estas barras ya las vimos anteriormente,r ecuerdas?.
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 estasbases de datos es .DBF aunque tambi n hay otras que se ver m s adelante. Los DBF comienzan con una brevedescripcin 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 (versi n windows XP).
inicio / programas / Microsoft Visual Studio 6.0 /Microsoft Visual FoxPro 6.0 (versi n windows est ndar).
Aparecer en t u pantalla la siguiente ventana:
Escritorio de Visual FoxPro
Configuraci n de Visual FoxPro 6.0
Cuando se carga FoxPro, lee un archivo llamado CONFIG.FPW en el directorio VFP. CONFIG.FPW es un archivo detexto ASCII y contiene instrucciones que se leen al momento de iniciar y se convierten en valores predeterminados dela sesi n 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 configuraci n (SET)
Los anteriores son comandos los cuales se pueden modificar utilizando los comandos que inician con la instruccin S ETdesde 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\transmisi n\datos.
Otros comandos de configuracin s on:
SET CENTURY ON/OFF
SET CLOCK ON/OFF
SET DATE
SET DELETE ON/OFF
SET ECHO ON/OFF
SET SYSMENU
Creacin d e tablas
Disea dor de tablas
El dise ador de tablas es una ventana donde podr s disea r la estructura de un archivo de base de datos o tabla.
Tipos de Campos
Los campos no deben de contener caracteres especiales, fuera del car cter "Gui n bajo", y tampoco puede empezar conun nmero. P ueden ser cuales quiera de varios tipos:
Car cter: Cualquier cosa que se pueda teclear, puede ir en un campo de caracteres. Un car cter es lo mismo que un bytey un byte puede tener cualquier valor ASCII hasta 255, con unas cunta s excepciones.
Num rico: Hasta un lmite de 18 dgito s, con tantas cifras decimales como quieras. Los enteros se almacenan en esteformato y un nuevo tipo de dato "moneda" se usa generalmente para dinero.
Flotante: Este no lo utilizaremos en este manual pues s lo sirve por compatibilidad con dBASE V, es equivalente alformato numr ico.
Fecha: Para almacenar la fecha en un formato interno numrico, pero su validacin y repre sentacin s e controlan con estetipo de campo.
Lg ico: 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 camposalmacenan en una segunda tabla con la extensin . FPT. Pueden ser casi de cualquier tamao.
General: st os tambin s on campos memos, excepto que usualmente almacenan otros tipos de objetos adem s de textocomo grfi cos.
Fechahora: incluye la hora despu s de la fecha, en el formato [MM/DD/AA hh:mm:ss].
Moneda: Es un campo num rico e incluye cuatro cifras decimales.
Imagen: Usado para guardar im genes.
Car cter binario: Campos de caracteres no sujetos a traducciones de p ginas de c digos.
Memo binario: Campos memo con la misma caracter stica NOCPTRANS.
Abrir y cerrar tablas.
Para abrir un DBF en el rea de trabajo 1 cuando ninguna otra tabla est abierta, tec lee 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 s e 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 n mero de rea de trabajo
Este comando tambin p uede 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 quetabla 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 latabla2 escribe en la ventana de comandos o dentro de un programa SELECT B.
Para cerrar tablas o una sesin de tabla s 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 tabla s
Primero hay que crear un directorio para almacenar tu trabajo (aunque esto no es necesario pero si vas a trabajar con undisco flexible o en un directorio distinto al que trae designado FoxPro tienes que hacerlo), para ello digita: MD rutaluego 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
Despu s tendr s que darle un nombre a la tabla y lo guardas aparecer e l generador de tablas con las carpetas tabla endice ( si es VFP 6.0 estar tambi n campos).
Ahora puedes introducir el nombre, el tipo y la longitud del campo en el orden correcto.
Por ejemplo:
Nombre Car cter 40
Direcci n Car cter 40
Ciudad Carc ter 22
Saldo monetario 8 (este es automtico)
No oprimas enter porque el programa entender q ue la tabla ya esta terminada si quieres pasar a digitar el siguientecampo debe moverte con la tecla tab NO CON ENTER. Enseguida introduce datos a tu tabla. Si digitas LISTSTRUCTURE (en la ventana de comandos), vers la estructura de tu tabla puedes borrar los campos si digitas DELETENEXT 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 despu s de creada,
Si digitas SET SCAPE ON podrs detener algunos procesos cuando lo desees como el comando LIST pero aqu no sernecesario pues se introducirn pocos datos en la tabla. t p uedes digitar LIST y ver los datos en forma rpida la s intaxisde 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. FORseguido de una expresi n de dominio, lista slo aquello s registros que coincidan con la expresin. ejemplo LI ST FORciudad ="San Salvador" el WHILE seria LIST WHILE ciudad = "San Salvador", el WHILE se utiliza para optimizarmuchos aspectos del desempeo de Fo xPro. OFF desactiva la opcin de numeracin de registros dig talos y notar s ladiferencia.
Sum si digitas SUM saldo te sumar tod os los saldos (registros) almacenados en este campo.
Cmo moverse en una tabla de FoxPro
Cuando utilizamos inicialmente una tabla de FoxPro, t est s ubicado en el primer registro de la tabla. Puedes movereste puntero de registro imaginario alrededor de la tabla, en diversas formas:
Skip Mueve el puntero hacia adelante un registro
Skip1 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
Seg n 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 fsi co al _____ de __________ del 2001
C digo
Descripci n
Marca
Exist. Precio
Costo Precio
Venta
Proveedor M025 Monitor 14" Acer 50 900.00 1080.00 Procom S.A. M026 Monitor 12" Acer 102 850.00 1020.00 Procom S.A. M027 Monitor Radius Acer 10 1100.00 1320.00 Procom S.A. CA01 Case Mini tower Deluxe ADS 300 105.00 126.00 Distribuidora SalCom CA02 Case Desk Top ADS 100 125.00 150.00 Distribuidora SalCom
IMC1 Impresor Color JET 1000 Canon 25 367.00 440.40 Procom S.A. IMC2 Impresor color JET 2000 Canon 15 452.25 542.70 Procom S.A.
Agrega 20 registros a la tabla.
Utiliza los comandos Use, Browse, List y Display, segn te ind ique 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 utilizarsedesde su modo m s simple hasta su forma compuesta utilizando expresiones de dominio, por ejemplo:
LIST FOR pa s = "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 Agrega registros a la base de datos seleccionada APPEND FROM Agrega registros desde otra tabla al final de los registros de la tabla seleccionada COPY FILE Copia cualquier tipo de archivos COPY STRUCTURE Almacena la estructura de una base de datos en una nueva base COPY TO Copia datos de una base de datos a un archivo COUNT Determina el nmero de regi stro en la base de datos DISPLAY FILES Muestra informacin de base de datos DISPLAY MEMORY Despliega la informaci n de las variables de memoria DISPLAY STATUS Despliega informacin de la condici n de FOX DISPLAY STRUCTURE Muestra la estructura de una base de datos MODIFY COMMAND Abre una ventana de modificacin de texto MODIFY STRUCTURE Modifica la estructura de una base de datos REPLACE Actualiza los registros en una base de datos
Otro tipo de comandos tiles para la manipulacin de tabla s y registros son las FUNCIONES, las cuales se dividen en:
Cadenas o manejo de caracteres: este grupo de funciones gestiona el manejo de caracteres. Matemticas: permiten efectauar operaciones con valores numricos . Manejo de fechas y hora: se encarga de gesstionar las variables de tipo fecha. Lg icas: Se encargan de efectuar operaciones de tipo lgico. Funciones de convercin de tipo s: 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 informaci n, 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 m s elementos del lenguaje.
Operadores aritmtico s
( ) Agrupa subexpresiones
**, ^ Exponenciacin
*, / Multiplicacin y divisin
% M dulo (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 d e variables
cadena1 = SPACE(15)
cadena2 = SPACE(15)
nmero = 0
cuenta = 0
* Asignaci n de datos
cadena1 = "abcd efgh ijkl"
* utilizando la funcin LEN para contar el n mero 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 comandosque 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 persona_ordenada Juan Martnez
Roxana Cuellar
Margarita Rosales
Pedro L pez
Eduardo Garay Eduardo Garay
Juan Martnez
Margarita Rosales
Pedro L pez
Roxana Cuellar
Comando INDEX ON
Crea un nd ice en un archivo de nd ices compuestos o bien un archivo de ndice s imple.
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 e l 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 compue sto.
INDEX ON nombre TAG persona
De la forma anterior se crea un archivo ndice pe rsona.CDX.
Tambi n se pueden crear nd ices combinados con dos o m s campos por ejemplo: INDEX ON UPPER(LEFT(apellido,10) + LEFT(nombre,10)) TO nombre.
Practica 2
Abre la tabla de inventario.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. Ahora ordenaremos la tabla por medio de un nd ice escribiendo la siguiente sentencia INDEX ON CODIGO TOCODIGO; le estas diciendo que el ndice va ha ser por medio de cdigo y que el archivo ndice se llamar CODIGO soloque este con extensi n IDX, visualiza el archivo escribiendo DIR *.IDX. Ahora cierra la tablas. Y vuelve a abrirla escribiendo USE INVENTARIO INDEX CODIGO. Busca un registro haciendo uso del comando SEEK, de la forma siguiente SEEK <expresin> por ejemplo S EEK"MO01"; recuerda si el campo es de tipo numrico no se le colocan comillas. 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 compaero s y pon un n dice por el campo que creas conveniente y pr ctica loanterior.
Tambi n puedes indexar una tabla, desde el generador de tablas de FoxPro marcando la casilla que se muestra en lafigura:
Primero tienes que seleccionar el campo que servir como ndice, luego selecciona la ficha de modo que te aparezca lasiguiente pantalla:
Tienes que elegir el tipo de de nd ice el cual le indicara a la tabla que tipo de nd ice tiene. Los tipos de n dices son lossiguientes:
Principal: No admites claves duplicadas, act a como referente a un registro de una tabla, de forma que no puede haberdos registros con la misma clave.
Candidato: Este ndice tampoco admite claves duplicadas. Puede haber ms de uno por tabla.
nico: En este ndice s lo s e guardan aquellos valores que sean distintos entre s, pero s admite regi stros con valoresduplicados.
Regular: Es el ndice t pico. Admite claves duplicadas.
Relacin d e Tablas
Normalizacin
La nica y ms importante tcn ica en el desarrollo de base de datos es la capacidad de observar los datos y ver la base dela 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 relaci n entre una base de datos padre, la que deber estar abierta en el rea de trabajo actualmenteseleccionada, y una base de datos hija, ya abierta en otra rea de trabajo.
SINTAXIS
SET RELATION TO [<expresi n1> INTO <expresin num rica1>|<expresi n car cter1>]
Ejemplo:
Para relacionar tablas tienes que tener do o m s tablas abiertas en distintas reas de trabajo y que por lo menos tengan uncampo en com n.
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 relaci n de se da por medio del capoen com n cod_dpto.
El generador de bases de dato
Almacena informaci n sobre tablas, ndice s y otros temas relacionados. Un contenedor de base de datos en verdad esuna tabla de FoxPro con la extensin .DBC. Sus campos memo relacionados est n en una tabla del mismo nombre con laextensin .DCT.
Los DBC son esencialmente diccionarios de datos activos. Su representaci n visual de un modelo de datos de aplicacinvisual es precisa en la documentacin y comunicacin de la s 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 for nea.
Pr ctica 3.
Haciendo uso de los conocimientos adquiridos en An lisis de Sistemas, normaliza tu tabla de inventario y construye unabase de datos del inventario que por lo menos tenga las tablas: Productos, Proveedores y Marca. Construye el diagramade Entidad Relacin c on su cardinalidad y realiza la estructura de la base de datos en Visual FoxPro.
Despu s de que hayas relacionado la estructura de tu base de datos, has la siguiente prueba para verificar si la base dedatos esta bien construida.
Agrega a la tabla de Productos 20 registros, a la de proveedores 3 registros y a marcas 12 registros, tomando en cuentaque deben de tener datos en comn c omo por ejemplo: MO25 Monitor de 14" ACER 1080.00 Procom S.A.
Para verificar la relaci n de los datos deber s realizar los siguientes pasos:Elige el men Ventana Sesin de datos. Te aparece la ventana de sesin de datos, luego elige el botn Abrir y selecciona una de las tablas. Has lo mismo con las otras tablas. Ya abiertas las tablas, selecciona la tabla de proveedores y has clic en el botn R elaciones, luego selecciona la tablaMarca y elige el campo con el cual armaras tu relaci n. Si te aparece el cuadro expresiones, selecciona el campo de la tabla de la cual armaras la relacin. Luego has clic otra vez en la tabla proveedores y da clic en el botn R elaciones. Repite los pasos anteriores solo que esta vez elige la tabla de producto, de modo que al finalizar te quede de la siguienteforma. Ahora selecciona el botn Examinar para cada tabla y navega en la tabla proveedores, los datos de las otras tablasaparecer n relacionados con ella, de lo contrario revisa tu relaci n. Prueba con la relacin Producto Marca Proveedores, Marca Productos Proveedores.3. Programaci n.
Conceptos.
Usualmente se agrupa el c digo fuente en archivos de programa. Un archivo de programa esta compuesto de variassentencias, que incluyen comandos, funciones y estructuras de control de flujo.
El compilador traduce el contenido de estos archivos de texto ASCII a c digo interpretado. En cuanto el compilador hatraducido el cdigo f uente crea un archivo con extensin .FXP que es el que va a utilizar a partir de ese momento. Cadavez que el programador introduce alg n cambio en el archivo .PRG el compilador compara la fecha de ambos archivosy crea una nueva versin comp ilada del programa.
Haciendo el c digo legible:
Espacios en blanco: Significan rea s vaca s dentro del cd igo de programa, tambin espacios, tabulaciones o lnea svacas. Sangrado: Sangrar es la mejor manera de optimizar el cdigo. Es una prctica comn sangrar dentro de comandos paresanidados, por ejemplo:DO EN DDO
IF ENDIF
SCAN..ENDSCAN
DOCASE...ENDCASE
WITHEN DWITH
Maysc ulas y mins culas: Muchos programadores utilizan may sculas y min sculas para distinguir entre los elementosdel programa; may sculas para los comandos y min sculas para las variables. Comentarios: Los comentarios pueden existir en una lnea precedidos por un asterisco y despus de una lnea de cdigo,si estn se parados de && consecutivos. Continuar lne as largas de cdigo: Puede continuar lnea s largas de c digo en la siguiente l nea insertando un ";" al finalde la l nea.Una de las tcnica s ms tiles en la programacin s on los encabezados de programa, por ejemplo:
* Nombre del programa : nombre
* Autor : H ctor Hernndez
* Propsi to : 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 d a
Para solamente crearlas:
PUBLIC a, b, c
PRIVATE x, y, z
LOCAL nombre, trabaja
DIMENSION nombres(3)
Declaraci n de Variables.
Las variables temporales se pueden declarar utilizando los comandos anteriores, nicamente, hay que tomar en cuenta laforma en que se van a declarar o escribir, como ejemplo: Nom_Empleado; NomEmpleado, si son variables de memoriase le puede anteponer una m x de la forma siguiente, mNom_Empleado; xNom_Empleado, tambin s e puedendeclarar variables haciendo saber el tipo de datos que maneja por ejemplo: cNom_Empleado, nSueldo_Empleado;dFecha_Ingreso, etc.
Operadores.
Los operadores + y so n, por supuesto, usados para aa dir y substraer nmero s, pero tambi n se pueden usar en camposde caracteres. El operador m s eslabona dos expresiones de caracteres, campos o variables de memoria, de forma queFred + Smith; producir : FredSmith. El operador menos quita espacio rezagado.
Operadores cclico s y ramificaciones.
Las operaciones cclica s y de ramificacin son los mecanismos para crear la l gica de un programa, ejemplo:
FOR I=1 TO 10
? I && Imprime los nmero s 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 c clicas en cualquier momento mediante el comando: EXIT.
La ramificacin en VF es controlada con la construccin I F.. ENDIF, por ejemplo:
IF I >10
? [El contador excedi 10]
ENDIF
Los contadores se utilizan a menudo para salir de operaciones ccli cas:
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 c clico, un operador condicional, o cualquier otro operador que abra ycierre una estructura se escriba el comando primero y luego se realice el proceso, esto para no perderse en laprogramacin .
Tipos de comandos
Vamos a dividir los comandos seg n su funcionalidad en los siguientes tipos:
Base de datos: Todos los que sirven para manipular bases de datos, tablas y campos. Entorno: Entorno del sistema operativo y de Visual Fox Pro. Acceso compartido a datos: Acceso multiusuario a tablas y base de datos. Entrada y salida: Los que permiten la interfaz entre la computadora y el usuario. Programaci n: Los que tienen relaci n con el entorno de desarrollo de aplicaciones.Funciones
Son procesos internos programadores que pueden ser llamados desde cualquier punta de Visual Fox lo que diferenciade los mandatos de las funciones es que estas devuelven un valor. Aceptan una serie de parmetro s, y se reconocen porel uso de par ntesis para encerrar los argumentos, por ejemplo DATE( ) y TIME ( ).
Las funciones se dividen de la siguiente forma:
Tipos de datos Funciones de manejo de cadenas de caracteres. Funciones de conversin de tipo s Funciones de fecha y hora Funciones de manejo de valores numrico s Funciones definidas por los usuarios (FDU)Practica 4
Realiza los siguientes programas utilizando programacin s imple (programas .PRG) y da soluci n a las siguientessituaciones.
Desplegar el valor a cobrar por llamadas telefnica s locales, si se cobra $0.09 cada llamada, haciendo hasta 100llamadas, $0.08 por 200, $0.07 por 300 y $0.06 por ms de trescientos, teniendo en cuenta tambin que por llamadasinternacionales la tarifa es fija de $1.93 si son diurnas y $1.75 si son nocturnas, cada una de estas tarifas esta medida enminutos. Calcular la utilidad que un trabajador recibe en el reparto de utilidades si s te se le asigna como porcentaje de un salariomensual que depende de su antigeda d en la empresa de acuerdo con esta tabla: Tiempo Utilidad
Menos de un a o 5%
de 1 hasta menos 2 a os 7%
2 ao s a menos de 5 ao s 10%
de 5 ao s a m s 15%
Determinar la cantidad de dinero que recibir un t rabajador 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 aldoble de una hora normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan al doble m s el 70% de lahora normal, las horas extras no exceden de 55. Realice un programa en el cual pida el nombre completo de una persona y este indique cuantas vocales y cuantasconsonantes tiene. Realice un programa o diferentes programas que permita un mantenimiento de una tabla de direcciones.Programaci n orientada a objetos
La POO intenta ser un mejor sistema para el desarrollo de aplicaciones. Como toda tcnica de programacin, si se hacemal puede ser desastrosa.
Una de las mejoras que se tiene con la POO es el permitir afrontar programas m s complejos y de mayor tamao c onmenor esfuerzo. El hecho de trabajar con peque os elementos bien definidos, como son los objetos, nos permite aislarcada componente de la aplicaci n, 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 ejemplopodemos observar los botones de un entorno grfico, donde definimo s que la clase bot n es la generalizacin de la spropiedades y comportamientos de todos los botones de los entorno gr ficos.
Definir una clase: las clases son la descripci n de los elementos comunes de los objetos que generalizan. As las clasesse definen y pueden ser usadas para crear innumerables objetos de este tipo. Para definir una clase utilizaremos unasencilla sintaxis de VFP.
DEFINE CLASS NombreClase AS Clasebase
Para poder utilizar esta definicin debe mos incluirla en un fichero .PRG y cargado con SET PROCEDURE TO o bienincluirla 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 declaranen la definicin de la clase y permanecen en todo momento asociados a los objetos CREADOS bajo esa clase.
M todos: el otro elemento caracterstico de una clase son los mtod os. Los mt odos son acciones que pueden realizar losobjetos, es decir, son funciones o procedimientos asociados a este tipo objeto.
Mensajes: Cuando llamamos a un mtodo de un objeto s e dice que estamos enviando un mensaje al objeto para querealice una determinada acci n.
Operador this: Cuado vamos a utilizar una propiedad o un mtodo de la cla se, debemos anteponer al operador punto eloperador THIS, para indicar que se trataran las propiedades del objeto que recibe el mensaje, es decir, que ha sidoinvocado, y no para otro.
Las propiedades mantienen valores diferentes para cada uno de los objetos, pero los mtod os comparten su cdigo entretodos los objetos de una clase. Un mt odo var a 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 determinadaspropiedades o m todos. Con ello conseguimos que la utilizacin de la clase se haga de forma ordenada.
Las propiedades o m todos protegidos s lo son utilizables desde los mtodo s pertenecientes a esta clase y no puedenusarse directamente por otros programas.
Al igual que podemos proteger propiedades, podemos proteger mtodo s. De esta forma podemos definir mtodo s ques lo sean usados por otros mtodos de la clase y no puedan ser invocados a partir de los objetos de esta clase. Para ellobasta colocar la cl usula PROTECTED antes de PROCEDURE.
Polimorfismo: Cuando realizamos programacin e structurada debemos tener cuidado de no llamar con el mismonombre a dos variables o a dos procedimientos, sin embargo en la POO podemos llamar a un mtodo o a una propiedadde una clase de igual forma que un m todo 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, u napulsacin de tecla, etc.
Conclusiones
La POO es un conjunto de conceptos interrelacionados que difcil mente se entiende unos sin los otros. La POO est aquy no deber amos ignorarla por ms tiempo. Posiblemente no es necesario este tipo de programaci n, pero es realmentemuy recomendable, es seguro que no soluciona todos los problemas, pero es mucho m s sencillo el desarrollo,tendremos que esforzarnos un poco al principio, pero nuestro esfuerzo se ver so bradamente recompensado. Endefinitiva la PROGRAMACI N ORIENTADA A OBJETO es una mejor forma de programar.
Ejemplo:
DEFINE EL OBJETO formuformu = CREATEOBJECT("Ejemplo")
DEFINE EL OBJETO botonformu.ADDOBJECT("boton","boton")
formu.SHOW
READ EVENT
CLASE DEL OBJETO formuDEFINE CLASS ejemplo AS FORM
MOVABLE=.F.
CLOSABLE=.F.
CAPTION="EJEMPLO DE POO"
AUTOCENTER=.T.
ENDDEFINE
CLASE DEL OBJETO botonDEFINE 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 enejecucin es un objeto.
Formulario: Se utilizan para visualizar e introducir cualquier tipo de informacin y son el medio de comunicacin entreel usuario y los datos.
Propiedades: Un atributo de un control, campo u objeto de base de datos que se establece para definir una de lascaracter sticas del objeto o un aspecto de su comportamiento. Por ejemplo, la propiedad Visible afecta a la visibilidaden tiempo de ejecuci n de un control. Puede cambiar los valores de las propiedades de objeto mediante la ventanaPropiedades.
Evento: Una acci n, reconocida por un objeto, para la cual puede escribir cd igo de respuesta. Los eventos pueden estargenerados por una acci n del usuario, como hacer clic con el mouse o presionar una tecla, por cdigo de programa o porel sistema, como ocurre con los cronmetro s.
M todo: Una accin q ue un objeto es capaz de realizar. Por ejemplo, los cuadros de lista tienen m todos 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 deherramientas pueden flotar en su propia ventana o bien puede acopladas en los extremos superior, inferior o laterales dela ventana principal de Visual FoxPro. Puede personalizar las barras de herramientas suministradas con Visual FoxPro,as como crear barras de herramientas propias mediante la clase de base ToolBar incluida con Visual FoxPro.
Objetos y propiedades b sicas
Form
El formulario es un objeto de tipo contenedor.
Los conjuntos de formularios acogen a uno o m s formularios, o incluso barra de herramientas. Ala hora de ejecutar elconjunto de formularios, se activan todos los formularios definidos en el mismo.
Propiedad Uso Caption Ttulo de la ventana o forma Autocenter Centra el formulario ShowTips Para que se muestren los Tooltips Closable Visualiza el bot n cerrar de la ventana MaxButton Visualiza el bot n maximizar MinButton Visualiza el bot n minimizar ControlBox Visualiza el men de control de la ventana Eventos o M todos Uso Init Se dispara a la hora que se inicializan todos los objetos del formulario Load Se dispara antes que se inicialicen los objetos del formularios (antes que el init) Destroy Se dispara al cerrar el formulario Unload Se dispara despu s de Destroy
Vieta s y cuadros de texto
Las vieta s o Labels se utilizan para escribir etiquetas a los objetos.
Propiedad Uso Caption Ttulo de la ventana o forma Alignment Especifica la alinaci n del texto Name Nombre del objeto BackColor Color de fondo ForeColor Color de la letra Evento o Mt odo Uso Click Se dispara al dar clic en el objeto MouseDown El evento MouseDown se desencadena al presionar un botn del mouse MouseUp Ocurren cuando el usuario presiona (MouseDown) o suelta (MouseUp) un bot n del mouse
Los cuadros de texto sirven para capturar los datos de los campos.
Propiedades Uso ControlSource Es la variable o nombre del campo al cual se hace referencia Value Contenido de la variable o campo referenciado al ControlSource Visible Si el control es visible al usuario Enabled Si el control esta habilitado o no Evento o Mt odo Uso Click Se dispara al dar clic en el objeto GotFocus Cuando el control toma el enfoque LostFocus Cuando el control pierde el enfoque
Botones de comando
Un control que est asociado a un comando. Cuando hace clic en el botn de comando en tiempo de ejecucin, elcomando asociado al bot n se ejecuta.
Propiedades Uso Captio Etiqueta del comando Visible Si el control es visible al usuario Enabled Si el control esta habilitado Evento o Mt odo Uso Click Se dispara al dar clic en el objeto SetlFocus El cursor se va al objeto LostFocus Cuando el control pierde el enfoque Refresh Refresca el objeto Init Se dispara a la hora que se se inicializa el objeto
Botones de opcin y casillas de verificacin
Un control OptionButton muestra una opcin que s e puede activar o desactivar.
Propiedades Uso ControlSource Es la variable o nombre del campo al cual hace referencia Value Contenido de la variable o campo referenciado en ControlSource Visible Si el control es visible al usuario Enabled Si el control esta habilitado o no Evento o Mt odo Uso InteractiveChange
Se dispara cuando modificamos el campo Init Se dispara a la hora en que se inicializa el objeto Click Se dispara al dar click en el objeto Valid Se dispara despu s de presionar Enter o Tab, se utiliza para validar Refresh Refresca el objeto
Un control CheckBox muestra una X cuando est activado; la X desaparece cuando el control CheckBox se desactiva.Utilice este control para ofrecer al usuario una opcin de tipo Ve rdadero o Falso o S o No. Puede usar controlesCheckBox en grupos para mostrar mltiple s opciones entre las cuales el usuario puede seleccionar una o ms. Tambi npuede establecer el valor de CheckBox mediante programacin con la propiedad Value.
Listas y cuadros combinados
Un control ListBox muestra una lista de elementos entre los cuales el usuario puede seleccionar uno o m s. Si el nmerode elementos supera el n mero que puede mostrarse, se agregar a utomticame nte una barra de desplazamiento al controlListBox.
Si no se selecciona ningn elemento, el valor de la propiedad ListIndex ser 1. El primer elemento de la lista esListIndex 0 y el valor de la propiedad ListCount siempre es uno m s que el mayor valor de ListIndex.
Los cuadros de lista y los cuadros combinados presentan al usuario una lista de opciones. De forma predeterminada, lasopciones se muestran verticalmente en una nica columna, aunque tambin puede establecer mltiples columnas. Si elnmero de elementos supera a los que se pueden mostrar en el cuadro combinado o el cuadro de lista, aparecenautom ticamente barras de desplazamiento en el control. El usuario puede entonces desplazarse por la lista hacia arribao hacia abajo o de izquierda a derecha.
Un cuadro combinado ana l as caracterstica s de un cuadro de texto y un cuadro de lista. Este control permite al usuarioseleccionar opciones si escribe texto en el cuadro combinado o selecciona un elemento de la lista.
A diferencia de otros controles que contienen un n ico valor, por ejemplo la propiedad Caption de una etiqueta o lapropiedad Text de un cuadro de texto, los cuadros de lista y los cuadros combinados contienen m ltiples valores o unacoleccin de valores. Tienen mt odos integrados para agregar, quitar y recuperar valores de sus colecciones en tiempode ejecucin . Para agregar varios elementos a un cuadro de lista llamado Lista1, el cdigo s era como el siguiente:
Lista1.AddItem "Par s"
Lista1.AddItem "Nueva York"
Lista1.AddItem "San Francisco"
Los cuadros de lista y los cuadros combinados son una manera efectiva de presentar al usuario gran cantidad deopciones en un espacio limitado.
Propiedades Uso ControlSource Variable a que hace referencia (campo donde se almacena el valor de la lista) RowSource Tabla o query de los elementos de la lista
rowSourceType Tipo de la fuente (si es tabla o query) Visible Si el control es visible al usuario Enabled Si el control esta habilitado o no BoundColumn Valor que retorna la lisa (n mero de la columna de Rowsource) BoundTo Especifica si el valor de la lista esta determinado por los valores o por la propiedad ListIndex Evento o Mt odo Uso Click Se dispara al dar clic en el objeto SetlFocus El cursor se va al objeto LostFocus Cuando el control pierde el enfoque Refresh Refresca el objeto Init Se dispara a la hora que se se inicializa el objeto
Cuadr cula
Un control que crea una cuadrcula y que le permite presentar los datos en un formato tabular. Los controles de tipocuadrc ula contienen encabezados de columna, columnas y controles de columna.
Propiedades Uso RecordSource Nombre de la tabla Visible Si el control es viisible al usuario Enabled Si el control esta habilitado o no ColumnCount Nme ro de columnas del Grid DeleteMark Permite registro para borrar (Aparece en la parte izquierda del Grid Evento o Mt odo Uso
Click Se dispara al dar clic en el objeto SetlFocus El cursor se va al objeto LostFocus Cuando el control pierde el enfoque Refresh Refresca el objeto Init Se dispara a la hora que se se inicializa el objeto
Im genes, controles OLE, timer, Marcos de pgina
Un control que le permite incluir imgene s en un formulario.
Hipervinculo con cualquier tipo de aplicacin.
Un control Timer puede ejecutar c digo a intervalos peridico s produciendo un evento Timer.
Un marco de p gina es un objeto contenedor que contiene pg inas. A su vez, las p ginas contienen controles. Laspropiedades pueden establecerse a nivel de marco de pgina, de pgina o de control.
Uso de Clases
Los dise adores ActiveX pueden proporcionar interfaces visuales para tareas que, de otro modo, requeriran una grancantidad de cd igo. Por ejemplo, el diseador U serConnection incluido en la Edicin Emp resarial de Visual Basicproporciona herramientas visuales para definir consultas de bases de datos complejas. En tiempo de ejecucin, dicha sconsultas se pueden invocar con muy poco cdigo.
Similitudes entre los diseadores ActiveX y los diseadore s integrados
Los dise adores ActiveX son como los diseadore s de formularios en los siguientes aspectos:
Los dise adores ActiveX producen clases a partir de las cuales puede crear objetos. Estas clases aparecen en la ventanaProyecto, igual que las clases de formulario. Las clases creadas con un diseado r ActiveX tienen sus propios mdulo s de c digo, en los que puede escribir c digo paralos procedimientos de evento proporcionados por el diseador. Puede personalizar una clase si agrega propiedades, m todos y eventos a los proporcionados por el diseado r ActiveX. Los objetos creados a partir de las clases dise adas pueden tener caracter sticas diferentes en tiempo de diseo y entiempo de ejecuci n. La ventana de dise o del dise ador ActiveX est totalmente i ntegrada en el entorno de desarrollo. Puede modificar sutamao y configurarla de la misma forma que las ventanas de diseo incorporadas. Puede agregar al proyecto tantas instancias de un diseador Ac tiveX como considere necesario, de la misma forma quepuede agregar tantos disea dores de formularios como quiera. Pr ctica 5
Disea un formulario que represente y baucher de notas y que al escribir las notas calcule los promedios finales. (Puedesmejorarlo si los datos los vas almacenando en una tabla). Realiza un programa que calcule el pago de una planilla donde el pago m nimo es de $240.00, construye la tabla y hasque los datos se almacenen en ella, toma en consideracin, el pago por horas, horas extras, los descuentos necesarios ylas comisiones tomando en consideracin la s iguiente tabla: Si las ventas < $1700.00 no hay comisin
Si las ventas>=$1700.00 y <$2500.00 la comisin es del 3%
Si las ventas>=$2500.00 y <$3200.00 la comisin es del 5%
Si las ventas>=$3200.00 y <$3700.00 la comisin es del 7%
Si las ventas>=$3700.00 la comisin e s del 10%
Utilizando tu base de datos de Inventario construye el mantenimiento respectivo sin utilizar el WIZARD.Combinacin de formularios y datos
La idea fundamental del trabajo con formularios es la combinacin que estos hacen con las bases de datos, para ello, unformulario se puede combinar desde una tabla, hasta, varias de ellas.
Para lograr esta combinacin los formularios hacen uso de los objetos, los cuales se asocian a los datos, el objeto guardala referencia a las tablas, y cuando el formulario se ejecuta, se abren espec ficamente todas las tablas asociadas alentorno de datos.
El entorno de datos es donde se definen las tablas relacionadas y sus ordenes establecidos.
Para lograr un formulario final se hace necesario de conocer los siguientes elementos:
Pr ctica 6
Crea una carpeta llamada Sistema de clientes, dentro de ella crea otras subcarpetas y n mbralas as: dato s, formularios,grf icos e informes.
Utilizando el m todo de carpetas, te aseguras que tu proyecto se vea ordenado y clasificado.
Ahora cada objeto que crees de este ejemplo asegurat que lo guardas en el lugar indicado de lo contrario no funcionardebidamente.
Crea el proyecto
Selecciona Archivo / Nuevo / Proyecto
Gu rdalo en la carpeta Sistema de clientes con el nombre de Clientes.
Crea la base de datos
De tu proyecto elige la ficha datos / Nuevo
Gu rdalo en la carpeta Sistema de clientes / datos con el nombre de Clientes
Agrega tablas
Ahora agregaras las tablas correspondientes a la base de datos, selecciona Agregar nueva tabla y adiciona cada tablaque a continuaci n te damos, ten cuidado de grabarlas con el mismo nombre y con los nombres de los campos iguales.
Tabla: Clientes ndice primario: cod_cliente
Tabla: Distribuidor ndice primario: c od_distri
Tabla: Departamento nd ice pprimario: cod_dpto
Copia los grfi cos necesarios en la carpeta Gr ficos.
Relaciona las tablas.
Cuando a cabes de crear las tablas relaciona las tablas de modo que te queden de la siguiente forma.
Diseo de formulario.
Ahora, haremos el diseo del formulario, puedes hacerlo de dos formas, la primera es abriendo el entorno de datos yarrastrando los campos hasta el formulario, y la segunda colocando cada uno de los objetos, luego tu cambias lapropiedad ControlSource colocando el nombre del campo al que hace referencia, el diseo del formulario puede ser elsiguiente, pero tu puedes hacer el tuyo.
Asegurat q ue las tablas en el entorno de datos se encuentren bien relacionadas, es decir: entre la relacin Clientes Departamento la propiedad del entorno de datos ChildAlias = Departamento y ParentAlias = Clientes y entre la relacinDepartamento Distribuidor las propiedades serian ChildAlias = Distribuidor y ParentAlias = Departamento. Si tienesalguna duda pregunta a tu instructor.
Cambia propiedades necesarias.
Cambia las propiedades que te son tile s, por ejemplo FontName, FontSize, BackColor y para los cuadros de texto ycuadros de edici n cambia la propiedad Enabled, esta servir para no poder escribir mientras no se le de la orden deagregar o modificar registros.
Crearemos una barra de herramientas.
Haremos la barra de cursuras, para eso tu instructor te copiara los grf icos necesarios en tu disco.
Primero en la parte de abajo del formulario, coloca un commandgroup y cambia la propiedad ButtonCount con el valorde 4, para que aparezcan cuatro botones de comando, has clic derecho sobre ella y selecciona del men contextual queaparece la opcin modificar, el cuadro se sobrar d e color verde, esto te indica que puedes modificar los botones queestn e s u interior. Cambia las propiedad name de cada uno de ellos por: primero, anterior, siguiente y ltimo re spectivamente y lapropiedad Caption d jala vaca (o sea que borra las leyendas). Ahora cambia la propiedad Picture y busca el grfico que pertenece a cada botn, de modo que te quede de la siguienteforma:
Programa los botones de la barra.
Bot n primero:
GO TOP
THISFORM.REFRESH
Bot n anterior:
IF .NOT. BOF()
SKIP 1
ELSE
GO BOTTOM
ENDIF
THISFORM.REFRESH
Bot n Siguiente:
IF .NOT. EOF()
SKIP 1
ELSE
GO TOP
ENDIF
THISFORM.REFRESH
Bot n ltimo:
GO BOTTOM
THISFORM.REFRESH
Agrega un bot n cerrar
Ahora inserta un bot n para cerrar la ventana que estas programando, puedes hacerlo con texto o con grf icos, programalo siguiente:
THISFORM.RELEASE
Agrega un bot n para buscar registros
Vamos a agregar un bot n para que busque registros por medio del campo n dice cd igo del cliente, para ello inserta uncontenedor y dentro del un botn de comandos y un cuadro de texto, modifica las propiedades necesarias de modo quete quede como el siguiente ejemplo:
buscar= 0
buscar=VAL(THISFORM.CONTAINER1.txtbuscar.VALUE)
SEEK buscar ORDER TAG cod_client;
OF C :\Hector Hernandez\Sistema de Clientes\Datos\clientes.cdx
IF !FOUND()
ctexto = 'Registro no encontrado. D esea buscar de nuevo?'
ntipodedialogo = 4 + 32 + 256
ctitulo = 'Mensaje'
* 4 = Botones S y No.
* 32 = Icono del signo de interrogaci n.
* 256 = El segundo bot n es el predeterminado.
nrespuesta = MESSAGEBOX(ctexto, ntipodedialogo, ctitulo)
DO CASE
CASE nrespuesta = 6
THISFORM.CONTAINER1.txtbuscar.SETFOCUS()
CASE nrespuesta = 7
THISFORM.cmdsalir.SETFOCUS()
ENDCASE
ELSE
THISFORM.REFRESH
ENDIF
Agrega la barra de mantenimiento.
Has un diseo s imilar al siguiente dentro de un grupo de botones:
Luego, inserta dos botones m s arriba de cmdagregar y cmdeditar, de modo que te quede de la siguiente forma:
Ha estos botones programa lo siguiente:
Cmdagregar
THISFORM.txtcod_cliente.ENABLED=.t.
THISFORM.txtnom_cliente.ENABLED=.t.
THISFORM.txtape_cliente.ENABLED=.t.
THISFORM.txtnom_negocio.ENABLED=.t.
THISFORM.edtdir_cliente.ENABLED=.t.
THISFORM.txtcod_dpto.ENABLED=.t.
THISFORM.txttele_cliente.ENABLED=.t.
THISFORM.txtfax_cliente.ENABLED=.t.
THISFORM.txtno_cuenta.ENABLED=.t.
THISFORM.commandgroup1.ENABLED=.f.
THISFORM.container1.ENABLED=.F.
THISFORM.commandgroup2.ENABLED=.F.
THISFORM.cmdsalir.ENABLED=.F.
THISFORM.cmdguardar.VISIBLE=.T.
GO BOTTOM
THISFORM.REFRESH
contador=THISFORM.txtcod_cliente.VALUE
APPEND BLANK
THISFORM.txtcod_cliente.value=contador+1
THISFORM.txtnom_cliente.SETFOCUS
THISFORM.REFRESH
Cmdguardar
ctexto = ' Esta seguro de grabar el registro?'
ntipodedialogo = 4 + 32 + 256
ctitulo = 'Guardar'
* 4 = Botones S y No.
* 32 = Icono del signo de interrogaci n.
* 256 = El segundo bot n es el predeterminado.
nrespuesta = MESSAGEBOX(ctexto, ntipodedialogo, ctitulo)
DO CASE
CASE nrespuesta = 6
THISFORM.REFRESH
CASE nrespuesta = 7
DELETE
PACK
ENDCASE
THISFORM.txtcod_cliente.ENABLED=.f.
THISFORM.txtnom_cliente.ENABLED=.f.
THISFORM.txtape_cliente.ENABLED=.f.
THISFORM.txtnom_negocio.ENABLED=.f.
THISFORM.edtdir_cliente.ENABLED=.f.
THISFORM.txtcod_dpto.ENABLED=.f.
THISFORM.txttele_cliente.ENABLED=.f.
THISFORM.txtfax_cliente.ENABLED=.f.
THISFORM.txtno_cuenta.ENABLED=.f.
THISFORM.commandgroup1.ENABLED=.t.
THISFORM.container1.ENABLED=.t.
THISFORM.commandgroup2.ENABLED=.t.
THISFORM.cmdsalir.ENABLED=.t.
THISFORM.cmdguardar.VISIBLE=.f.
THISFORM.REFRESH
Cmdborrar
mensaje=MESSAGEBOX(" Seguro de eliminar el registro?",; 4+32+256,"Eliminar registros")
DO CASE
CASE mensaje = 6
DELETE
PACK
GO TOP
THISFORM.REFRESH
CASE mensaje = 7
THISFORM.REFRESH
ENDCASE
Cmdeditar
THISFORM.txtnom_cliente.ENABLED=.t.
THISFORM.txtape_cliente.ENABLED=.t.
THISFORM.txtnom_negocio.ENABLED=.t.
THISFORM.edtdir_cliente.ENABLED=.t.
THISFORM.txtcod_dpto.ENABLED=.t.
THISFORM.txttele_cliente.ENABLED=.t.
THISFORM.txtfax_cliente.ENABLED=.t.
THISFORM.txtno_cuenta.ENABLED=.t.
THISFORM.commandgroup1.ENABLED=.f.
THISFORM.container1.ENABLED=.F.
THISFORM.commandgroup2.ENABLED=.F.
THISFORM.cmdsalir.ENABLED=.F.
THISFORM.cmdguardare.VISIBLE=.T.
THISFORM.txtnom_cliente.SETFOCUS
THISFORM.REFRESH
Cmdgrabare
THISFORM.txtcod_cliente.ENABLED=.f.
THISFORM.txtnom_cliente.ENABLED=.f.
THISFORM.txtape_cliente.ENABLED=.f.
THISFORM.txtnom_negocio.ENABLED=.f.
THISFORM.edtdir_cliente.ENABLED=.f.
THISFORM.txtcod_dpto.ENABLED=.f.
THISFORM.txttele_cliente.ENABLED=.f.
THISFORM.txtfax_cliente.ENABLED=.f.
THISFORM.txtno_cuenta.ENABLED=.f.
THISFORM.commandgroup1.ENABLED=.t.
THISFORM.container1.ENABLED=.t.
THISFORM.commandgroup2.ENABLED=.t.
THISFORM.cmdsalir.ENABLED=.t.
THISFORM.cmdguardare.VISIBLE=.f.
THISFORM.REFRESH
Ahora cambiaremos algunas propiedades indispensables, al formulario cambia ShowWindor=2 como formulario denivel superior, ShowTips=.t., y ahora cambia algunas propiedades ToolTipsText para que aparezcan algunasindicaciones al colocar el puntero del rat n arriba del control.
Agregaremos otro formulario.
En el generador de proyectos disearemo s otro formulario llamado departamento:
Este formulario ser pequeo , trata que en la posicin que lo disees sea donde en el formulario clientes vaya eldepartamento del cliente, agrega un control Grid (Cuadrcula), ha s clic derecho sobre ella y selecciona la opci nGenerador.
Te aparecer la siguiente pantalla:
Selecciona la tabla Departamento, selecciona los campos, luego pasa a la ficha estilo y escoge el estilo que quieras,selecciona la ficha distribucin , escribe los ttulo s que all te piden y por l timo la ficha relacin, d onde escribirsninguna, por l timo da clic ha aceptar y autom ticamente se te generar un gr id con sus especificaciones.
Luego a ese formulario cambia la propiedad ShowWindor=1 en formulario de nivel superior y grbalo.
Modifica el cuadro de edici n.
Entra al formulario clientes, selecciona el formulario la propiedad INIT y copia:
PUBLIC CODEPAR
CODEPAR=0
contador=0
Luego al cuadro de edicin en l a propiedad LOSTFOCUS escribe:
DO FORM 'C:\Hector Hernandez\Sistema de Clientes\formularios\departamento'
Luego en la propiedad GOTFOCUS del objeto txtcod_dpto escribe lo siguiente:
THIS.VALUE=CODEPAR
THISFORM.REFRESH
Ahora puedes probar tu programa.
Usando el asistente de formularios.
Con el asistente, crea el mantenimiento de distribuidores.
5. Informes
Utilice el Diseador de informe s para crear y modificar informes.
Para crear r pidamente un dise o sencillo de informe, elija Informe rpido del men Informe. Informe rpido le solicita laentrada de los campos y el diseo que desea para su informe.
Opciones de la ventana
Bandas
De forma predeterminada, el Diseador de informes muestra tres bandas: Encabezado de pg ina, Detalle y Pie de pgina.En la parte inferior de cada banda hay una barra separadora. El nombre de la banda aparece en la barra gris junto a unaflecha azul, que indica que la banda est encima, no debajo, de la barra gris.
Puede agregar las siguientes bandas a su informe.
Banda Se imprime Contenido tpico Encabezado de columna Una vez por columna Ttulo de columna Pie de columna Una vez por columna Resumen, totales Encabezado de grupo Una vez por grupo Precede los datos siguientes Pie de grupo Una vez por grupo Valores calculados para grupos de datos Ttulo Una vez por informe TtuloFecha o n mero de p gina
Logotipo de la compa aCuadro alrededor del t tulo Resumen Una vez por informe Totales Texto como Suma total
Regla
El Disea dor de informes tiene una regla vertical y otra horizontal que puede utilizar para colocar de forma m s precisalos objetos en las bandas. Utilice las reglas junto con el comando Ver del men Mos trar posicin para ayudarle en lacolocaci n de los objetos.
La escala de la regla viene determinada por las configuraciones de medidas de su sistema. Puede cambiar de la escalapredeterminada del sistema (pulgadas o centmetro s) a pxele s desde dentro de Visual FoxPro. Si desea cambiar al valorpredeterminado del sistema, cambie la configuraci n de medidas de su sistema operativo.
Para cambiar la escala de la regla
Cambie esta unidad a p xeles de la forma siguiente:
En el men Formato, elija Configurar cuadr cula. Se muestra el cuadro de dilogo C onfigurar cuadrcula. En el cuadro Escala de la regla, seleccione P xeles y elija Aceptar. La escala de la regla se configura a p xeles y el indicador de posicin de la barra de estado (si est activado Mostrarposici n en el men Ver) tambi n muestra las posiciones en p xeles.
Trabajo enviado por:
Rotce hHernandez