Anda di halaman 1dari 81

Curso de Visual FoxPro

Cmo funciona Windows:


Mensajes: Todo lo que sucede dentro de Windows es el resultado del envo de un mensaje. Cuando se hace clic en una tecla o botn, cuando cambia el tamao a una ventana, cuando un carcter se digita dentro de una caja de edicin, cuando se mueve el puntero del mouse, etc., Windows enva un mensaje informando de dicha situacin. El volumen de mensajes generados en cada segundo es tremendo. Una queja comn entre los programadores de C++ que comienzan a trabajar en lenguajes del tipo del Fox, es que pierden la habilidad de interceptar cientos de mensajes que Windows enva. El Fox 2.6 para Windows est basado en un sistema de ventanas creado para DOS, que no se basa en mensajes. Adems de crear la ventana grficamente, el objetivo era generar cdigo fuente de Fox rpidamente (SPR), adems de generar la entidad ventana utiliz able (SCX). Fox tuvo que ser mejorado para permitirle a los desarrolladores tener este tipo de fundamento, adems de permitirle interceptar esta clase de mensajes, llegndose as a la versin visual, con el agregado del concepto Formulario (En ingls, Form). Ventana: La del explorador, un botn es una ventana, un documento de Word, un icono, una caja de textos, botones de opcin, una barra de men, etc. todas son ventanas.

Formularios
Visual Fox Pro tiene un nombre especial para una pantalla: formulario o Form. Un formulario no es nada mas que una ventana comn de Windows, pero a un nivel mayor de abstraccin. Se podra pensar un formulario, por ejemplo, como un conjunto auto-contenido de objetos sin tener que preocuparse por una gran cantidad de detalles por cuales se preocupara un programador de C. Auto contenidos quiere significar que el formulario tiene propiedades que pueden ser alteradas para controlar la apariencia y comportamiento del formulario, y eventos que se disparan cuando ciertos mensajes se envan a los mismos. Una pantalla de entrada o ventana construida usando el constructor de pantallas de Fox 2.6 (Screen Builder) no es un objeto, aunque le d la ilusin de que es as. Cuando se examina el cdigo generado por Fox Pro 2.6 se puede ver la sentencia DEFINE WINDOW, las sentencias GET / SAY, y finalmente la sentencia READ que causa que Fox entre en estado de espera para permitirle al usuario ingresar datos. Cuando Ud. disea un formulario en Visual Fox, lo hace casi igual que en Visual Basic y, a diferencia de lo que ocurra en Fox 2.6 para Windows, el formulario es un objeto, porque tiene propiedades que manipulan la apariencia del formulario, o cambian la forma en que se comporta.

Se puede fijar los valores (numricos o alfabticos) de dichas propiedad tanto a tiempo de diseo usando la ventana de propiedades, como durante la ejecucin de un programa (tiempo de ejecucin o en ingls, runtime). A cada formulario se le asigna un nico nombre (propiedad Name), y una vez que tiene un nombre se lo puede referenciar tanto dentro como fuera del mismo formulario. Por ejemplo, suponga que tiene un formulario al que llama frmCliente y desea cambiar el ttulo de dicho formulario (propiedad Caption), se puede referencia dicha propiedad utilizando la sintaxis del punto como sigue:
frmCliente.Caption = ALTAS

y usando la misma notacin puede colocar el ttulo de una ventana en la variable lctitulo, usando la sentencia: lctitulo = frmCliente.Caption La principal ventaja de utilizar propiedades de objetos contra los distintos comandos usados hasta ahora, es la consistencia: ms que recordar muchos diferentes comandos (probablemente cada uno con diferente sintaxis), solamente se tiene que acordar el nombre de la propiedad, y la sintaxis es la misma.

Eventos
Todo lo que ocurra en Windows es el resultado de enviar un mensaje. Visual Fox previene que Ud. se las tenga que ver con cientos de diferentes mensajes usando la nocin de evento. Un evento es una accin reconocida por un objeto, tal como el clic de un ratn, o la presin de una tecla en el teclado. Cuando Ud. hace clic con el ratn en un formulario, Windows enva un mensaje al formulario dicindole que alguien ha hecho clic sobre l. Entonces Visual Fox dispara el evento clic del formulario en respuesta a dicho mensaje. Ud. solamente debe escribir la parte de cdigo que se ejecutar cuando dicho evento ocurra. Por ejemplo, puede poner cdigo que cambie el color de fondo del formulario (Propiedad BackColor) en respuesta a dicho evento. En la siguiente tabla estn algunos de los eventos ms comunes del objeto formulario: Evento
Load DblClick MouseMove Resize GotFocus Lost Focus

Se dispara cuando...
Se carga el formulario por primera vez. El usuario hace doble clic en el formulario. El ratn se mueve sobre el formulario. Se cambia de tamao del formulario Formulario en foco, desde otro formulario se hace clic en ste. Se hace clic fuera del formulario

Controles
Son aquellos objetos grficos a travs de los cuales los usuarios pueden recibir y responder a los distintos tipos de mensajes Windows, de forma similar a las que lo haca el formulario. Otra definicin de control: son una instancia de una clase, combinada con datos y procedimientos. Ejemplo: botn (push button), cajas de edicin (edit boxes), cajas de texto (text boxes), lneas, texto o etiquetas (labels), etc. Los controles pueden ser vistos como objetos autocontenidos, con propiedades que le permiten manipular su propia apariencia, comportamiento, y responder a los eventos mediante cdigo escrito (programacin). Al igual que pasaba con los formularios, los controles tiene un nico nombre (Propiedad Name), y se puede cambiar cualquier propiedad usando la notacin del punto. Por ejemplo, para hacer que el texto (propiedad Text) que est en una caja de texto (text Box) que se llama txtCaja desde y hacia la variable lcVar, se usar:
txtCaja.Text = lcVar lcVar = txtCaja.Text

Algunas propiedades son nicas para un determinado control (no existen en otros controles), pero existen otras que son comunes a todos los controles, por ejemplo: Propiedad
Enabled FontName Left Visible

Significado
El control est habilitado Nombre tipografa usada (caracteres) posicin del borde izquierdo del control referida a su ventana contenedora True (verdadero) si est visible.

Los controles pueden responder a eventos disparados tanto por accin del usuario como directamente desde el sistema. Por ejemplo, si el usuario hace clic sobre un control botn de apretar (push button), Windows le informa envindole un mensaje a dicho control que ha sido apretado (clicked). El control o botn entonces dispara el evento Clic, y ejecuta el cdigo colocado o asignado a dicho evento. Al igual que las propiedades, algunos eventos son inherentes a dicho control y no existen en otros, pero hay eventos comunes a todos los controles, como seran los siguientes caso tpico: Evento
Click MouseMove GotFocus Lost Focus

Se dispara cuando...
el usuario hace click sobre el control El ratn se mueve sobre el control. Control en foco, desde otro control se hace clic en ste. Se hace clic en otro control

Controles Custom
Uno de los principales factores que contribuyeron al xito del Visual Basic fue la explosin en el mercado de controles suministrados por fabricantes externos o terceras partes. Estos controles aparecen en la paleta de controles del Visual Fox Pro junto con los controles normales (built-in) y se manipulan de forma similar (fijando valores a sus propiedades y codificando rutinas que dan respuesta a ciertos eventos). Estos controles cubren un amplio espectro desde botones y cajas de texto mejoradas, hasta complejas hojas de clculo (grid) o grficos comerciales (Pinacle Graph). Dichos controles estaban escritos generalmente en C y empaquetados en una clase especial de libreras dinmicas (como las DLL) que verdaderamente extendieron la eficacia del lenguaje, por lo que fueron llamadas. VBX (Visual Basic eXtensions), luego OCX y actualmente se los llama ACTIVE X, ahora tambin soportados todos ellos por Visual Fox Pro, que ahora en la versin 5, puede crear bibliotecas de enlace dinmico o DLL.

6.- Tipos de Datos


Los datos con los que se trabaja probablemente incluyan perodos de tiempo, dinero y elementos contables, as como fechas, nombres, descripciones, etc. Cada dato corresponde a un determinado tipo, es decir, pertenece a una categora de datos que se manipula de maneras similares. Se podra trabajar directamente con estos datos sin almacenarlos, si bien perdera la mayor parte de la flexibilidad y potencia que ofrece Visual FoxPro. Visual FoxPro aporta numerosos contenedores de almacenamiento con el fin de ampliar su capacidad para manipular fcilmente los datos.

Tipos de datos
Los tipos de datos determinan la manera en que se almacenan los datos y la forma en que se pueden utilizar tales datos. Puede multiplicar dos nmeros, pero no puede multiplicar caracteres. Puede imprimir caracteres en maysculas, pero no es posible imprimir nmeros en maysculas. En la siguiente tabla se enumeran algunos de los principales tipos de datos de Visual FoxPro.

Tabla de Tipos de datos


Tipo Byte

Numrico Moneda (Currency) Character Logical

8 8 1 256 1

RANGO - Ejemplo .9999999999E+19 a

.9999999999E+20 922337203685477.5808 a 922337203685477.5807 Prueba 123 01/01/95 .T.(verdadero)

Fecha - Fecha y hora (Date DateTime)

.F. (falso) {01/01/95} {01/01/95 12:30:00 pm} 01/01/0100 hasta 31/12/9999

Tipos de campos
Tipo Byte Ejemplos

Numrico Punto Flotante Memo Doble Precisin Character Logical Integer (Entero) Carcter (Binario) Memo (Binario) General (Obj.OLE) Fecha - Fecha y hora (Date DateTime)

1 20 .9999999999E+19 a

.9999999999E+20
1 20 .9999999999E+19 a .9999999999E+20 4 Texto longitud variable Mximo segn memoria 8 +/4.94065645841247E-324 a +/8.9884656743115E307 1 Prueba 123 01/01/95 254 Cualquier caracter 1 .T.(verdadero) .F. (falso) 4 2147483647 a 2147483646 10 10 4 8 Sin tabla de cdigos Sin tabla de cdigos Limitado por Memoria disponible {01/01/95} {01/01/95 12:30:00 pm}

Contenedores de datos
Los contenedores de datos le permiten realizar las mismas operaciones con varios datos. Por ejemplo, sumar las horas que ha trabajado un empleado, multiplicarlas por el salario por hora y restar los impuestos para determinar el sueldo que ha percibido el empleado. Deber realizar estas operaciones para cada empleado y para cada perodo de pago. Si almacena esta informacin en contenedores y realiza las operaciones sobre stos, bastar con sustituir los datos antiguos por los nuevos datos y volver a ejecutar el mismo programa. En la siguiente tabla se enumeran algunos de los principales contenedores de datos disponibles en Visual FoxPro:

Contenedores de datos
Tipo Descripcin

Variables Elementos individuales de datos

Registro s de tabla

Matrices

almacenados en la memoria RAM (memoria de acceso aleatorio) del PC. Varias filas de campos predeterminados, cada uno de los cuales puede contener un dato definido previamente. Las tablas se guardan en disco. Varios elementos de datos almacenados en la memoria RAM.

Uso de operadores
Los operadores se utilizan para vincular los datos formando expresiones. Las expresiones producen un resultado que se puede asignar a un variable o campo mediante un operador (el operador de asignacin o el signo igual).
Operador = Tipos de datos vlidos Ejemplo

Todos

?n=7

Resultado Imprime .T. si el valor almacenado en la variable es 7; de lo contrario,

imprime .F.
Operador + Tipos de datos vlidos

Numeric, Character,Date, DateTime


Ejemplo Resultado ? "Fox" + "Pro"

Imprime FoxPro

Operador *, / Tipos de datos vlidos Numeric Ejemplo ? 5 * 5 Resultado Imprime 25

TABLA DE Funciones de CONVERSIN entre tipos de datos.


Tipo ORIGEN FUNCION Tipo DESTINO

Carcter o Memo Numrico, Flot, Doble o Entero Numrico Moneda Carcter o Memo Fecha Carcter

VAL ( ) STR( )

Numrico Caracter

NTOM( ) MTON( ) CTOD( )

Moneda Numrico Fecha

DTOC o Carcter DTOS CTOBIN( ) Carcter Binario

Carcter Binario Carcter o Memo FechaHora Fecha FechaHora Lgico

BINTOC( ) Carcter CTOT( ) TTOC( ) DTOT( ) TTOD( ) IIF( ) FechaHora Carcter FechaHora Fecha Cualquiera

FUNCION TYPE
Evala una expresin de caracteres y devuelve el tipo de datos de su contenido. Sintaxis TYPE (cExpresin) Tipos devueltos: Character Argumentos: cExpresin Especifica la expresin que va a ser evaluada, que puede tratarse tanto de una variable como de un campo, de un campo de memoria o de cualquier otra expresin. La expresin tiene que pasarse como una cadena de caracteres, hay que entrecomillar los nombres de variables de memoria, de campos, etc. Si no entrecomilla la expresin, la funcin TYPE( ) devolver U (expresin indefinida).

Tipo de datos

Carcter devuelto

Character Numeric (tambin flotante, doble y entero) Currency Date DateTime Logical Memo Object General Indefinido

C N Y D T L M O G U

Jerarqua de operadores
El orden de prioridades segn el cual se aplican los operadores al evaluar una expresin matemtica, se llama en Visual FoxPro, la precedencia de los operadores, que es de mayor a menor jerarqua:
( ) (agrupamiento de subexpresiones), ^ o ** (exponenciacin), * y / (multiplicacin y divisin), % (mdulo), + y (suma y resta).

Control del flujo del programa


Visual FoxPro incluye una categora especial de comandos que envuelven a otros comandos y funciones, determinando cundo y con qu frecuencia se ejecutan los otros comandos y funciones.
7

Estos comandos permiten realizar bifurcaciones condicionales y bucles , dos herramientas de programacin sumamente potentes. Una estructura de control muy usada es la estructura condicional SI (IF en ingls). De la ayuda de Vfox sacamos lo siguiente:
IF : Ejecuta condicionalmente un conjunto de comandos dependiendo del resultado de una expresin lgica. Sintaxis IF lExpresin [THEN] Comandos [ELSE Comandos] ENDIF Argumentos: lExpresin Especifica la expresin lgica evaluada. Si lExpresin da como resultado verdadero (.T.), se ejecutarn cualesquiera instrucciones posteriores a IF y anteriores a ELSE o ENDIF (lo que suceda primero).

Si lExpresin es falsa y se incluye ELSE, se ejecutan los comandos situados despus de ELSE y antes de ENDIF. Si lExpresin es falsa (.F.) y no e incluye ELSE, se pasarn por alto todas las instrucciones entre IF y ENDIF. En este caso la ejecucin del programa continuar con la primera lnea de comando a continuacin de ENDIF.
Comentarios : Puede anidar IF ... ENDIF dentro de otro bloque IF ... ENDIF.

Los comentarios precedidos de && se pueden colocar en la misma lnea despus de IF, ELSE y ENDIF. Estos comentarios se pasan por alto durante la compilacin y la ejecucin del programa.

Continua...

Entorno de Desarrollo de Visual Foxpro (II)


(Diseadores y Asistentes - Gestin de Ficheros - Creacin de Tabla mediante asistente) Toda la interfaz de desarrollo incorporada por "Visual Foxpro" est orientada a la generacin rpida de aplicaciones ( RAD). El objetivo final es la generacin de aplicaciones seguras en un tiempo razonablemente pequeo. Todo esto se consigue dejando que el trabajo a bajo nivel lo efecte el sistema, quedando para el programador el aspecto visual y el anlisis de la aplicacin. Para conseguir este fin, Visual Foxpro incorpora el siguiente conjunto de herramientas:

Administrador de proyectos
Visual Foxpro incorpora un potente gestor de proyectos que centraliza la gestin de todos los archivos manejados por una aplicacin. A partir de la informacin

contenida en un proyecto se generan las aplicaciones que pueden ser distribuidas libremente a todos los usuarios. Adems, Visual Foxpro incorpora una herramienta que asiste al programador para crear disquetes de instalacin que incluyan toda la informacin necesaria para instalar esta aplicacin en otros ordenadores. Diseador de Bases de Datos Como apoyo al sistema, incorpora un potente gestor de bases de datos. Este gestor maneja bases de datos que actan como referente de la informacin adicional relacionada con tablas, ndices, relaciones, reglas de validacin, integridad referencias y un sin nmero ms de informacin. De esta forma, una base de datos mantiene actualizada y centralizada toda la informacin de funcionamiento de las tablas que con ella estn relacionadas. Por ejemplo, cada vez que se modifica un registro en una tabla perteneciente a una base de datos, se comprueban las reglas de modificacin para esta tabla. Si por cualquier razn no es posible actualizar la tabla porque una de las reglas de validacin ha fallado, se devuelve la tabla a su estado original, advirtiendo, por supuesto, al usuario de esta eventualidad. Diseador de formularios Totalmente orientados al objeto, permiten disear el aspecto grfico final de una aplicacin. Permiten la inclusin de objetos estndar en Windows, tales como casillas de verificacin, grupos de opciones, marcos de pgina, imgenes, controles OLE. Gracias al diseador de clases visuales, se pueden crear nuevos tipos de controles que pueden ser incorporados como cualquier otro control a un formulario. Gestionan de forma transparente al usuario el entorno de datos asociado para cada formulario. En este entorno de datos es posible incluir cualquier tabla, vista local o remota definida en una base de datos. Pero no slo eso, es posible que cada entorno de datos sea privado para cada formulario. De esta forma pueden abrirse varias instancias de un mismo formulario sin que existan problemas de colisin de datos entre las dos instancias definidas. Diseador de informes y etiquetas A la hora de visualizar datos, ya sea por pantalla o impresora, Visual FoxPro incorpora un potente diseador de informes y etiquetas. En un informe se pueden definir objetos dentro de las tres bandas, cabecera, pie o detalle, y, adems, distribuir el informe en varios grupos que muestren el resultado de clculos sumatorios u otros realizados desde el propio formulario. A estas prestaciones hay que aadir la posibilidad de incluir en el entorno de datos del propio informe cualquier tabla o vista definida en la base de datos, tal como se ha comentado en referencia a los formularios. Diseador de mens Este diseador se utiliza para crear mens personalizados en la aplicacin y as sustituir el men incorporado por Visual FoxPro. El sistema utilizado se basa en la creacin de unos ficheros donde estn las definiciones de men. A posteriori, la informacin contenida en estos ficheros de men es analizada por un generador de cdigo con la finalidad de generar de forma automtica cdigo fuente con las definiciones de men. Asistentes Para usuarios incipientes, los asistentes pueden ayudar a crear nuevos tipos de ficheros de forma sencilla y rpida. No por ello se elimina la posibilidad de modificar los ficheros creados, ya que stos pueden ser alterados posteriormente mediante su diseador correspondiente.

Los generadores de controles ayudan en la creacin de nuevos controles insertados en los formularios. Estos generadores se encuentran totalmente abiertos y el usuario puede incorporar sus propios generadores. Diseador de consultas y vistas Cuando se trata de recuperar informacin, los generadores de consultas y vistas constituyen un apoyo indispensable para poder generar expresiones SQL. Si estas sentencias extraen informacin de la propia base de datos, se denominan vistas locales. Cuando estas vistas extraen informacin de una base de datos externa, se denominan vistas remotas. Apariencia de la ventana de sistema El sistema intrprete se basa en la utilizacin de la ventana Comandos. Desde esta ventana se escriben sentencias que usualmente provocan una accin por parte del sistema de desarrollo. As, desde la ventana de comandos se puede abrir tablas, examinar su contenido, crear programas, compilarlos, etc. Aparte de la ventana de comandos, cualquier accin se puede realizar desde el men de sistema, o bien desde la barra de herramientas activa. Es posible personalizar el men de sistema y cualquier barra de herramientas, o incluso crear nuevas barras de herramientas segn las necesidades del usuario.

Tipos de Ficheros Como se han dicho, el proyecto guarda informacin acerca de la localizacin de cada archivo. Como ayuda se presenta una lista de las posibles extensiones asociadas con cada tipo de ficheros y una breve descripcin de cada tipo. Tipo Proyecto Bases de Datos Formulario Bibliotecas de Clases Visuales Tablas ndices Documentacin Informes Etiquetas Libreras Windows Extensiones relacionadas PJX, PJT DBC, DCX, DCT SCX,SCT VCX,VCT DBF,FPT CDX,IDX ACT FRX,FRT LBX,LBT DLL Descripcin Ncleo central de desarrollo. Efecta el seguimiento a todos los ficheros relacionados con una aplicacin. Tabla contenedora para informacin relacionada con tablas, ndices, relaciones, vistas y conexiones. Ficheros de definicin de formularios. Bibliotecas conteniendo varias clases definidas por el usuario. Tablas y fichero memo asociados. Ficheros ndice compactos y simples. Fichero conteniendo el diagrama de acciones de un fichero PRG generado por el asistente de documentacin. Informes. Etiquetas. Librera de enlace dinmico Windows

10

Errores Ejecutables Macros Bibliotecas API Programas Ayuda Memoria Mens Mens generados Control OLE Consulta SQL Copias de seguridad Texto Constantes

ERR EXE FKY FLL PRG,FXP HLP MEM MNX,MNT MPR,MPX OCX QPR,QPX TBK,BAK TXT H

Fichero de seguimiento de errores de compilacin. Fichero ejecutable Visual Foxpro. Fichero de definicin de macros. Biblioteca de enlace dinmico Windows. Programa Fuente y Compilado. Fichero de ayuda grfica. Fichero de almacenamiento variables de memoria. Fichero de definicin de mens. de

Fichero generado y compilado. A partir de una definicin de mens. Fichero control ActiveX Fichero de consulta SQL. Copias de seguridad de diversos ficheros. Ficheros de Texto. Fichero de constantes predefinidas.

Gestin de ficheros Desde el men Archivo se realizan las acciones relacionadas con archivos. Consta de las opciones: Opcin Nuevo Abrir Cerrar Guardar Guardar como... Revertir Descripcin Crea un nuevo fichero de cualquier tipo Abre un fichero de cualquier tipo. Cierra el archivo en uso. Actualiza las modificaciones efectuadas al fichero actual en disco. Salva el fichero actual en disco con un nuevo nombre. Recupera la versin guardada en disco del fichero actual.

Cuando se desea crear un nuevo fichero, se muestra el cuadro de dilogo tal como vemos en la Figura. Este cuadro de dilogo permite seleccionar el tipo de fichero que se desea crear. Existen diversos tipos de ficheros que permiten su creacin mediante asistentes, que facilitan enormemente la tarea de crear nuevos ficheros.

Los Asistentes

11

Los asistentes proporcionan el mtodo ms eficaz y sencillo de apoyo a los nuevos usuarios en Visual Foxpro. Cubren prcticamente todos los tipos de ficheros bsicos que se pueden crear, desde tablas a formularios, pasando por informes, consultas, etc. Veamos cules son: Asistentes Asistente para formularios Asistente para formularios uno a varios Asistentes para tablas Asistente para importar datos a tablas Asistente para tablas dinmicas Asistentes para consultas Asistente para tablas de referencias cruzadas Asistentes para grficos Asistente para informes Asistente para informes de uno a varios Asistente para informes de grupos/totales Asistentes para etiquetas Asistente para combinacin de correspondencia Asistente para vistas Asistente para vista remota Descripcin Crea nuevos formularios. Crea ficheros de tipo SCX. Crea formularios con soporte de ficheros relacionados de uno a muchos. Crea ficheros SCX. Crea nuevas tablas libres o definidas en una base de datos. Crea ficheros de tipo DBF. Importa datos a una tabla procedentes de otro origen. Crea tablas de hoja de clculo utilizables desde Microsoft Excel. Crea consultas con sentencias SQL almacenadas en ficheros de tipo QPR. Crea una consulta en formato hoja de clculo. Crea ficheros de tipo QPR. Crea un nuevo grfico en Microsoft Graph a partir de la informacin contenida en una tabla. Crea una nueva definicin de informe. El tipo de fichero creado es FRX. Crea una nueva definicin de informe relacionando una tabla primaria con otra secundaria. Crea fichero de tipo FRX. Crea un informe con definicin de resumen para grupos y totales. Crea ficheros de tipo FRX. Crea un nuevo fichero de definicin para imprimir etiquetas postales. Crea un fichero de tipo LBX. Crea un origen de datos compatible con el procesador de texto Microsoft Word o cualquier otro. Crea una nueva definicin de vista en una base de datos. La informacin generada por este asistente se guarda en una base de datos DBC. Crea una nueva definicin de vista remota. El fin es acceder a otro tipo de informacin contenida a su vez en un servidor de datos. Esta nueva vista se almacena en una base de datos DBC.

Crear una nueva tabla mediante el asistente Para crear una nueva tabla mediante el Asistente para tablas, debe proceder de alguna de estas dos formas: Desde el men Herramientas, escoja el submen Asistentes. De este men, escoja la opcin Tabla. Desde el men principal, escoja del men Archivo la opcin Nuevo CTL+N o escoja el botn de comando Nuevo de la barra de herramientas Estndar. Visualice a continuacin el cuadro de dilogo para la eleccin del nuevo tipo de fichero a crear. Escoja Tabla y pulse en el botn de comandos Asistente .
12

El asistente genera una nueva tabla siguiendo tcticamente una serie de pasos que conducen a confeccionar una tabla y sus ndices correspondientes. Paso 1. Seleccionar campos Este paso trata de determinar los campos que se van a definir en la nueva tabla, a partir de unas definiciones estndar aportadas por el propio asistente. De esta forma, se puede crear una nueva tabla basndose en tipos ms o menos ajustados a las necesidades del usuario. Paso 2. Opciones de campos Puede que las definiciones de campo no se ajusten exactamente a las necesidades del usuario. Para esto existe este paso, permitiendo la modificacin de los parmetros definitorios de un campo, como son su nombre, el ttulo, el tipo, el ancho, decimales y soporte de valores nulos. Bien, en cuanto al ttulo, slo hay que hacer una diferenciacin, y es que si no hay una base de datos definida y abierta en el sistema, no se puede crear o modificar un ttulo asociado a un campo. Esta es una de las caractersticas aportadas por las bases de datos, la posibilidad de ampliar la informacin relativa a tablas. Otro caso es el nombre del campo: si no existe una base de datos abierta, no se puede ampliar su descripcin ms all de diez caracteres. Como se ver ms adelante, es posible asignar nombres de campo hasta 255 caracteres. Paso 3. lndexacin Para poder localizar cualquier tipo de informacin de una tabla es necesario recurrir a la creacin de ndices. Los ndices proporcionan un mtodo rpido de localizacin de registros basndose en expresiones. La expresin a localizar se va comparando con el contenido del ndice, hasta localizar el registro cuyo valor en la clave de ndice coincide con la expresin buscada. Paso 4. Finalizar Una vez que se han recorrido los pasos correctamente, se procede a generar una tabla. Adicionalmente, el asistente nos permite examinar la tabla tal como ha quedado o modificarla mediante el diseador de tablas para aadirle prestaciones adicionales

Manejo de tablas Suponiendo que hubiramos elegido la opcin Guardar la tabla y examinarla en el Asistente para tablas, obtendra una nueva ventana Examinar con la nueva tabla vaca. Lo que aqu vemos es una ventana tpica utilizada para examinar tablas. En este caso estamos visualizando una tabla con registros. Dentro de la ventana distinguimos varios apartados. Columnas Dependiendo del tamao de la ventana Examinar, se muestran ms o menos columnas. Cada columna visualiza en el encabezado el nombre del campo, o bien, el ttulo definido en la base de datos para este campo. Usualmente, marcando en el ttulo de un campo y arrastrndolo a una nueva posicin, modificamos el orden de visualizacin de columnas. Seleccin de celda. Para indicar en qu registro est posicionado, existe un indicador situado a la izquierda de la primera columna visualizada. Este indicador una flecha indicando que el puntero de registro est posicionado en esa fila. Asimismo, la celda que tiene el enfoque de lectura visualiza el
13

cursor de edicin y est remarcada con un cuadro cuyos bordes son ligeramente mayores que las lneas separadoras. Como se puede observar en la figura, todas las funciones de edicin estn disponibles, tales como marcar un determinado segmento de caracteres, insertar o incluso marcar todo el contenido del campo. Estado del registro. Adyacente al indicador de registro se encuentra el indicador de estado de la marca de eliminacin. Si el registro est marcado para borrar, este cuadro cambia su contenido de color negro. Edicin de registro interactivo Desde la venta Comando se pueden utilizar estos comandos para abrir la ventana Examinar y realizar modificaciones en cualquier tabla. Comando/Funcin APPEND [BLANK] [IN nreaTrabajo | cAliasTabla] [NOMENU] BROWSE y CHANGE/EDIT MODIFY GENERAL CampoGeneral1 [,CampoGeneral2 ...] [NOMODIFY] [NOWAIT] [[WINDOW NombreVentana1] [IN [WINDOW] NombreVentana2 | IN SCREEN]] MODIFY MEMO CampoMemo1 [,CampoMemo2 ...] [NOEDIT] [NOMENU] [NOWAIT] [RANGE nCarcterInicial, nCarcterFinal] [[WINDOW NombreVentana1] [IN [WINDOW ] NombreVentana2 | IN SCREEN]] [SAME] [SAVE] Descripcin Abre la ventana Cambiar para aadir registros a una tabla interactivamente. Abren las ventanas Examinar y Cambiar, respectivamente. Abre una nueva ventana para poder editar un campo de tipo general.

Abre una nueva ventana para permitir editar un campo de tipo memo.

Opciones del men tabla Cuando se abre una nueva ventana Examinar, se crea un nuevo men en la barra de mens de sistema. El men Tabla contiene las opciones bsicas para el manejo de tablas. Veamos algunas: Aadir un nuevo registro Elija la opcin Aadir nuevo registro, o bien, pulse la combinacin de teclas CTRL+Y. Se inserta un nuevo registro en la tabla que se est examinando. Tambin es posible aadir registros desde la ventana Comandos emitiendo alguna de las sentencias:

14

APPEND BLANK APPEND Cambiar el estado de la marca borrado Cuando un registro ya no se hace necesario se marca como borrado. Este es el paso previo a la eliminacin de todos los registros marcados, cuyo proceso requiere el uso del comando PACK. Como es evidente, tambin se puede realizar esta accin como todas las dems, desde la ventana Comandos, mediante la sentencia DELETE Otra posibilidad interesante es alternar el estado del registro utilizando un cuadro situado al lado del marcador de registro. Pulsando alternativamente en este cuadro, modificamos el estado de la marca de borrado. Ir a un registro determinado Se puede ir a un registro determinado modificando la celda activa mediante el ratn y las barras de desplazamiento vertical, o el teclado mediante los cursores. Pero tambin se utilizar el submen Ir al registro, cuyo contenido analizado es el siguiente: Opcion Primero Descripcin Va al primer registro de la tabla. Desde la ventana Comandos habra que utilizar: GO TOP Va al ltimo registro de la tabla. Desde la ventana Comandos habr que escribir: GO BOTTOM Posiciona el puntero de registro en el siguiente registro. Obteniendo el mismo resultado que utilizando esta sentencia desde la ventana Comandos: SKIP 1 Posiciona el puntero en el registro anterior. Desde la ventana Comandos: SKIP -1 Cambia el puntero de registro a un registro especfico. Desde la ventana Comando habra que emitir la siguiente sentencia: GO nRegistro Donde nRegistro es el nmero de registro donde se desea posicionar el puntero de registro. Encuentra el registro que cumpla la expresin de bsqueda. Veremos
15

ltimo

Siguiente

Anterior

Registro nmero

Encontrar

ms adelante la sintaxis del comando LOCATE utilizado por esta opcin de men

Continua...

Curso de Visual Foxpro


Entorno de Desarrollo de Visual Foxpro (III)
(Diseadores y Asistentes - La ventana Sesin de datos Manejo de Registros Borrados - Importacin/Exportacin de Datos - Asistente para importar datos - Formularios - Crear un Formulario Rpido)

Bsqueda de registros Al realizar una consulta en busca de uno o varios registros que cumplan los criterios de bsqueda en una tabla es necesario aclarar algunos conceptos bsicos. Por una parte, el mbito donde se va a realizar la consulta, que puede restringirse a todos los registros de la tabla, los 10 siguientes o cualquier combinacin vlida. Por otra parte, existe el concepto de expresin de bsqueda. Una expresin de bsqueda se evala y compara con el registro activo. Si no se cumple la expresin de bsqueda, contina con el siguiente registro, y as hasta llegar al final de la tabla. Se puede comprobar si una bsqueda ha tenido xito observando en qu posicin se encuentra el puntero de registro. Por ltimo, esta bsqueda contina mientras se cumpla una segunda expresin. Es decir, se recorre toda la tabla mientras esta expresin sea verdadera; en cuanto evale a falsa, finaliza la bsqueda, aunque no haya recorrido toda la tabla. Cuando se elige la opcin Encontrar del submen Ir al registro, se visualiza el cuadro de dilogo, que resume los tres conceptos que se acaban de perfilar. La utilidad de este cuadro de dilogo es construir a partir de la informacin introducida en el mismo una sentencia completa utilizando el comando LOCATE. Por tanto, lo que vaya introduciendo en este cuadro de dilogo se incorporar como argumento tras el comando LOCATE. Cuando se pulse en el botn de comando Encontrar, la sentencia LOCATE se emite desde la ventana Comandos. Veamos estos conceptos aplicados a la bsqueda de registros.

16

Alcance El Alcance delimita la cantidad de registros que se van a procesar e incluso desde y hasta qu registro va a cubrir la bsqueda. Cuando se aceptan las modificaciones introducidas en este cuadro de dilogo se aaden los argumentos necesarios en la sentencia LOCATE. Alcance Todos Argumento ALL Descripcin Incluye la totalidad de los registros en la bsqueda. El lmite de bsqueda va desde el registro nmero 1 hasta el ltimo. Incluye slo los n registros siguientes al actual en la bsqueda. Es decir, especificando 10 en el cuadro de texto, incluir slo los 10 siguientes registros a partir del actual en la bsqueda. Por lo tanto, el lmite se centra desde el registro actual hasta el nmero de registros especificados. La bsqueda se limita nicamente al nmero de registro especificado por este cuadro de texto. Comienza la bsqueda a partir del registro actual y contina hasta el final de la tabla. Por tanto, el intervalo de bsqueda se limita desde el registro actual al ltimo de la tabla.

Siguiente

NEXT n

Registros Restantes

RECORD n REST

Clusula FOR Este es el ncleo bsico de toda sentencia de bsqueda. Veremos que hay multitud de comandos que pueden incorporar esta clusula para delimitar aquellos registros que cumplen los criterios especificados por esta misma clusula. Cuando se elige este botn de comando, se activa el generador de expresiones de Visual Foxpro. Esta es una herramienta de gran utilidad para la construccin de expresiones, desde la ms simple hasta la ms compleja. Veremos el generador de expresiones ms ampliamente en secciones siguientes. Para confeccionar el ejemplo que veremos, ha bastado elegir el campo del cuadro de lista Campos. A continuacin se ha escrito la comparacin. Por tanto, estamos buscando aquel registro cuyo nombre de empresa sea igual a Centro, o al menos comience con esos caracteres. Clusula WHILE La seleccin de registros efectuada mediante la clusula FOR se refiere a toda la tabla por completo, y eso precisamente se diferencia de la clusula WHILE. Esta ltima restringe el mbito de bsqueda a que la expresin lgica incluida con esta clusula sea cierta. En el momento en que no se cumpla la expresin, el comando que incluye esta clusula finaliza inmediatamente. Por esta razn se puede decir que en este caso la bsqueda se realizar mientras se cumpliera la clusula WHILE, finalizando la bsqueda cuando no se cumpliera, aunque no se hubiera recorrido toda la tabla.

17

La ventana Sesin de datos


Este cuadro de dilogo se utiliza como gestor para las tablas abiertas. Consta de dos cuadros de lista que visualizan, por una parte, las tablas abiertas y, por otra, las relaciones establecidas entre ellas. Cada tabla tiene asociadas una serie de propiedades a las cuales es posible acceder desde el botn de comando Propiedades. Asimismo, es posible abrir, cerrar tablas o establecer nuevas relaciones entre las tablas abiertas. Pero la funcin primordial puede ser la de examinar el contenido de la tabla seleccionada en el cuadro de lista Alias utilizando el botn de comando Examinar. La particularidad de esta opcin reside en que se recupera el estado en que se cerr la ventana Examinar para esa tabla la ltima vez, incluyendo tamao y posicin de la ventana o el tipo y tamao de la fuente utilizada.

Modificar las propiedades de la Tabla


Cuando se pulsa el botn de comando Propiedades, se accede al cuadro de dilogo utilizado para modificar las propiedades de la tabla abierta en el rea de trabajo actual. Entre las opciones que se pueden controlar desde es te cuadro se encuentra la posibilidad de activar un ndice determinado, filtrar los registros de una tabla o restringir la informacin que se muestra en una ventana Examinar predeterminada. Bfer de datos El bfer de datos se activa si se elige la opcin Activar almacenamiento en bfer de datos. Esto significa que los cambios que se efecten sobre la tabla no sern actualizados en forma inmediata, y dependiendo del tipo de bfer de datos elegidos, son potencialmente descartables en un momento determinado. Siempre es posible cambiar el estado del bfer de datos, y de hecho, si no se indica lo contrario, la tabla no se abre inicialmente con ningn bfer de datos activo. Por tanto, si se desea utilizar el bfer de datos, es necesario activarlo desde este cuadro de dilogo, o bien, desde la ventana Comandos mediante la funcin DBSET PROP(). Seleccin de ndice Desde este cuadro combinado se elige el orden activo para el rea de trabajo actual. Se muestran en l todas las etiquetas del ndice definidas para esta tabla. De este modo se pueden utilizar el comando SEEK y la funcin SEEK() para encontrar el registro que cumpla el criterio de bsqueda. Filtro de datos Desde el cuadro de texto o utilizando el generador de expresiones, llamado al pulsar el botn de comando, generamos una expresin de filtro de datos. Esto significa que cuando abramos una ventana Examinar para esta tabla, slo se van a visualizar aquellos registros que cumplan la condicin escrita aqu. Filtro de campos

18

Del mismo modo que se establecen filtros para visualizar una parte de los datos presentes en una tabla, es posible realizar una accin anloga con las columnas definidas en una tabla. De este modo, slo aparecen en la ventana Examinar aquellas columnas pedidas en esta opcin.

Examinar
La Ventana Examinar tiene una serie de caractersticas interesantes, entre las cuales podemos destacar las siguientes: Modificar el aspecto de las columnas Las columnas de datos pueden cambiar su posicin y tamao. Definicin de particiones Una Ventana Examinar puede dividirse verticalmente en dos particiones. Cada particin puede funcionar de forma independiente y presentar un aspecto distinto. Fuentes Cualquier fuente definida en Windows puede utilizarse para visualizar, en cualquier tamao y tipo, informacin en una ventana Examinar.

Abrir y Cerrar tablas


Estos dos botones de comando permiten abrir y cerrar tablas. Cuando se pulsa en el botn de comando Abrir se selecciona la ltima rea de datos activa y se abre en esa rea. Si existe una tabla seleccionada en la lista de alias activo, el comando de cierre se refiere al rea que est ocupando esa tabla.

Establecer relaciones
Si existen al menos dos tablas abiertas, es posible establecer relaciones entre ambas. La forma de establecer relaciones entre la s dos consiste en pulsar el botn de comando Relaciones teniendo una de las dos seleccionada en el cuadro de lista Alias. En ese momento, en el cuadro de lista Relaciones aparece la tabla elegida. Para establecer una relacin entre las dos tablas es necesario saber qu campo de la tabla principal - la que se eligi en primer lugar - hay que buscar en la tabla secundaria. Eso es precisamente lo que se le pide al usuario cuando se establece una nueva relacin. En primer lugar elegimos un campo de la tabla principal, y a continuacin, el orden activo en la tabla secundaria.

Manejar registros borrados


La eliminacin de registros puede realizarse de tres formas distintas, desde la ventana Examinar, utilizando el marcador de registros borrados; desde la opcin Alternar marca de eliminacin del men Tabla, o bien, mediante el comando DELETE desde la ventana Comandos.

19

El efecto inmediato es que el registro actual queda marcado para borrar y se requiere la posterior intervencin del comando PACK, que elimina definitivamente de la tabla todos aquellos registros marcados para borrar. Recuperar registros Se puede alternar la marca de borrado de un registro determinado. Esto se consigue de tres formas distintas: desde la propia ventana Examinar, mediante la opcin Alternar marca de eliminacin, presente en el men Tabla, o mediante el comando RECALL. Eliminar un conjunto de registros Para evitar la necesidad de ir marcando cada registro individualmente, se recurre al marcaje de varios registros de una vez. Para ello podemos utilizar la opcin Eliminar registros del men Tabla o bien el comando DELETE. Eliminar registros marcados Los registros marcados como borrados permanecen en la tabla hasta que no se invoca el comando PACK o se utiliza la opcin Desmarcar registros del men Tabla. La finalidad de este comando es eliminar fsicamente todos los registros marcados. Despus de efectuar esta operacin no ser posible recuperar los registros eliminados de ninguna forma.

Uso de registros borrados


A continuacin se detallan todos los comandos y funciones relacionados con el uso de registros borrados. Comando/Funcin DELETE [Alcance] [FOR lExpresin1] [WHILE lExpresin2] [IN nreaTrabajo | cAliasTabla] [NOOPTIMIZE] DELETE FROM [NombreBaseDatos!]NombreTabla [WHERE CondicinFiltro1 [AND | OR CondicinFiltro...]] DELETE ([cAliasTabla | nreaTrabajo]) RECALL [Alcance] [FOR lExpresin1] [WHILE lExpresin2] [NOOPTIMIZE] PACK [MEMO] [DBF] Descripcin Borra uno o ms registros de una tabla. Puede utilizarse el alcance o las expresiones FOR y WHILE para determinar el rango de registros a borrar. Marca registros para eliminar mediante SQL

SET DELETED ON|OF

Indica si el registro actual est marcado para borrar. Recupera uno o ms registros marcados para borrar. Puede utilizarse la clusula de alcance o las expresiones FOR y WHILE para delimitar el rango de registro a recuperar. Elimina de la tabla activa todos los registros marcados para borrar. Indicando la clusula MEMO compacta el espacio utilizado por el archivo de campos memo FPT . Si se incluye la clusula DBF, se ignora la compactacin del archivo memo. Indica si los registros marcados para
20

ZAP [IN nreaTrabajo | cAliasTabla] BLANK [FIELDS ListaCampos] [Alcance] [FOR lExpresin1] [WHILE lExpresin2] [NOOPTIMIZE]

borrar estn disponibles cuando se utilizan otros comandos. Elimina todos los registros de la tabla especificada, estn o no marcados para borrar. Borra toda la informacin de uno o ms registros sin marcarlos para borrar.

Reemplazar valores en campos


Mediante la ventana Examinar, tal como hemos ido viendo hasta ahora, es posible alternar el contenido de uno o ms registros. Sin embargo, a veces se hace necesario modificar un grupo de registros de una vez sin necesidad de ir cambiando el valor de uno en uno. Para efectuar esta operacin encontramos la opcin Reemplazar campo en el men Tabla. Esta opcin muestra un cuadro de dilogo que permite efectuar este tipo de modificaciones masivas.

Importacin/Exportacin de datos
Tan importante como el dominio sobre los datos a los que podemos acceder mediante el gestor de tablas es la posibilidad de acceder a los datos contenidos en ficheros creados por otras aplicaciones. De esta forma podemos extraer informacin de los mismos, tratarla y, si resulta til, enviarla de nuevo al tipo de datos de origen. Comando/Funcin EXPORT Descripcin Exporta datos de una tabla de Visual FoxPro a cualquiera de los tipos soportados. Importa datos desde un fichero de datos externo en alguno de los formatos soportados. Agrega registros de otra tabla al final de la tabla activa. Copia en un campo memo el contenido de un archivo de texto. Crea una tabla nueva a partir del contenido de la tabla activa.

IMPORT APPEND FROM APPEND MEMO COPY TO

Importar datos Microsoft Visual FoxPro soporta los siguientes tipos de ficheros, de los cuales puede extraerse informacin si elegimos la opcin Importar del men Archivo: Tipo Microsoft Excel 5.0 (XLS) Descripcin Esta opcin permite importar datos de hojas de clculo creadas con Microsoft Excel 5.0.

21

Microsoft Excel 2.0, 3.0 y 4.0 (XLS) Lotus 1-2-3 3.x (WK3) Lotus 1-2-3 2.x (WK1)

Lotus 1-2-3 1-A (WKS) Paradox 3.5 y 4.0 (DB) Symphony 1.10 (WR1) Symphony 1.01 (WRK)

FrameWork II (FW2) Multiplan 4.01 (MOD) RapidFile (RPD)

Esta opcin importa datos de hojas de clculo de Microsoft Excel Versiones 2.0, 3.0 y 4.0. Importa datos procedentes de una hoja de clculo realizada con Lotus 1-2-3 versin 3.x. Importa datos procedentes de una hoja de clculo realizada con Lotus 1-2-3 versin 2.x. Importa datos procedentes de una hoja de clculo realizada con Lotus 1-2-3 versin 1-A Importa datos procedentes de la base de datos Paradox en su versin 3.5 y 4.0. Permite importar datos procedentes de la hoja de clculo del paquete integrado Symphony versin 1.10. Permite importar datos procedentes de la hoja de clculo del paquete integrado Symphony versin 1.01. Permite importar datos procedentes de la hoja de clculo del paquete integrado FrameWork II. Permite importar datos procedentes de la hoja de clculo Multiplan versin 4.01. Importa datos procedentes de RapidFile

Asistente para importar datos


Este asistente es adecuado en aquellas ocasiones en las que se necesita moldear algunos aspectos de la importacin de datos. Este sencillo pero potente asistente permite especificar el origen y destino de los datos, ver qu datos se estn importando directamente y especificar el nombre y tipo de cada uno de los campos que se estn importando. Paso 1. Archivos de origen y de destino. En este primer paso especificamos el tipo de fichero de datos del que se van a extraer los datos. A continuacin se indica el fichero de datos y, por ltimo, el nombre de la tabla sobre la que se van a copiar los registros importados. Paso 2. Determinar el formato de los datos En este se puede tener una vista previa de la informacin que se pretende importar. Esto es importante, pues permite identificar correctamente los datos que pretendemos insertar, ya que podemos volver atrs y especificar otro origen de datos en cualquier momento. Paso 3. Definir campos importados Antes de efectuar la importacin de datos podemos ver la estructura de la informacin. Esta pantalla permite el cambio de los siguientes parmetros: Nombre, Tipo, Ancho y posiciones Decimales. Paso 3. Especificar opciones internacionales.

22

A la vista de la informacin, se puede alternar unas cuantas propiedades de la informacin a importar. Por ejemplo, si se ha especificado un archivo de texto como origen de datos, podemos modificar diversos aspectos de esta transformacin, tal como especificar el carcter separador de campos.

Formularios. Introduccin
En principio, la ventana Examinar puede se suficiente herramienta para la visualizacin y modificacin de tablas, pero, adems, podemos utilizar formularios para dar una presencia ms til y verstil a la misma informacin. Los formularios contienen cualquier tipo de control, desde etiquetas, pasando por cuadros de texto, cuadros de edicin, hasta cuadros combinados o cuadros de lista. Existe un nmero suficiente de controles disponibles de forma estndar, pudindose ampliar esta lista con controles diseados por el propio usuario o controles universales OCX. Un formulario tiene asociado un entorno de datos que permite abrir y cerrar de forma automtica las tablas que el mismo formulario necesita. Incluso es posible utilizar el resultado de consultas de una base de datos. Otra caracterstica importante relativa a los controles insertables en un formulario es la vinculacin que pueden mantener con un origen de datos. Esto quiere decir que un control puede visualizar y editar directamente el contenido de un campo de una tabla. Por ejemplo, podemos definir que un cuadro de lista edite el campo relativo al nombre de un producto definido en la tabla Productos, o una casilla de verificacin indicando si ese producto dispone de existencia suficientes. En definitiva, se trata de visualizar informacin de forma que el usuario identifique claramente el tipo de informacin que necesita para tomar decisiones.

Crear un formulario rpido


La forma ms sencilla de crear formularios es, en principio, recurrir al asistente para la creacin de formularios. Puede llamar a este asistente cuando crea un nuevo formulario, o bien desde el men Asistentes, escogiendo la opcin Formulario. Como datos bsicos, tal como se va a comprobar a continuacin, este asistente slo necesita una tabla y qu campos de la misma van a participar en la generacin del nuevo formulario. El orden en el que van a figurar en el formulario definitivo depende del orden que se vayan eligiendo desde el cuadro de lista Campos disponibles hacia el cuadro de lista Campos seleccionados. Paso 1. Seleccin de campos El primer paso consiste en la eleccin de tabla y campos. Como dato esencial se necesita una tabla, de la cual se van a tomar las definiciones de determinados campos con el fin de confeccionar controles para su visualizacin y edicin desde el nuevo formulario. Como dato interesante se puede comentar el hecho de que este generador utiliza como etiquetas de campo, es decir, el texto que figura delante de cada uno de los controles de edicin, el encabezado que se haya definido en la base de datos si la tabla pertenece a una. Paso 2. Estilo

23

Existe una serie de estilos predefinidos que el asistente utiliza como patrn en el momento de generar el aspecto visual general del formulario y cada uno de los controles que lo contienen. Esta prestacin se completa con la posibilidad de elegir botones de comando grfico o de texto. Estos botones de comando situados en la parte inferior del nuevo formulario permiten mover el puntero de registro del primer al ltimo registro, o bien, al anterior o siguiente con respecto al registro que se est visualizando actualmente. Pueden, adems, insertar o eliminar registros de la tabla. Paso 3. Orden. Si la tabla no dispone de una secuencia de ordenacin, lo que hace este paso es permitir crear una a partir de hasta tres campos de la tabla origen de datos. Este orden ser utilizado en los desplazamientos hacia atrs o adelante cuando se utilizan los botones de comando de desplazamientos por registros. Paso 4. Finalizar Como informacin final, el asistente necesita saber el ttulo del formulario y qu deseamos hacer con l. A este ltimo respecto tenemos tres opciones: guardar el formulario para poder ejecutarlo o modificarlo posteriormente, generar y ejecutar el formulario o bien, y por ltimo, generar el formulario y modificarlo mediante el generador de formularios. Antes de elegir cualquiera de las tres opciones, podemos ver una presentacin del formulario en proceso de generacin, con el fin de alterar cualquier informacin de las que se han definido en los tres pasos anteriores. Ejecutar el nuevo formulario Una vez que se ha generado el formulario y tras realizar unas pequeas modificaciones podemos obtener un formulario. Como se podr observar, en la parte superior del formulario figura el ttulo elegido para el mismo: Empleados

Macros
Existen multitud de situaciones donde repetimos hasta la saciedad la misma secuencia de teclas: al abrir un proyecto, al abrir una pantalla, al compilar, etc. Las macros pueden ayudar a que la secuencia de teclas que tengamos que utilizar se reduzca lo ms posible y de esta forma aprovechemos mejor el tiempo. Las macros permiten grabar secuencias de caracteres y asociarlas a una combinacin de teclas. De esta forma, la pulsacin de esta combinacin de teclas a posteriori ejecuta la secuencia de caracteres guardada.

Las Macros de sistema


Quiz la macro ms conocida, pero no por ello reconocida como tal, sea F1, utilizada para activar la ayuda de sistema. Existen otras macros ms que vamos a ver

24

a continuacin y que son las que incorpora Visual FoxPro en el momento de ser instalado: Macro F2 Descripcin Accin Abre la ventana Sesin de Datos Ejecuta la siguiente secuencia de teclas: SET (INTRO ). Es decir, escribe en la ventana de comandos el comando SET y a continuacin la tecla INTRO. F3 Lista los registros de la tabla activa por pantalla Ejecuta la siguiente secuencia de teclas: LIST (INTRO ). Tal como hemos visto en la macro anterior, escribe en la ventana de comandos el comando LIST y a continuacin la tecla INTRO. F4 F5 F6 F7 F8 Efecta un directorio por pantalla Muestra la estructura de la tabla activa por pantalla Muestra el estado del sistema por pantalla Muestra el contenido de la memoria por pantalla Muestra el contenido del registro actual de la tabla activa por pantalla Abre la ventana de insercin de nuevos registros en formato ficha de la tabla activa Cmo grabar una macro? Es muy sencillo; para ello basta con pulsar las teclas MAYSCULAS-F10. Visualizamos un cuadro de dilogo pidiendo la combinacin de teclas a la cual vamos a asociar la secuencia de teclas que estn a punto de ser grabadas. Es decir, cada vez que pulsemos la secuencia de teclas que se indica en este momento, se repetir las teclas pulsadas a continuacin de la salida de este cuadro de dilogo. Cuando pulsemos Aceptar en este cuadro de dilogo, todas las teclas pulsadas quedarn registradas en la macro llamada Control-Alt-F, invocada siempre que se pulse la combinacin de teclas CTRL-ALT-F. Conozcamos los nombres de cada una de las teclas para poder identificarlas correctamente. Nomenclatura de teclas Tecla Nombre LEFTARROW Ejecuta la siguiente secuencia de teclas: DIR (INTRO ). Ejecuta la siguiente secuencia de teclas: DISPLAY STRUCTURE (INTRO ). Ejecuta la siguiente secuencia de teclas: DISPLAY STATUS (INTRO ). Ejecuta la siguiente secuencia de teclas: DISPLAY MEMORY (INTRO ). Ejecuta la siguiente secuencia de teclas: DISPLAY (INTRO ). Ejecuta la siguiente secuencia de teclas: APPEND (INTRO ).

F9

25

RIGHTARROW UPARROW DNNARROW Inicio (Home) Fin (End) AvPg (Page Up) RePg (Page Down) Sup (Del) Borrar (Backspace) Borrar espaciadora (Spacebar) Ins Tabulador Retroceder tabulador (Shift Tab) Intro (Enter) F1 a F12 Ctrl+F1 a Ctrl+F12 Shift+F1 a Shift+F12 Alt+F1 a Alt+F12 Alt+0 a Alt+9 Alt+A a Alt+Z Ctrl+ Ctrl+ Ctrl+inicio Ctrl+Fin Ctrl+AvPg Ctrl+RePg Ctrl+A a Ctrl+Z Botn derecho ratn Botn izquierdo ratn Cualquier botn del ratn Esc HOME END PGUP PGDN DEL BACKSPACE SPACEBAR INS TAB BACKTAB ENTER F1, F2, F3 ... Ctrl+F1, Ctrl+F2... Shift+F1, Shift+F12... Alt+F1, Alt+F2, Alt+F3... Alt+0, Alt+1, Alt+2... Alt+A, Alt+B, Alt+C... Ctrl+LEFTARROW Ctrl+RIGHTARROW Ctrl+HOME Ctrl+END Ctrl+PGUP Ctrl+PGDN Ctrl+A, Ctrl+B, Ctrl+C... RIGHTMOUSE LEFTMOUSE MOUSE ESC

Cmo visualizar y editar las macros activas?


Para acceder al cuadro de dilogo para el mantenimiento de macros elija la opcin Macros del men Tools. Se visualiza una ventana, esta ventana est subdividida en los siguientes elementos: Lista de macros definidas. Este cuadro de lista visualiza los nombres de las macros definidas en este momento en el sistema. Cada elemento de la

26

lista visualiza el nombre que se le ha dado a la macro, no la tecla que invoca a la misma, aunque normalmente suele coincidir el nombre que se le da a la macro con la combinacin de teclas que la ejecuta. Grabar. Inicia la secuencia de grabacin de una macro. Es similar a la pulsacin de las teclas MAYSCULAS+F10. Nueva. Crea una macro nueva. Editar. Edita el contenido de una macro existente. Borrar. Borra una macro definida. Conjunto de macros. Los botones de comando definidos en esta zona permiten recuperar un conjunto de macros guardadas en un fichero, salvar las existentes en un fichero o hacer que las macros definidas en este momento sean las predeterminadas cada vez que se arranca Visual FoxPro. Grabacin de macros Este ejemplo trata de una macro para crear un nuevo proyecto cada vez que se pulsa la tecla F3. Se puede iniciar la secuencia de grabacin de la macro de dos formas: Pulsar la combinacin de teclas MAYSCULAS-F10. Escoger del cuadro de dilogo que aparece al pulsar Tools-Macros la opcin Record. En cualquier de los dos casos se visualiza el cuadro de dilogo correspondiente. A continuacin pulsaremos F3 para que quede registrada como tecla de inicio de la macro. Como nombre de macro la vamos a llamar NuevoProyecto. Dado que ya existe la macro F3 definida en el sistema, vemos una ventana de alerta advirtiendonos esta circunstancia. Esta ventana admite tres repuesta totalmente distintas: a) Sobrescribir. Esta ser la accin lgica que escogeremos para continuar con este ejemplo. Vamos a sobreescribir el contenido de la macro F3 con las teclas que vamos a dejar registradas a continuacin. b) Aadir pulsaciones. Como veremos ms adelante, es posible aadir a una macro existentes nuevas pulsaciones al final de la misma. c) Cancelar. Cancela la grabacin de la macro. Desde el momento en que hemos pulsado sobre el botn de comando Sobrescribir, todas las teclas que se pulsen a partir de ese momento quedarn registradas en la definicin de la macro NuevoProyecto. El objetivo de esta macro es escribir de forma automtica en la ventana de comando la instruccin CREATE PROJECT y a continuacin la tecla Intro. Para asegurar que vamos a escribir en la ventana de comandos, la activamos mediante CTRL-F2. Por tanto pulsamos: Ctrl-F2

27

A continuacin, sobre la ventana de comando, continuamos escribiendo la instruccin CREATE PROJECT y por ltimo pulsamos Intro. Cuando se haya pulsado intro, se visualiza el cuadro de dilogo de apertura de ficheros. En este momento y para finalizar la grabacin de la macro, volvemos a pulsar MAYSCULA-F10. Vemos el cuadro de dilogo: Insertar literal. Inserta en la definicin de macro la tecla tal cual se ha pulsado. Insertar pausa. Este botn de comando permite insertar una pausa en la macro de dos formas distintas: Tecla para reanudar : Cuando se inserta una pausa de este tipo en una macro, sta no reanuda su ejecucin hasta que no se pulsa una tecla. Segundos. Esta pausa paraliza momentneamente la macro los segundos especificados en el control numrico. Pulsamos Aceptar y finalizamos la grabacin de la macro. De esta forma, cada vez que deseemos crear un fichero nuevo de proyecto, tan slo tendremos que pulsar F3. Edicin de macros Dado que a veces es difcil recordar la secuencia de teclas que conducen a realizar una accin, es posible que cometamos errores. No hay problema, puesto que es posible introducir nuevas pulsaciones o eliminarlas en cualquier lugar de la macro. Para modificar el contenido de una macro, sigamos los siguientes pasos: 1. Elija la opcin Macros del men Herramientas. 2. Seleccione de la lista de macros definidas la que desee modificar. Para editar la macro, pulse el botn de comando Editar. Aparecer un cuadro de dilogo. En el ejemplo anterior habamos creado una macro ( NuevoProyecto) que se activaba mediante la pulsacin de la tecla F3. Veamos su contenido: (CTRL+F2)CRATE(SPACEBAR)PROJECT(ENTER). Tal como se grab, en primer lugar detect la pulsacin de la combinacin de teclas CTRL+F2 para asegurar que escribamos en la ventana comando. A continuacin, el texto CREATE PROJECT separado por un espacio, y finalmente, la tecla INTRO.

Continua...

28

29

Laboratorio N 1
Objetivo: Creacin de tablas libres y dependientes, Bases de Datos, Relaciones
temporales y permanentes, Integridad Referencial. (El usuario debe tener Instalado en su PC. Visual FoxPro 5.0)
Nota: Sr. Usuario siga la secuencia paso a paso, mayormente todo ser va men .

1.- Cargando el Sistema desde Windows 98/95: Haga Click en Men: Inicio Programas Microsoft Visual FoxPro Microsoft Visual FoxPro 5.0

Carga completada (Esto debe estar observando en su pantalla), luego digite en la Ventana de Comandos: RUN MD C:\PRACTICA <Enter> Esta orden: Crea una Carpeta SET DEFA TO C:\PRACTICA <Enter> : Activa Carpeta por Defecto

2.- Creacin de una Tabla Libre Nos proponemos ahora, crear una tabla Libre, para lo cal Ud. Haga: Click en las siguiente opciones desde el Men Principal: Archivo Nuevo ( ) Tabla Nuevo Archivo
Ver la siguiente Figura (Pag. 2)

30

Viendo la pantalla de la derecha, Seleccione la carpeta donde desea guardar su tabla.


Guardar en: PRACTICA Nombre de la Tabla : CLIENTES Guardar como tipo: Tabla /DBF

Luego Click en Guardar

En las siguientes lneas tiene Ud. La estructura de la tabla Clientes. CLIENTES.DBF Nombre de Campo ClieCod ClieNom ClieApe ClieDir ClieRuc En esta pantalla es donde Ud. Va ha disear la estructura de la tabla. Adelante Ud. Nota:
No presione ENTER, si desea pasar, de una lnea a otra. VFP, puede interpretar, que ya, a terminado. Para este fin utilice la tecla TAB el MOUSE.

Tipo C C C C C

Ancho 3 40 40 40 8

Decimales

Descripcin
Cdigo del Cliente Nombre del Cliente Apellidos: Paterno y Materno Direccin del Cliente Nmero de RUC del Cliente

Despus de haber terminado, Haga Click en: ACEPTAR Aparecer la siguiente consulta:

31

Responda afirmativamente, haciendo Click en S. Luego, ingrese par de registros.


TABLAS DEPENDIENTES Las siguientes tablas, cuya estructura se muestra en la parte inferior, las vamos a crear como tablas dependientes. ARTICULO.DBF ArtCod ArtNom ArtPre ArtStock ArtFoto C C N N G 3 25 7 5 4 FACTURAS.DBF NumFac FecVen ArtCod ClieCod Cant PreVen C T C C N N 5 8 3 3 5 8

2 0

Para lo cual, debemos crear primero la BASE DE DATOS a quien va estar asociado, nuestras tablas.

Creacin de una Base de Datos


Crearemos nuestra Base de Datos, haciendo Click, en las siguientes opciones, iniciando desde el MENU PRINCIPAL. Click en: (En otras latitudes dicen Pinchar, en lugar de decir Click:) Archivo Nuevo (*) Base de Datos Nuevo Archivo Aparece el grfico de la derecha, Digitar en: Base de datos: Ventas Luego Click en: Guardar Luego aparecer el grfico de la parte inferior.

Creacin de una Tabla Dependiente


Para crear tablas dependientes, de nuestra Base de datos, existen muchas formas, pero una de ellas, es del siguiente modo: Llevamos el Mouse sobre el rea libre de la Base de Datos y luego, presionamos el Botn Derecho de la misma. En el men contextual, eligimos: Nueva Tabla, y otra vez Click en Nueva Tabla Asignar nombre de tabla: 32

ARTICULO Luego Click en: GUARDAR Observe el grfico inferior y disee la estructura de las tablas dependientes, las estructuras se encuentran en la pgina anterior.

Nota: Observe este grfico y la de Clientes ( Pgina 2), ambos son de creacin de estructuras, pero tienen una marcada diferencia.

Finalmente, cuando haya terminado a crear la estructura. Haga Click en opcin: Aceptar e introduzca los datos correspondientes ( dos registros como mnimo). Ahora, usando los pasos anteriores se le pide a Ud. Crear la tabla:

FACTURAS.DBF
Al final de un trabajo arduo, Ud. deber llegar a la siguiente presentacin:

33

En estos momentos tenemos Articulo y Facturas como se observa en el grfico anterior, pero al inicio habamos creado CLIENTES.DBF, como una tabla libre, el cual ahora desearamos que forme parte de nuestra Base de Datos de nombre Ventas, para tal fin haremos los siguientes pasos:

Conversin de Tabla Libre en Dependiente


Click en: Botn Derecho del Mouse, sobre el diseador de Base de Datos Agregar tabla Doble Click en Clientes (Opcin del Men Contextual)

Luego tendremos, como muestra la sgte. figura:

Relaciones:
Con la finalidad de manipular simultneamente, datos de las tres tablas, debemos relacionar estas. Para ello, no debemos olvidar, las dos condiciones principales para la existencia de Relaciones:

1.

Se debe garantizar existencia de Campos Claves Llaves, entre las tablas participantes (datos iguales coincidentes, del mismo tipo y aveces del mismo tamao. Pero no necesariamente con nombres iguales).

2.

Se debe indexar las tablas por su campo clave: Tablas hijo de tipo principal Candidato, y Tablas padre de tipo Normal (Aqu, sobre todos sus campos claves)

El autor duda de su comprensin. Por tanto, antes de continuar le interrumpe para hacerle la siguiente consulta:

34

Entre Clientes y Facturas. A qu campos de ellas, los podra considerar como campos Claves?

....................... y .........................., .............................................................................................

porqu?

En el cuadro inferior, escriba los campos claves de las tablas, asimismo identifique tablas hijo y Padre

Nombre Tabla

Nombre del Campo Clave

tipo de tabla (Padre Hijo)

Clientes.dbf

........................................

..................................

Articulo.dbf

.........................................

....................... ...........

Facturas.dbf

.........................................

..................................

INDEXACION:
Dada las reglas anteriores y cumpliendo exactamente, iniciamos a indexar las tablas. Como un ejemplo, de qu manera se realizan, se hace aqu una indexacin, para la tabla CLIENTES.

Nota: Para el resto de las tablas, el usuario, deber seguir la misma secuencia. Es aqu donde el usuario podr usar su razonamiento y su habilidad de comprensin. Caso con trario, puede volver a leer las lneas anteriores.

Indexacin de Clientes.dbf
1. y presionar el botn Derecho del Mouse 2. Modificar 3. Hacer Click en la ficha : ndices (ver fig. inferior) En el men Contextual, hacer Click sobre: Ubicar el puntero del Mouse sobre la tabla Clientes

35

3.

Digitar el nombre de la etiqueta (Tag) para nuestro archivo ndice (ver graf.). Asignamos por ejemplo el mismo nombre del campo (aunque no siempre debe ser as). Digitar:

Cliecod
4. Seleccionamos el tipo de ndice, sabemos que Clientes es tabla hijo, por tanto que sea:

Principal
5. El ficha de Expresin, podemos Digitar, la expresin el nombre del campo, por el cal deseamos, que nuestra sea indexada. Pero mucho mejor Es hacer Click en:
(Punto Punto) que se encuentra al costado de expresin.

...
6.

Llegamos a la ventana que se muestra en la siguiente pgina. Aqu usando: Funciones (matemticas, lgicas, fecha y Cadena), Variables y Campos, podemos preparar una expresin ndice, por muy complicadas que est e fuera. Nuestro caso Es sencillo. Hacemos Doble Click sobre el campo: de la lista de campos.

ClieCod
7.

Hacemos Click en: de esta ventana de expresiones. Habremos vuelto a la ventana anterior, en ella tambin hacemos Click en:

Aceptar
8.

36

Aceptar que se encuentra en esta ventana.

Venta de expresin

Finalmente Visual FoxPro, nos hace la siguiente consulta:

Podemos responder Afirmativamente.

De esta manera, habremos indexado, la tabla Clientes. Observe su pantalla. La tabla Clientes tiene un ndice que se muestra identificado por una llavecita, por ser de tipo principal.

37

Ahora, Ud. tiene la dura tarea de indexar, las otras tablas (Articulo y Facturas).

Al final del camino, como alumbrase una luz. Deber mostrar una figura, como se muestra en la parte derecha.

As, hemos terminado el tema de ndexaciones. Ahora nos toca hacer la Relacin.

(2)Ejecucin de la Relacin
Haga Click en:

Indice ClieCod de Clientes y arrastre hacia el ndice ClieCod de Facturas y libere el Mouse. (esto es arrastrar la etiqueta de ndice hijo hacia el padre). Haga similar con el ndice ArtCod de Articulo y arrastre

Luego debe una presentacin similar a la siguiente grfica

38

Bueno, hasta aqu parece que todo va bien.

Despus de tanto trabajar, no quisiramos que el resultado sea un desastre. Por ello, primero vamos a verificar los datos de los campos claves. Para ello haga doble Click en cada una de las tablas y con la ayuda del Mouse, puede mostrar igual que en pantalla inferior, las tablas abiertas. As asegurse que haya datos comunes iguales en los campos claves, tanto en la tabla padre e hijos (ver figura)

Finalmente para poder mostrar examinar la informacin de la Base de Datos (anteriormente preparados) vamos ha crear una Vista rpida. Es de notar que no podemos usar con toda elegancia el comando Browse, como lo hacamos ante una relacin temporal.

CREACION DE VISTA:
Las vistas como un archivo virtual, se crean ejecutando la siguiente secuencia:

Desde men principal.

Haga Click en:

Archivo Nuevo ( ) Vista Nuevo Archivo


Vista personalizada.

Men Principal Submen del men Archivo Tipo de archivo a crear

39

Ahora aparece una ventana, mostrando las tablas origen para la vista a preparar, haga: Doble Click en :

Facturas Clientes Articulo Cerrar


En la ficha Campos, seleccione, los siguientes campos, haciendo:

Tabla padre Luego las tablas hijo. Despus hacemos Click en :

Doble Click en: Facturas.Numfac Articulo.ArtPre Facturas.ArtCod Articulo.ArtStock Facturas.Cliecod Clientes.ClieNom Facturas.Cant Clientes.ClieApe Facturas.Preven Clientes.ClieDir Articulo.Nom

Debe mostrarse un grfico similar. Preparada la vista y seleccionada los campos, lo que esperamos es ejecutar, para ver el resultado.

40

Existen varias maneras, pero la ms fcil, es talvez, hacer click en el smbolo ( Admiracin)

) (Signo de

Que se encuentra en la Barra de herramientas. Otra forma es presionar Botn Derecho y ejecutar Consulta

Mas o menos as debe ser el resultado, si no observa ningn dato en esta ventana, debe haber fallado: bien en los campos claves , en la preparacin de ndices talvez en el arrastre de etiquetas. Puede volver a revisar y luego ejecutar la vista.

Fin del laboratorio

41

Laboratorio N 2
Objetivo: Creacin de Vistas y Consultas y comparacin entre ellas 1.- Cargando Visual FoxPro desde el Sistema Oper. Windows 98
Haga Click en Men: Inicio Programas Microsoft Visual FoxPro Microsoft Visual FoxPro 5.0

2.- Abrir Una Base de Datos Ventas


Hacer Click en:

Archivo Abrir
En Buscar en: seleccione la carpeta:

Practica.
En: Archivos de tipo: seleccione:

Base de Datos (*.dbc)


Luego haga doble Click en:

Ventas .

42

La siguiente pantalla, muestra la base de datos VENTAS, abierta.

Similar como hicimos en el primer laboratorio, vamos a crear vistas.

CREACION DE VISTA:

Haga Click en:

Archivo Nuevo ( ) Vista (ver grfico ) Nuevo Archivo

En la siguiente pantalla se observa, a seleccionar la clase del fuente para vista a crearse (tablas de vistas anteriores)

43

Asumiendo que se van ha crear vistas desde tablas, haga doble Click en: Facturas, Clientes Articulo. luego en: y

Finalmente haga Click en Cerrar

En la siguiente pgina, tenemos el generador de vistas. Ya conocida en el laboratorio anterior

44

Nota: Las tablas fuente (facturas, Clientes y Articulo), no deben repetirse, si eso no fuera el caso, borrar la tabla que se est cargado mas de una vez .

Debajo de las tablas, se podr observar las fichas: Campos, Combinacin, Filtro, ordenar por, Agrupar por, Criterio de actualizacin y Varios. En la Ficha Campos: Seleccionemos los siguientes campos:

Facturas.Numfac Articulo.ArtPre Facturas.ArtCod Articulo.ArtStock Facturas.Cliecod Clientes.ClieNom Facturas.Cant Clientes.ClieApe Facturas.Preven Clientes.ClieDir Articulo.Nom

Haciendo doble CLICK en la misma.

Para probar que todo va bien, haga Click en Botn EJECUTAR presione Botn Derecho y Ejecutar Consulta

( ! ) de la barra de herramientas.

Nota: Si no observa ningn dato, revisar datos del campo clave (en la BD) la relacin y los ndices

Si cree conveniente, antes de iniciar a usar las fichas, puede pedir al Asistente del Lab., una breve explicacin de la funcin de cada una de las fichas. Caso que Ud. Es un autodidacta, puede recurrir al material bibliogrfico. Ejm. Rubn Iglesias

Esta podra ser una breve explicacin:

Ficha: Combinacin.- Muestra el tipo de enlace entre tablas: Interna, Izquierda, Derecha y Full Filtro .- Especifica la condicin que debe cumplir los registros a visualizar.

Ordenar por .- Provee opcin de clasificar en forma ascendente descendente. Agrupar por .- Facilita crear grupos de datos Criterios de Actualizacin.datos Varios .- Si sern afectados todos los registros y los duplicados. ofrece las maneras como se debe actualizar nuestros

En la siguiente pgina, usaremos la ficha filtro, para realizar resolver las ciertas interrogantes.

45

Tales como: deseamos saber qu artculos han sido facturadas un da viernes a las 10 de la maana, cuantas ventas se transaron con precio inferior al costo de compra, etc.

Extraccin de Datos:
Hacemos Click en ficha FILTRO

En nombre de campo seleccionamos un campo preparamos una expresin. En Criterios asignamos el operador. En ejemplo completamos la condicin

Ejm:

Facturas.Cant

50

(ver grfico)

Esta condicin significa, que deseamos observar o mostrar aquellos Artculos facturados, cuya cantidad sea igual a 50 unidades. Para ver ejecutamos haciendo:

Click en botn EJECUTAR, y la siguiente sera un ejemplo:

Ahora, estimado usuario, despus de una amena explicacin, creo que est en la posibilidad

46

de resolver, las siguientes interrogantes, sobre nuestra base de datos.

Mostrar: Artculos facturados con las siguientes condiciones: Cuyo Nombre del artculo empiece con la letra A

1.

2.

Cuya fecha de venta sea un Viernes

3.

Cuya cantidad sea mayor que 30 y stock menor igual a 20

4.

Tenga hora de venta a las 10 de la maana

5.

Fecha de venta Viernes 13 a las 08 de la maana, ordenado por fecha.

6.

Fecha de venta 28 de Julio a las 10:30 AM (Es un buen peruano, que trabaj este da)

7.

Precio de Compra sea mayor que precio de venta (Remate)

2.- Retire todas las condiciones, y en la ficha agrupar por, elija Nombre del Cliente para agrupar, y Ejecute. Luego diga sus observaciones y conclusiones.

Terminada nuestra labor, hacemos click en botn cerrar de la ventana vista.

Ante consulta anterior, responda afirmativamente ( S) y luego asigne un nombre, para vista (ejm. Vista1). Finalmente haga Click en Aceptar.

CREACION DE CONSULTAS
Las consultas, a diferencia de vistas, son archivos reales.

Para crear consultas hacemos:

47

Click en: Archivo Nuevo ( ) Consulta Nuevo Archivo Similar que en Vistas, hacemos doble en: Facturas Clientes y Articulo Seleccione los siguientes campos:
Facturas.Numfac Clientes.ClieApe Facturas.FecVen Clientes.ClieDir Facturas.ArtCod Articulo.ArtNom Facturas.Cliecod Articulo.ArtPre Facturas.Cant Aritculo.ArtStock Facturas.PreVen Clientes.ClieNo m

Haga Click en Ejecutar de la Barra de herramientas, observe y cierre el previo.

Haga Click en Consulta del Men principal

Luego en opcin: Ver SQL

SELECT Facturas.numfac, Facturas.fecven, Facturas.cant, Facturas.preven,; Clientes.clienom, Clientes.clieape, Clientes.cliedir, Clientes.clieruc,; Articulo.artnom, Articulo.artpre, Articulo.artstock; FROM ventas!clientes INNER JOIN ventas!facturas; INNER JOIN ventas!articulo ;

48

ON Articulo.artcod = Facturas.artcod ; ON Clientes.cliecod = Facturas.cliecod

Haga Click en Consulta del men principal

Click en Opcin: Destino de Consulta

Observamos que por defecto est seleccionado destino Examinar para la consulta.

1.

Seleccionamos Cursor

Asignamos un nombre (ejm): UNI Click en Aceptar, luego Click en Ejecutar Lleg a observar algo?, Continue

2.

Haga Click en Men: Consulta Destino de la Consulta, y Seleccione Tabla, en esta oportunidad.

Asigne nombre (ejm): CEPS Click en Aceptar Click en Ejecutar Esta vez s observ, algo?. Talvez tu respuesta es NADA.

49

En verdad tiene razn, la respuesta es que, en la primera vez ha creado una tabla temporal (Cursor) y ha enviado a la memoria del computador. Y la segunda ha creado una tabla, que por su puesto debe haberse guardado en el disco duro, en la carpeta por defecto de su computador.

Como comprobar lo que se dice? Paso 1.- Haga Click el men Ventana (Men principal), luego en Sesin de Datos. Vea si existe tablas UNI y CEPS cargadas en diferentes reas. (justificada su existencia)

Paso 2.- Presione la combinacin de teclas: Ctrl+F2 Digite: DIR y presione Enter Tenga Presionado simultneamente las teclas: Ctrl+Shift+Alt (Debe estar observando la existencia del CEPS.DBF) Interrogante: No se observa UNI que sucede? que es realmente UNI?

3.

Consulta, Destino de la Consulta, Pantalla (Observando datos en toda la pantalla) Aceptar Ejecutar Ctrl+Shift+Alt

4.

Consulta, Destino de la Consulta, Informe (Generando Informes va Consulta)

Haga Click en Barra de Asistente ( a la derecha de: Abrir informe.. ver grfico anterior)

Se observa una pantalla con tres opciones, ubique el

50

cursor sobre: Asistente para Informes, y haga Click en: Aceptar. Tendremos la siguiente figura.

Seleccione todos los campos de: Articulo, haciendo Click en doble Flecha, luego click en: Siguiente

Seleccione el estilo de informe que deseara preparar y luego haga Click en: Siguiente

Puede cambiar si gusta: Nmero de Columnas, distribucin de campos y Orientacin del papel, luego haga Click en: Siguiente Puede Ordenar los artculos, ejm: por nombres, para ello haga doble Click en ArtNom, Ascendente y Click en: Siguiente Click en: Presentacin Preliminar

Eh aqu algo de presentacin preliminar de un reporte

51

5. 6.

Por ahora hasta aqu el Laboratorio, si el tiempo ya no lo permite. Archivo, Quit

Fin del Laboratorio 2

Gracias...

Laboratorio No 03
Objetivo: Crear un informe personalizado, simples y con quiebres grupos.

52

Abrir Base de Datos ventas

0.

Click en: Archivo, Abrir, Tipo de archivo: Base de Datos, luego doble Click en Ventas .

Creacin de Vistas
Deseamos preparar, tres informes, para lo cual vamos ha crear tres vistas:

1.

Crear una vista con los siguientes campos: Facturas.numfac Facturas.fecven Facturas.cant Facturas.preven Clientes.clienom Clientes.clieape Clientes.cliedir Clientes.clieruc Articulo.artnom Articulo.artpre Articulo.artstock;

2.

Ejecutar y guardar presionando Ctrl+W, asigne nombre Vista01, luego haga Click en Aceptar.

3.

Cree otra vista, esta vez agregar el campo Facturas.ClieCod a la lista anterior. Ingrese a la ficha: Ordenar por, haga doble Click en Cliecod, Ejecutar y Guardar (presionando Ctrl+W ) con el nombre Vista02

4.

Crear otra Vista usando los mismos campos anteriores, pero esta vez ordenar por los campos: FecVen, ClieCod y NumFac (para ello haga primero Doble Click en: FecVen, luego en ClieCod y finalmente enNumFac) y guarde como Vista03.

53

Aqu se observan las tres vistas, que nos servirn para preparar nuestros informes.

CREACION DE INFORMES
Para crear nuestro informes, iniciamos haciendo:

Click en: 1. 2. 3. 4. Archivo Nuevo ( ) Informe Nuevo Archivo.

En la siguiente pantalla se muestra el diseador de informes, las bandas y el men contextual

Diseador de Informes compuesta de tres Bandas (ver grfico).

Necesitamos indicar el origen de datos para nuestro informe, para lo cual vamos damos la secuencia a seguir:

1.

En el rea del diseador, presione Botn Derecho

2.

En el men contextual, Elija: Entorno de datos

3.

Dentro del Entorno de datos, Presione Botn Derecho

54

4.

En el men contextual, Elija: Agregar

5.

Seleccione, opcin: ( )Vistas (ver grfico)

6.

Haga Doble Click en Vista01

7.

Luego, Click en: Cerrar

Usando el Mouse acomode el diseador de informes y el entorno de datos, de tal como que quede, tal como se muestra en la figura, de la siguiente pgina.

1.

Si no tiene la barra de controles de informe Haga Click en: Men Ver Barra de Herramientas... Marcar como en el grfico de parte derecha. Luego, Click en: Aceptar

55

Nuevamente acomode las figuras, por ejm. puede ser como observa en la parte inferior.

Luego. Vamos a iniciar a preparar el informe. Para lo cual, debemos tener presente el resultado que deseamos obtener. En la siguiente pgina se muestra un previo de lo que queremos conseguir diseando un informe, con nuestro diseador y que imprima el modelo propues to.

56

Para poder obtener este resultado. Usando los botones del control de informes, prepare Ud. un diseador de informes del siguiente modelo.

1. 2. 3.

Si desea Digitar un texto en el diseador de informes, haga Click sobre el botn que tiene la letra A del control de Informes y en seguida haga Click en el lugar donde desea Digitar. Si desea agregar, una funcin variable, haga click en botn ab del control de informes. Luego sobre el diseador. Si desea agregar un campo, lo puede arrastrar desde la vista, qu e se encuentra a la derecha, del diseador.

Nota: Nombre de la Empresa, Descripcin, Precio, Nota .. y Pag. Son etiquetas, mientras Date() es funcin, _Pageno es una variable. Finalmente ArtNom y ArtPre son campos que se encuentran en el Entorno de Datos.

Para ver un Previo:

Haga Click en el Botn Derecho, luego seleccione: Preliminar (observar un previo)

Lo anterior tambin lo puede realizar haciendo Click en botn de Hoja y Lupa de la barra de herramientas. Esta vez el botn del signo de Admiracin Es para Imprimir. Puede ir observando su avance, cada vez que crea necesario. Si desea mejorar la presentacin haga click en el objeto, luego Click en formato y fuente. Cambie y mejore su presentacin

Para prevenir prdida de archivos, puede ir guardando el Informe con el Nombre: Informe1 Para ello haga click en Men:: Archivo Guardar.

Informe No 2.- debemos preparar otro informe, similar al que se muestra en la parte inferior.

57

Observe que est agrupado por Clientes, ordenado por descripcin y con un sub-total por

clientes.

Para preparar nuestro segundo informe, podemos re-utilizar diseo del informe anterior. Guardando la primera y luego guardando con nuevo nombre. Para ello utilice Archivo Guardar como Asigne nombre informe2

luego puede modificar sobre ella.

Pasos: Modificar Lista de Precios por Informe de ventas

Creacin de Grupo quiebre: Click en Men: Informe Agrupar datos

58

Sobre ventana de agrupar datos , en el rea en blanco de: expresiones de agrupacin, podemos Digitar la expresin del quiebre, pero hacemos Click en:

...

(Punto punto )

Luego haga, Doble click sobre: (ver grfico)

Vista2.ClieCod

Finalmente Click en : Aceptar

El diseador que logre, nuestro propsito ser similar al grfico siguiente:

Observe que el monto, subtotal y total son expresiones como (Cantidad) * (Precio de Venta) (Vista2.Cant*Vista2.PreVen) (ver grfico)

59

Para que Subtotal y total, muestre la suma, hacemos:


Click Derecho sobre el objeto que representa la expresin (Cant*Preven), luego click, en la opcin: Propiedades.

Luego en la ventana que se presente, mostrar un grupo de opciones, seleccionamos la opcin Clculos, haciendo Click sobre ella.

Finalmente en el grfico de la parte derecha, seleccionamos opcin SUMA

Para terminar, hacemos click en: Aceptar. En esta pantalla y en la otra

De esta manera, habremos creado el segundo reporte.

Reporte con mas un Grupo

60

El siguiente grfico, muestra un Modelo, de un reporte con ms de un grupo. Esta a grupado por Mes, clientes y Nmero de factura. Tiene un sub-total de cada factura , mes y por pgina. Asimismo el nmero de factura se imprime a la altura de los otros datos y no se repite.

El modelo de Informe a prepararse.

El diseador de Informes, que genera este tipo de reportes, se encuentra en la siguiente pgina.

1.

Haga Click en el Botn Ver Clases del Control de Formularios ( Esta se encuentra al lado derecho de la Flecha)

2. Elija Agregar

61

Modelo de diseador

Suerte en preparar el informe propuesto:

Fin del laboratorio.

62

Laboratorio No 4
Objetivo: Sentar las bases de la Programacin Orientada a Objetos, crear formularios y codificar.

Formulario: Una clase contenedora. Una coleccin de una o ms pginas que se c omporta como una ventana o un cuadro de dilogo estndar. Un formulario contiene controles para mostrar y modificar datos. Los formularios pueden estar contenidos dentro de un conjunto de formularios.

Creando un Formulario:

Click en: Archivo Nuevo ( ) Formulario Nuevo archivo

63

Diseador de formulario

Nota: para hacer diseo en formulario, tambin utilizaremos los controles, tal como se observan en la pantalla anterior. Similar como lo haca en Informes, hacer Click en control A, luego hacer Click en el formulario. De esta manera estar creando un Label (Etiqueta), para Text lo har con ab, etc.

En esta oportunidad vamos a disear, un formulario que nos pida Digitar un texto y que esta al ser aceptado, se refleje como un nuevo mensaje en el ttulo del formulario.

Pasos a seguir:

1. 2. 3. 4. 5.

Haga Click en control A Lleve el Mouse sobre el formulario y haga click en ella Haga Clicke en Control ab Lleve el Mouse sobre alguna ubicacin del formulario, donde crea sea til y haga Click en ella. Supongo que ya entendi, como funciona esto. Complete lo resto, hasta que su pantalla presente similar al siguiente grfico.

64

El usuario a de observar, que en el formulario existen cuatro objetos

Cada objeto del formulario anterior, lleva un nombre por defecto. Pero nosotros como buenos programadores, las podemos cambiar a nuestra voluntad. Y eso los vamos a hacer.

6. 7. 8. 9.

Presione Botn Derecho del Mouse, sobre Label1, y luego haga Click en Propiedades. En la lista de propiedades, ubique propiedad NAME y haga click en ella. Al costado del smbolo de funcin fx, aparece label1 en azul, Digite obre ella lblmensage. Haga click en Text1, esta vez tambin vuelve a aparecer, el nombre inicial, cambie por Txtmensaje.

10. Asigne Ud. los nombres a los objetos que faltan: Comand1 como CmdAceptar y Command2 por CmdSalir Ahora vamos a cambiar la etiqueta (titulo) de los objetos (recuerde text no lo tiene), los pasos son los mismos, esta vez la propiedad que satisface nuestra necesidad es: CAPTION

65

11.

Aqu se dan un listado de las etiquetas para los Objetos (reconocidos por sus nuevos nombres). Etiqueta Objeto Digite un Texto LblMensaje Aceptar CmdAceptar Salir CmdSalir

Hasta aqu Ud. ha aprendido, cambiar nombre y ttulo del Objeto.

12. Aqu se muestra un ejemplo a donde debemos llegar, cuando nuestro formulario ya est completamente preparado y ejecutndose:

El ttulo actual del formulario se observa como: Universidad Nacional de Ingeniera, pero ya

66

hemos digitado en Txtmensaje, el mensa je: Centro de Extensin y Proyeccin S ocial. VFP, para cambiar el ttulo, est solo a la espera que el usuario haga Click en Aceptar presione la tecla: Enter. Pero si el usuario desea abandonar el sistema, puede presionar ES C. hacer click en S alir. Asimismo al acercar el Mouse sobre cualquiera de los botones comando, esta debe hacer mostrar un mensaje de ayuda, explicando lo que debe suceder si hace Click sobre ella.

Para que VFP, haga todo lo que hemos echo mencin en la parte anterior, haga los si guientes pasos:

13. S eleccione el Objeto CmdAceptar (Aceptar) y cambie las propiedades: DEFAULT

por

.T. (Verdadero)

enTOOL TIP TEXT, Digite el texto: Click Aqu Actualiza el Ttulo del Formulario 14. S imilar en el Objeto CmdS alir (S alir): CANCEL por en

.T. (Verdadero)

TOOL TIP TEXT, Digite el texto: Termina la ejecucin del sistema.

15. Haga Click en ttulo del Formulario, luego en la lista de propiedades busque: SHOW TIPS. Cambie por .T. Verdadero ( Show Tips pertenece al formulario, y n a otro
objeto cualquiera)

Tiempo de Ejecucin:
16. Haga doble Click en Aceptar, luego Digite tal como observa en la figura:

Presione Ctrl+W, para Salir y guardar

17. Similar que en la parte anterior haga sobre el objeto Salir, esta vez Digite: Release Thisform 18. Ejecutar el Formulario: Haga Click en botn Ejecutar ( ! ),

67

19. A la consulta anterior, responda S y guarde. 20. Debe ejecutarse sin problemas, caso contrario consulte con su asistente.

PARTE 2
Vamos a preparar un formulario aplicativo, a la Base de Datos. Por ejemplo: hacer mantenimiento de la tabla Articulo.dbf.

Pasos a seguir:
3. Abrir la Base de Datos Archivo Abrir Base de Datos: Ventas

4.

Crear un Nuevo Formulario Archivo Nuevo ( ) Formulario Nuevo Archivo

5. 6. 7. 8.

Presionar: Botn Derecho, sobre el rea del Formulario Click en: Entorno de datos (del Men contextual) Doble Click en Articulo.dbf Usando Mouse, puede presentar similar ala figura.

68

9.

Podemos crear en nuestro formulario, los objetos: Etiquetas, Texts y Commands, luego con la propiedad: Control Source direccionar a los campos de la tabla. Pero esta vez, vamos a hacer uno ms simple:

10. Haga Click sobre la palabra Campos de Articulo y arrastre hacia el formulario y suelte.

As debe de observarse, los campos

11. Haga Click en cada objeto y re-ubicar los objetos, asimismo cambie el ttulo de las etiquetas. ( Observe el siguiente grfico)

69

(Aqu debe llegar, usando propiedad: Caption)

12. Haga Click en el Botn Ver Clases del Control de Formularios ( Esta se encuentra al lado derecho de la Flecha)

13. Elija Agregar


14. buscar la Carpeta WIZARDS , que se encuentra dentro de la carpeta del Visual FoxPro.

15. Haga Doble Click en, objeto Wizstyle.

16. En el siguiente grfico, se observa una gama de botones de clases. Ubique aquel botn de nombre PICBTNS (Para ello utilizar los Tool Tip Text de cada botn. En el siguiente grfico, este botn se encuentra en la quinta fila y cuarta columna)

70

17. Haga Click sobre el formulario debajo de Stock 18. Vuelva a acomodar similar al siguiente grfico .

19. Guardar (asigne el nombre que desee) 20. Ejecutar

21. Suerte Pruebe.

71

INSTRUCCIONES DE PROGRAMACIN.
El Foxpro en modo programacin, es la forma como se puede almacenar un conjunto de rdenes en un archivo llamado programa, el cual posteriormente ser ejecutado.
Orden MODIFY COMMAND

Propsito : Permite crear y editar un programa en Foxpro (con extensin .PRG), o tambin cualquier archivo de texto. Sintaxis : MODIFY COMMAND [D:][CAMINO]NOMBRE[.EXT] Si la unidad y el camino no son especificados, se asumir la unidad y camino por defecto.cuando se usa Modify Command, Foxpro busca el archivo indicado; si el archivo no existe entonces se crea uno, de lo contrario ste ser editado. Cada vez que un archivo es grabado la versin previa es grabado en un archivo de seguridad con extensin .BAK. Al crear un programa, para grabarlo presionaremos las teclas [Ctrl]+[W]. Si desea salir sin grabar presionaremos la tecla [Esc].
Orden DO

Propsito : Permite ejecutar un programa anteriormente creado. Sintaxis : DO [D:][CAMINO]NOMBRE[.EXT]


Orden TYPE

Propsito : Permite visualizar el contenido de un archivo programa. Sintaxis: TYPE[D:][CAMINO]NOMBRE[.EXT]


ESTRUCTURA DE UN PROGRAMA

Prembulo Contiene informacion tal como: el nombre del programa, que hace, quin lo escribi, la fecha y una breve historia sobre su edicin. Ejemplo: *-------------------------------------------------------------------- ------------------* *PROGRAMA : STOCK.PRG *DESCRIPCION: CONTROL DE STOCK *AUTOR : LUIS LOZADA PORTAL *FECHA : 05 DE NOVIEMBRE DE 1998 *--------------------------------------------------------------------------------------* Area de Seteos Define los comandos SET que el programa necesita para trabajar eficientemente. En esta parte se puede especificar la relaciones entre las bases de datos, activar los archivos indexados as como inicializacin de las variables de memoria, etc.

72

Ejemplo: SET STATUS off SET HEADING off USE personal ORDER codi NUM=0 Cuerpo de Programa Contiene los comandos que hacen trabajar al programa. Ejemplo: LOCATE FOR apel="VARGAS" DISPLAY nomb,apel,sbas Seccin de Cierre Aqu se cierran las bases de datos y se restablecen los valores de los comandos SET. Ejemplo: USE SET STATUS on SET HEADING on RETURN ORDENES DE ENTORNO Para modificar el entorno de Foxpro y ajustarlo a nuestras necesidades, debemos usar las rdenes Sets denominadas tambin Seteos.La opcin por defecto est en mayscula.
Sintaxis Propsito

SET STATUS on/OFF

Activa la lnea de estado.

SET HEADING on/off

Muestra el nombre de los campos cuando se usa las rdenes LIST o DISPLAY.

SET TALK on/off

Muestra los mensajes interactivos que retornan rdenes como Replace, Index, Copy, Calculate, Locate, etc.

SET BELL on/off

Emite un sonido cuando el cursor alcanza el final de un campo.

SET SCOREBOARD on/off

Muestra el estado de las teclas CapsLock, Ins y Numlock en la fila cero cuando se desactiva la lnea de estado.

VARIBLES DE MEMORIA

Definicin : Son espacios de memoria que permiten almacenar datos temporalmente fuera de la estructura de la Base de Datos. Estos espacios de memoria poseen un nombre que los identifica y quedan definidos segn el dato que almacenan. CREACION DE VARIABLES Ejemplos:
CLASE="FOXPRO" NUM=0 Variable cuyo nombre es CLASE de tipo carcter y cuyo contenido es "FOXPRO". Variable cuyo nombre es NUM de tipo numrica y

73

FEC={10/19/ 78} VAR=.T.

cuyo contenido es 0. Variable cuyo nombre es FEC de tipo fecha y almacena la fecha 19 de Octubre de 1978. Variable cuyo nombre es VAR de tipo lgico con un estado de verdad .T..

Orden DISPLAY MEMORY

Propsito : Lista las variables de memoria. Sintaxis : DISPLAY MEMORY [TO PRINTER] LIST MEMORY[TO PRINTER] Se debe evitar que el nombre de una variable sea igual al nombre de un campo o de un comando resrevado por FOXPRO.
Orden STORE

Propsito : Permite asignar un dato a un conjunto de variables. Sintaxis: STORE [DATO] TO [LISTA DE VARIABLES] Ejemplo: Si desea inicializar con 0 a las variables N1, N2 y N3, procederamos de la siguiente manera: N1=0 N2=0 N3=0 Mejor hubiera sido inicializar simultneamente el 0 a stas variables, as: STORE 0 TO N1, N2, N3
Orden WAIT

Propsito : Permite detener la ejecucin de un programa y espera el ingreso de informacin proveniente del teclado. Sintaxis : WAIT [expresin] [WINDOW][TIMEOUT(expN)] Donde: expresin : Es un mensaje ilustrativo para el usuario. Si se omite, FOXPRO enviar el mensaje por defecto, que es: "Press any key to continue..." WINDOW : Se utiliza para enviar el mensaje dentro de una ventana de mensajes, en la esquina superior derecha. TIMEOUT expn : Es el tiempo en segundos que estar la orden WAIT sin que se reciba informacin.
Ejemplos: 1.Para detener la ejecucin de un programa, ingresemos la orden WAIT en cualquier parte del programa, as: WAIT el programa cuando ejecute la orden WAIT enviar el mensaje por defecto: Press any key to continue...

2.Si sedesa especificar un mensaje diferente con la orden WAIT, como por ejemplo: WAIT "Presione ENTER para seguir..." el programa mostrar exactamente dicho mensaje al momento de ejecutar

74

dicha orden, as: Presione ENTER para seguir...


Orden @...SAY...GET

Propsito : Permite editar una variable o un campo en una posicin de la pantalla, permitiendo su modificacin. Para activar los GETS definidos previamente se debe hacer uso del comando READ. Sintaxis : @F,C[SAY "mensaje"][GET(variable|campo)][PICTURE(formato)] Donde: F : Es el nmero de fila en le rango 0 - 24. C : Es el nmero de columna en le rango 0 - 79.

mensaje: Es un mensaje que ayuda al usuario a ingresar el dato desde el teclado. variable|campo : Variable o campo a editar. Picture: Permite establecer un formato de entrada o de salida para los datos, adems de restringir el tipo de dato que puede ser ingresado a un campo o variable de memoria. Formato : Especifica un formato mediante el cual se deben ingresar los datos. El formato puede consistir de una funcin o una mscara y debe estar delimitada por comillas.
Orden READ

Propsito : Permite activar uno o ms @...SAY...GET. Sintaxis : READ


Formato para Capturar o Presentar Datos

Es la manera como se pueden ingresar o presentar los datos en pantalla usando la orden @...SAY...GET. Si se utiliza PICTURE (Mscara) se llama Mscara. Si se utiliza PICTURE (Funcin) se llama Funcin.

Mscara
A N ! 9

Descripcin
Permite el ingreso de slo letras para datos carcter (cada A es para representar un slo caracter). Permite el ingreso slo de letras y dgitos para datos tipo carcter. Convierte la minscula a mayscula (cada smbolo es para un carcter). Permite el ingreso de slo dgitos para datos tipo carcter y dgitos y signos para datos nmericos.

75

Funcin
A ! E Z M

Descripcin
Slo carcteres de tipo alfabtico.

Convertir a maysculas todos los carcters alfabticos. Formato de fecha Europeo (dd/mm/aa). Sustituye con espacios un campo con valor igual a 0 (cero) Permite la creacin de una lista de opciones mltiples, las mismas que se deben separar por comas.

Una funcin se usa anteponindole el smbolo @ Clausula COLOR en @...SAY Sintaxis: @F,C SAY "Expresin" COLOR Donde:
Expresin: Puede ser una combinacin de campos, variables de memoria, operadores, funciones, mensajes, etc. Si se necesita mostrar en pantalla mas de una expresin, se deber convertir todas las expresiones a carcter y luego conctenarlas. De nmero a carcter usando STR( ) o de fecha a carcter usando DTOC( ) o DTOS( ). COLOR (color): Se usa para reportar los datos de una expresin con un color diferente al estndar.

COLOR

PROPOSITO

76

I U X W N W/N B BG G GR GR+ R RB * +

Video Inverso Subrayado Vaco (usado para el ingreso de claves) Blanco Negro Video Normal Azul Cyan Verde Caf Amarillo Rojo Magenta Parpadeante Alta intensidad

Los Smbolos+ o * se deben utilizar despus de especificar el color para la expresin, as: Color W/N+

Orden @...BOX
Propsito : Permite dibujar un recuadro en la pantalla. Sintaxis : @f1,c1,f2,c2 BOX [(expresion)] Donde: f1, c1 f2,c2

: Coordenadas del primer punto ubicado en la esquina superior izquierda. : Coordenadas del segundo punto ubicado en la esquina inferior derecha. : Especifica los caracteres que formarn el cuadro.

Expresin

77

Cuando no se especifica la expresin despus de Box, se crea un recuadro de lnea simple.

Orden @...CLEAR
Propsito : Permite borrar un sector de la pantalla. Sintaxis : @f1,c1 [CLEAR( TO f2,c2)]

Orden @...FILL
Propsito : Permite cambiar los colores de una detrminada rea de la pantalla. Sintaxis : @f1,c1 FILL TO f2,c2 [COLOR(color)]

Ejemplo: 1. @5,10 FILL TO 15,40 COLOR R


ESTRUCTURAS CONDICIONALES

Una estructura condicional es aquella que al evaluar una condicin realiza una determinada accin.
Orden IF...ENDIF
Propsito : Permite ejecutar una seccin del programa evaluando una condicin. Sintaxis 1: IF Bloque de Ordenes ENDIF Sintaxis 2: IF Bloque de Ordenes1 ELSE Bloque de Ordenes2 ENDIF IF ANIDADOS Se denomina as cuando se usa simultaneamente varias estructuras condicionales IF. Sintaxis 3: IF Bloque de Ordenes1 ELSE IF Bloque de Ordenes2 ELSE Bloque de Ordenes3 ENDIF ENDIF Funcin FOUND( )

Propsito: Un valor verdaero, si la bsqueda con SEEK tuvo xito, en caso contrario reporta falso. Sintaxis: Found ( )

78

Ejemplo: Hacer un Programa que permita eliminar registros de la base de datos "Alumnos"
US E Alumnos Order codi Co d=spac(6) @5 ,10 SAY "Ingrese Codigo:" GET cod PICT "@!AAAA99" re ad S E EK cod I F FOUND( ) De lete P a ck E L SE @1 0,10 SAY "Codigo No Registrado" E NDIF WA I T US E ... * Tu vo xito la bsqueda*

Funcin SEEK( )

Propsito: Retorna verdadero si la bsqueda. con SEEK fue exitosa, caso contrario reportar falso. Sintaxis: SEEK ( ) Ejemplo: Hacer un Programa que permita ingresar registros de la base de datos "Alumnos"
US E Alumnos Order codi Co d=spac(6) @5 ,10 SAY "Ingrese Codigo:" GET cod PICT "@!AAAA99" re ad I F SEEK (cod) E L SE : P e dir todos los datos : A P PEND BLANK RE PLACE : E NDIF * Tu vo xito la bsqueda* @1 0,10 SAY "codigo ya Existente"

Orden DO WHILE
Propsito : Permite la ejecucin de un grupo de ordenes mientras que la condicin sea cierta . Sintaxis : DO WHILE : : [LOOP] [EXIT] ENDDO Donde: LOOP

: Regresa a evaluar la condicin .

79

EXIT

: Direcciona la salida con el DO WHILE hacia la siguiente orden que siga a ENDDO.

Bucle Infinito DO WHILE .T. ?"FOX" ENDDO Ingresa en pantalla la palabra FOX infinidad de veces. Para detener sta impresin presionar la tecla ESC. Bucle Infinito X=0 DO WHILE X<3 X=X+1 ?"FOX" ENDDO Imprimir en pantalla la palabra FOX tres veces. Ejemplos: Hacer un programa que permita consultar registros de la B/D "Alumnos"
USE ALUMNOS ORDER CODI OP="S" DO WHILE OP="S" CLEAR COD=SPAC(6) @5,10 SAY "INGRESE CODIGO:" GET COD READ IF SEEK (COD) DISPLAY ELSE @10,10 SAY "CODIGO NO REGISTRADO" ENDIF OPI=" " @20,20 SAY "DESEA CONTINUAR [S/N]:" GET OPI PICT "@M S,N" READ IF OPI="S" LOOP ELSE EXIT ENDIF ENDDO

Orden FOR...ENDFOR
Propsito : Permite ejecutar un bloque de rdenes un nmero especificado de veces . Sintaxis : FOR Var=inicio TO final [STEP incremento] : : [EXIT] [LOOP] ENDFOR | NEXT Donde: Var : Variable de memoria a analizar. inicio final : Es un valor de inicio para el contador. : Es el valor final del contador. Cuando var sea igual o mayor que final, el bucle se

80

detendr y pasar el

control a la siguiente lnea despus de ENDFOR.

incremento : Es la cantidad en la que se incrementar el contador. Si no se indica, el valor por defecto para el incremento es 1.

Orden DO CASE...ENDCASE
Propsito : Permite evaluar mltiples condiciones . Sintaxis : DO CASE CASE CASE : [OTHERWISE ] ENDCASE

DO CASE es una estructura condicional mltiple y excluyente, en donde slo una de las condiciones se podr ejecutar. En caso de no cumplirse ninguna condicin y se ha usado OTHERWISE se ejecutarn todas las rdenes comprendidas entre OTHERWISE y ENDCASE, caso contrario se ejecutar la orden que sigue a ENDCASE.
Funcin INKEY( )
Propsito : Se usa sta funcin para obtener el valor nmerico correspondiente a una tecla. Sintaxis : INKEY ( [ExpN] )

Ejemplo: 1. Para detener la ejcucin de un programa se debe agregar la siguiente lnea: : : =inkey(0) && se asigna al vaco : para continuar con el programa presionar cualquier tecla. TECLA
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 INSERT HOME CODIGO 28 -1 -2 -3 -4 -5 -6 -7 -8 -9 133 134 22 1 TECLA DEL END PgDn PgUp CODIGO 7 6 3 18 4 19 24 5 27 13 129 9 32 15

ESC ENTER BACKSP TAB Barra Espac TAB

81

Anda mungkin juga menyukai