You are on page 1of 36

I.

Introduccin:

FoxPro es un potente gestor de base de datos relacionales y un eficaz entorno de programacin que permite desarrollar todo tipo de aplicaciones en diferentes plataformas y ordenadores. FoxPro dispone de diferentes opciones dependiendo de donde se vaya a instalar, y de una multiplataforma que le permite pasar aplicaciones y base de datos de un sistema operativo a otro sin necesidad de modificar las aplicaciones, ni de programas especiales de conversin. El xito de su utilizacin se basa, principalmente, en su rapidez de ejecucin y su enorme flexibilidad, potencia de programacin y la posibilidad de realizar aplicaciones con un SO que se ejecutar en otro sistema distinto. FoxPro comprende: Un lenguaje de programacin fcil de aprender y utilizar. Ms de 600 comandos y funciones que le permitir manejar ficheros, crear pantallas, mens, informes y etiquetas. Un generador automtico de aplicaciones que le permitirn realizar programas sin necesidad de ser programador. Un programa de documentacin de aplicaciones. Un compilador que le indicar los errores de programacin. Una interfaz de ventanas avanzada para sus aplicaciones. Un programa de ayuda permanente que le permitir resolver cualquier duda que le aparezca. Un programa tutorial que le mostrar cmo utilizar FoxPro.

Caractersticas de los ficheros de FoxPro: Todos los ficheros de datos tienen la extensin .DBF Todos los ficheros memo tienen la extensin .FPT Todos los ficheros ndice tienen la extensin .IDX, aunque FoxPro acepta ficheros ndice creado en otras aplicaciones con la extensin .NDX El nmero de campos mximo es de 255.

Cada campo puede ser de 5 tipos diferentes o Caracteres: Lmite 254 caracteres. o Numrico: Lmite 20 dgitos o 16 de precisin. o Lgicos: Contendr T (True) y F (False). o Fecha: Siempre dispone de 8 caracteres de longitud. o Memo: Lmite 64k por memo. Los campos memo se almacenan en un fichero aparte, con el mismo nombre que el fichero que los contiene, pero con la extensin .FPT. Cada campo memo ocupa 10 bytes en el fichero, en los cuales est la direccin del fichero memo. o Float: Lmite 20 dgitos de precisin.

II.
-

Sentencias de creacin, edicin y visualizacin de datos:


Diseo de la BD

Los trminos "base de datos" y "tabla" no son sinnimos en Visual FoxPro. El trmino base de datos (archivo .dbc) se refiere a una base de datos relacional que almacena informacin sobre una o ms tablas (archivos .dbf) o vistas.

Imagen 1. Diseo de las tablas relacionadas Al disear una base de datos, en primer lugar debe dividir la informacin que desea almacenar como temas distintos y despus indicar a Visual FoxPro cmo se relacionan estos temas para que pueda recuperar la informacin correcta cuando sea necesario.

La Base de Datos
Creacin

Al crear una base de datos, se renen ciertas tablas en un conjunto y se aprovechan las caractersticas del diccionario de datos. Un diccionario de datos proporciona mayor flexibilidad al disear y modificar la base de datos y libera la carga de tener que escribir cdigo para crear validacin a nivel de campos y a nivel de filas o para asegurar la unicidad de valores en campos de clave principal. El diccionario de datos de Visual FoxPro le permite crear o especificar: Claves principales y candidatas. Relaciones persistentes entre tablas de bases de datos. Nombres largos para tablas y campos. Ttulos de campos que aparecen como encabezados en ventanas Examinar y en columnas de cuadrcula. Valores predeterminados en campos. La clase de control predeterminada usada en formularios. Mscaras de entrada y formatos de presentacin para campos. Reglas a nivel de campo y reglas a nivel de registro. Desencadenantes. Procedimientos almacenados. Conexiones a orgenes de datos remotos. Vistas locales y remotas. Comentarios para cada campo, tabla y base de datos.

Antes de llevar a cabo la creacin de una tabla conviene planificar: Nombre de la tabla. Nombre de cada columna. Tipo y tamao de los datos almacenados en cada columna. Informacin adicional, restricciones, etc.

Ejemplo:
CREATE DATABASE Nombre_BaseDatos

Al crear una nueva base de datos, sta estar vaca, pues no contendr tablas asociadas ni ningn otro objeto. Al agregar una tabla se crean vnculos entre el archivo de tabla y el contenedor de la base de datos. La informacin de vnculo sobre una tabla almacenada en la base de datos es un vnculo posterior. La informacin de vnculo almacenada en la tabla sobre el contenedor de base de datos es el vnculo anterior.

Para trabajar con una base de datos y sus objetos mediante programacin, puede utilizar los comandos y funciones siguientes.

Eliminar una base de datos


Para eliminar del disco una base de datos puede utilizar el comando DELETE DATABASE. Por ejemplo, el cdigo siguiente elimina la base de datos ejemplo:
DELETE DATABASE simple Aviso: El

comando DELETE DATABASE no elimina del disco las tablas asociadas a la base de datos, sino que las convierte en tablas libres. Si desea eliminar del disco una base de datos y tambin todas sus tablas asociadas, utilice la clusula DELETETABLES con el comando DELETE DATABASE.

Cerrar una base de datos


Puede cerrar una base de datos abierta mediante el Administrador de proyectos o mediante el comando CLOSE DATABASE.
SET DATABASE TO Nombre_BaseDatos CLOSE DATABASE

Las Tablas
- Agregar Tablas a la BD La sintaxis es la siguiente:
OPEN DATABASE Nombre_BaseDatos ADD TABLE Nombre_Tabla

La sintaxis del comando que permite crear una BD y adicionar una tabla en el mismo instante es la siguiente:
CREATE DATABASE Nombre_BaseDatos CREATE TABLE Nombre_Tabla (FirstName C(20), LastName C(20)) CLEAR Limpia el espacio de memoria utilizado DISPLAY TABLES DISPLAY DATABASES

Del examen de la sintaxis de la sentencia Create Table se pueden concluir que necesitamos conocer los distintos tipos de columna y las distintas restricciones que se pueden imponer al contenido de las columnas.

Eliminar una tabla de una Base de Datos

Para quitar una tabla de una base de datos puede utilizar la interfaz o bien el comando REMOVE TABLE. Al quitar la tabla de la base de datos, puede elegir tambin eliminar fsicamente del disco el archivo de la tabla.
OPEN DATABASE Nombre_BaseDatos REMOVE TABLE

Nombre_Tabla

Para eliminar una tabla, de la estructura fsica del disco duro, se debe realizar un DELETE, en la misma lnea de la sentencia REMOVE TABLE, o hacer un DROP TABLE en su defecto. La sentencia para la eliminacin del disco duro de una tabla es la siguiente:
REMOVE TABLE Nombre_Tabla DELETE Elimina completamente el espacio asignado en disco. DROP TABLE orditems NORECYCLE Elimina la tabla, y adems se impide la creacin de una copia de respaldo de la misma.

Los campos
Los campos son la ms mnima expresin de la tabla, en ellos podemos agregar datos, o cadenas de caracteres, de acuerdo a el tipo de formato aceptado. Ejemplo:
Fax c(20) Solo acepta cadena de caracteres de longitud 20

Agregar campos

Para agregar un nuevo campo a una tabla puede utilizar el Diseador de tablas o hacerlo a travs del comando ALTER TABLE.
ALTER TABLE customer ADD COLUMN fax c(20)

Eliminar campos

Puede eliminar un campo existente de una tabla mediante el Diseador de tablas o a travs del comando ALTER TABLE.
ALTER TABLE Tabla_BaseDatos DROP COLUMN Columna_Tabla

Los registros
Un registro es el valor que puede aceptar una tabla con una cantidad de campos definida por el usuario.

Agregar registros a una tabla

Los registros pueden aceptar los datos directamente, como en el ejemplo siguiente, en el que el comando INSERT especifica el texto que se va a insertar en campos especficos de una tabla.
La sintaxis es la siguiente: INSERT INTO Nombre_Tabla (Campo1, Campo2, Campo3); VALUES ("Valor1", "Valor2", "Valor3")

Sentencias SQL Select (de Visualizacin):


Las sentencias SQL pertenecen a dos categoras principales: Lenguaje de Definicin de Datos, DDL y Lenguaje de Manipulacin de Datos, DML. Estos dos lenguajes no son lenguajes en s mismos, sino que es una forma de clasificar las sentencias de lenguaje SQL en funcin de su cometido. La diferencia principal reside en que el DDL crea objetos en la base de datos y sus efectos se pueden ver en el diccionario de la base de datos; mientras que el DML es el que permite consultar, insertar, modificar y eliminar la informacin almacenada en los objetos de la base de datos. Cuando se ejecutan las sentencias DDL de SQL, el Sistema Gestor de Base de Datos confirma la transaccin actual antes y despus de cada una de las sentencias DDL. En cambio, las sentencias DML no llevan implcito el commit y se pueden deshacer. Existe pues un problema al mezclar sentencias DML con DDL, ya que estas ltimas pueden confirmar las primeras de manera involuntaria e implcita, lo que en ocasiones puede ser un problema. La recuperacin de los datos en el lenguaje SQL se realiza mediante la sentencia SELECT, seleccionar. Esta sentencia permite indicar al Sistema Gestor de Base de Datos la informacin que se quiere recuperar. Esta es la sentencia SQL, con diferencia, ms habitual. La sentencia SELECT consta de cuatro partes bsicas:

La clusula SELECT seguida de la descripcin de lo que se desea ver, los nombres de las columnas a seleccionar. Esta parte es obligatoria. La clusula FROM seguida de la especificacin de las tablas de las que se han de obtener los datos. Esta parte es obligatoria.

La clusula WHERE seguida por un criterio de seleccin, una condicin. Esta parte es opcional.

La clusula ORDER BY seguida por el criterio de ordenacin es opcional y solo especifica el orden de la consulta anteriormente esquematizada.

Seleccin de Columnas de una tabla


La clusula SELECT Las columnas a seleccionar se enumeran sin ms en la clusula SELECT. Si se desea seleccionar todas las columnas de una tabla se puede hacer enumerando a todas las columnas o colocando un asterisco, *, en su lugar. Select * from Tabla Cuando se consulta una base de datos, los nombres de las columnas se usan como cabeceras de presentacin. Si ste resulta demasiado largo, corto o crptico, puede cambiarse con la misma sentencia SQL de consulta, creando un alias de columna. Select Campo as NombreCampo from Tabla

La clusula FROM Define las tablas de las que se van a seleccionar las columnas. Se puede aadir al nombre de las tablas el usuario propietario de las mismas de la forma usuario.tabla. De esta manera podemos distinguir entre las tablas de un usuario y otro. Siempre se considera como prefijo el nombre del propietario de las tablas, aunque no se lo indiquemos. De esta forma dos o ms usuarios pueden tener tablas que se llamen igual sin que surjan conflictos. Select * from BDPrueba.Tabla1 La clusula WHERE Hasta ahora vemos como puede utilizarse la sentencia SELECT para recuperar todas las columnas o un subconjunto de ellas de una tabla. Pero este efecto afecta a todas las filas de la tabla, a menos que especifiquemos algo ms en la clusula WHERE.

Es aqu donde debemos proponer la condicin que han de cumplir todas las filas para salir en el resultado de la consulta. La complejidad del criterio de bsqueda es prcticamente ilimitada, y en l se pueden conjugar operadores de diversos tipos con funciones de columnas, componiendo expresiones ms o menos complejas.

Operadores de Comparacin Operador = !=, <>, ^= < > <= >= in not in between Operacin Igualdad Desigualdad Menor que Mayor que Menor o igual que Mayor o igual que Igual a cualquiera de los miembros entre parntesis Distinto a cualquiera de los miembros entre parntesis Contenido en el rango Ejemplo select * from emp where cod_dep = 100; select * from emp where cod_dep != 100; select * from emp where cod_dep < 200; select * from emp where cod_dep > 200; select * from emp where cod_dep <= 200; select * from emp where cod_dep >= 200; select * from emp where cod_dep in (100, 300); select * from emp where cod_dep not in (200); select * from emp where cod_emp between 100 and 199; select * from emp where cod_emp not between 100 and 199;

not between Fuera del rango

Contiene la cadena 'abc' a partir del select * from emp where nombre like '_abc%' segundo carcter y luego cualquier like 'Ma%'; cadena de caracteres

Operadores de Aritmticos Operador Operacin Ejemplo + * / Suma Resta Producto Divisin select nombre, salario+comision from emp where oficio='VENDEDOR'; select nombre from emp where sysdate-fecha_alta > 365; select nombre, salario*12 from emp; select nombre, salario/31 from emp;

Operadores de Cadenas de Caracteres Operador || Operacin Concatenacin Ejemplo select nombre||oficio from emp;

La clusula ORDERBY Se utiliza para especificar el criterio de ordenacin de la respuesta a la consulta. Por defecto la ordenacin es ascendente, aunque se puede especificar un orden descendente. La ordenacin se puede establecer sobre el contenido de columnas o sobre expresiones con columnas. A continuacin se puede ver un ejemplo de uso de la clusula ORDER BY en la que quiere obtener un listado de los empleados ordenado de manera descendente por su salario y en caso de igualdad de salario, ordenado ascendentemente por su nombre. La clusula DISTINCT Cuando se realiza una consulta sobre una tabla en la que se extrae informacin de varias columnas, puede ocurrir que, si no incluimos la/s columna/s que forman la clave principal, obtengamos filas repetidas en la respuesta. Si este comportamiento no nos resulta satisfactorio podemos utilizar la clusula DISTINCT para eliminar las filas duplicadas obtenidas como respuesta a una consulta.

III.

Sentencias Modify Command:

Abre una ventana de edicin de texto y le permite modificar o crear un archivo de programa. Sintaxis: MODIFY COMMAND [FileName | ?] [NOEDIT] [NOMENU] [NOWAIT] [RANGE nStartCharacter, nEndCharacter] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [AS nCodePage] [SAME] [SAVE] Parmetros: FileName Especifica el nombre del archivo para el programa que se va a abrir o crear. Si no especifica una extensin para un nuevo archivo de programa, Visual FoxPro asigna automticamente la extensin .prg. MODIFY COMMAND admite una estructura de archivo que contenga los caracteres comodn asterisco (*) e interrogacin (?). Se abrir una ventana de edicin de texto para cada programa cuyo nombre coincida con la estructura de archivos. Si omite el nombre del archivo, aparecer una ventana de edicin de texto para un archivo que inicialmente se llama Prog1.prg. Cuando cierre la ventana de edicin de texto podr guardar el archivo con un nombre diferente. ? Muestra el cuadro de dilogo Abrir. Elija uno de los programas existentes o escriba el nombre de un programa nuevo que desee crear. NOEDIT Especifica que el archivo de programa no podr cambiarse, pero podr visualizarse y copiarse al Portapapeles. NOMENU Elimina el ttulo de men Formato de la barra de mens del sistema de Visual FoxPro, lo que impide cambios de fuente, tamao de fuente, espacio interlineal y sangrado.

NOWAIT Contina con la ejecucin del programa despus de que se abra la ventana de edicin de texto. El programa no espera a que se cierre la ventana de edicin, sino que contina la ejecucin en la lnea de programa siguiente a la que contiene MODIFY COMMAND NOWAIT. Si omite NOWAIT al utilizar MODIFY COMMAND en un programa, se abre una ventana de edicin y la ejecucin del programa se interrumpe hasta que se cierra la ventana. NOWAIT slo es efectivo desde dentro de un programa. No ejerce ningn efecto en MODIFY COMMAND cuando se ejecuta desde la ventana Comandos. Se produce un NOWAIT implcito cuando abre ms de una ventana de edicin de texto con un solo comando MODIFY COMMAND. Por ejemplo: MODIFY COMMAND *.PRG. RANGE nStartCharacter, nEndCharacter Especifica un rango de caracteres seleccionado cuando la ventana de edicin de texto es abierta. Los caracteres se seleccionan comenzando en la posicin especificada con nStartCharacter hasta el carcter que se encuentre en la posicin nEndCharacter. Si nStartCharacter es igual a nEndCharacter, no se seleccionar ningn carcter y el cursor se situar en la posicin especificada con nStartCharacter. WINDOW WindowName1 Especifica una ventana de la cual asumir las caractersticas la ventana de edicin de texto. Por ejemplo, si la ventana est definida con la clusula FLOAT de DEFINE WINDOW, la ventana de edicin de texto podr moverse. No es necesario que la ventana est activa o sea visible, pero debe estar definida. IN [WINDOW] WindowName2 Especifica una ventana primaria dentro de la cual se abrir una ventana de edicin de texto. La ventana de edicin de texto no asumir las caractersticas de la ventana primaria y no puede moverse fuera de la ventana primaria. Si se mueve la ventana primaria, la ventana de edicin de texto se mover con ella. Para tener acceso a la ventana de edicin de texto, la ventana primaria debe estar definida anteriormente con DEFINE WINDOW y debe estar visible. IN SCREEN Abre explcitamente la ventana de edicin en la ventana principal de Visual FoxPro, despus de haberla situado en una ventana primaria. Se colocar una ventana de edicin en una ventana primaria incluyendo la clusula IN WINDOW.

AS nCodePage Convierte automticamente los caracteres acentuados de un programa o archivo de texto creado en otra plataforma de Visual FoxPro. La expresin numrica nCodePage especifica la pgina de cdigos de la plataforma de Visual FoxPro en la que se cre el archivo de programa. El archivo se guarda con esa pgina de cdigos hasta que elija Guardar como... del men Archivo para guardar el archivo con una pgina de cdigos distinta. SAME Evita que la ventana de edicin de texto se ponga delante como ventana activa. Si la ventana de edicin de texto est oculta, se mostrar pero no se convertir en la ventana activa. SAVE Conserva la ventana de edicin de texto abierta despus de que otra ventana se active. Si omite SAVE, la ventana de edicin de texto se cierra cuando otra ventana se activa. El hecho de incluir SAVE no tiene ningn efecto cuando se ejecuta desde la ventana Comandos. Observaciones: Cuando se hacen modificaciones a un archivo de programa, el archivo actualizado se escribe en el disco. En Visual FoxPro, se crear un archivo de seguridad con una extensin .BAK cuando seleccione la casilla de verificacin "Hacer copia de seguridad" en la ficha Modificar del cuadro de dilogo Propiedades, que aparece al elegir Propiedades en el men Edicin.

IV.

Sentencias de entrada y salida de informacin:

Las sentencias de entrada y salida, estn referenciadas en la gua de comandos de Visual FoxPro, y son las siguientes: #DEFINE #UNDEF - Este comando se utiliza para crear y borrar constantes durante la compilacin. ! - Abre el Shell del DOS para ejecutar cualquier programa desde el sistema operativo MS-DOS. $ - Determina si una expresin est incluida en otra. ? / ?? - Evala expresiones y muestra el resultado en la pantalla o en la impresora. - La diferencia entre ? / ?? es que la primera antes de escribir ejecuta un retorno de carro, mientras que la segunda escribe directamente desde donde est situado el puntero de la impresora de la pantalla. ??? - Enva cdigos de control a la impresora. * - Indica un comentario del programa. Debe situarse siempre al inicio de la lnea. = - Evala una lista de expresiones. Si se sita antes del nombre de una funcin, sirve para que se ejecute la funcin y muestre su resultado.

&& - Al igual que * y NOTE, sirve para indicar comentario en la lnea del programa. La diferencia es que && puede situarse en cualquier parte de la lnea y * o NOTE deben ir al principio de la lnea de comentarios. % - Devuelve el resto entero de una divisin. \ - \\ - Muestra lneas de texto. @..BOX - Dibuja ventanas o cuadros entre coordenadas especificadas. @..CLEAR - Borra un rea de la pantalla desde las coordenadas especificadas hasta el final. @..CLEAR TO - Borra un rea de la pantalla o de la ventana. @..EDIT TEXT - Crea una zona de edicin de texto. @..FILL TO - Permite modificar los colores en una zona o ventana de la pantalla. @..GET CHECK BOX - Crea una casilla de control. @..GET INVISIBLE BUTTON - Crea botones invisibles.

@..GET LIST - Crea una lista. @.. GET POPUPS @..GET PUSH BUTTON @..GET RADIO BUTTON @..GET SPINNER @..MENU @..PROMPT @..SAY / GET @..TO ACCEPT TO ACTIVATE MENU ACTIVATE POPUP ACTIVATE SCREEN ACTIVATE WINDOW APPEND APPEND FROM APPEND FROM ARRAY APPEND GENERAL APPEND MEMO AVERAGE BROWSE BUILD APP

BUILD EXE BUILD PROJECT CALCULATE CALL CANCEL CHANGE CLEAR CLEAR ALL CLEAR FIELDS CLEAR GETS CLEAR MACROS CLEAR MEMORY CLEAR MENUS CLEAR POPUPS CLEAR PROGRAM CLEAR PROMPT CLEAR READ CLEAR TYPEAHEAD CLEAR WINDOWS CLOSE ALL CLOSE ALTERNATE CLOSE DATABASES CLOSE FORMAT

CLOSE INDEX CLOSE FORMAT CLOSE INDEX CLOSE MEMO CLOSE PROCEDURE COMPILE CONTINUE COPY FILE COPY INDEXES COPY MEMO COPY STRUCTURE TO COPY TAG COPY TREE COPY TO ARRAY COUNT CREATE CREATE COLOR SET CREATE CURSOR SQL CREATE FROM CREATE LABEL CREATE MENU CREATE PROJECT CREATE QUERY

CREATE REPORT CREATE SCREEN CREATE TABLE SQL CREATE VIEW DEACTIVATE MENU DEACTIVATE POPUP DEACTIVATE WINDOW DECLARE DEFINE BAR DEFINE BOX DEFINE MENU DEFINE PAD DEFINE POPUP DEFINE WINDOW DELETE DELETE FILE DIMENSION DIRECTORY o DIR DISPLAY DISPLAY FILES DISPLAY MEMORY DISPLAY STATUS EDIT

EJECT EJECT PAGE ERASE EXIT EXPORT EXTERNAL FILER FIND FLUSH FUNCTION GATHER GET EXPR GO/GOTO HELP HIDE MENU HIDE POPUP HIDE WINDOW IMPORT INDEX INPUT INSERT JOIN WITH KEYBOARD

LABEL FORM LIST LOAD LOCATE MENU MENU TO MODIFY GENERAL MODIFY LABEL MODIFY MEMO MODIFY MENU MODIFY PROJECT MODIFY QUERY MODIFY REPORT MODIFY SCREEN MODIFY STRUCTURE MOVE POPUP MOVE WINDOW NODE ON BAR ON ERROR ON ESCAPE ON KEY ON KEY =

ON KEY LABEL OK PATH ON PAGE ON READERROR ON SELECTION BAR ON SELECTION MENU ON SELECTION PATH ON SELECTION POPUP ON SHUTDOWN OTHERWISE PACK PARAMETERS PLAY MACRO POP KEY POP MENU POP POPUP PRINT JOB PRIVATE PROCEDURE PUBLIC PUSH KEY PUSH MENU PUSH POPUP

QUIT READ READ MENU TO RECALL REGIONAL REINDEX RELEASE RENAME REPLACE REPORT FORM RESTORE FROM RESTORE MACROS RESTORE SCREEN RESTORE WINDOW RESUME RETRY RETURN RUN SAVE MACROS SAVE SCREEN SAVE TO SAVE WINDOW SCATTER

SCROLL SEEK SET SET <NOMBRE> ON/OFF SET ALTERNATE SET ALTERNATE TO SET ANSI SET AUTOSAVE SET BELL SET BELL TO SET BLINK SET BLOCKSIZE SET BORDER TO SET BRSTATUS ON/OFF SET CARRY SET CARRY TO SET CENTURY SET CLEAR SET CLOCK SET CLOCK TO SET COLOR OFF SET COLOR OF SCHEME SET COLOR SET TO

SET COLOR TO SET COMPATIBLE SET CONFIRM SET CONSOLE SET CURRENCY SET CURRENCY TO SET CURSOR SET DATE SET DEBUG SET DECIMALS TO SET DEFAULT TO SET DELETED SET DELIMETERS SET DELIMETERS TO SET DEVELOPMENT SET DEVICE TO SET DISPLAY TO SET DOHISTORY SET ECHO SET ESCAPE SET EXACT SET EXCLUSIVE SET FIELDS

SET FIELDS TO SET FILTER TO SET FIXED SET FORMAT TO SET FULLPATH SET FUNCTION TO SET HEADING SET HELP SET HELP TO SET HELPFILTER TO SET HOURS TO SET INDEX TO SET INTENSITY SET KEYCOMP SET LIBRARY TO SET LOCK SET LOGERRORS SET MACKEY TO SET MARGIN TO SET MARK OF SET MARK TO SET MEMOWIDTH TO SET MESSAGE TO

SET MOUSE SET MOUSE TO SET MULTILOCKS SET NEAR SET NOTIFY SET ODOMETER TO SET OPTIMIZE SET ORDER TO SET PALLETTE SET PATH TO SET PDSETUP TO SET POINT TO SET PRINTER SET PRINTER TO SET PROCEDURE TO SET READBORDER SET REFRESH TO SET RELATION OFF SET RELATION TO SET REPROCESS TO SET RESOURCE SET RESOURCE TO SET SAFETY

SET SCOREBOARD SET SEPARATOR TO SET SHADOWS SET SKIP TO SET SKIP OF SET SPACE SET STATUS SET STATUS BAR SET STEP SET STICKY SET SYSMENU SET TALK SET TEXTMERGE SET TEXTMERGE DELIMITERS SET TOPIC TO SET TRBETWEEN SET TYPEAHEAD TO SET UDFPARAMS SET UNIQUE SET VIEW SET VIEW TO SET WINDOW OF MEMO SHOW GET

SHOW MENU SHOW OBJECT SHOW POPUP SHOW WINDOW SIZE POPUP SKIP SORT TO STORE SUM SUSPEND TEXT ENDTEXT TOTAL TO TYPE UNLOCK UPDATE USE WAIT ZAP ZOOM WINDOW

V.
-

Sentencias de seleccin:
Sentencias de Bucle: o Sentencia Scan: Scan sirve para realizar una serie de acciones para cada uno de los registros en una tabla. El comando Scan permite escribir el cdigo una vez y ejecutarlo para cada registro a medida que el puntero de registro se desplaza por la tabla. o Sentencia For: El bucle For Next es una de las estructuras de bucle ms antiguas dentro de los lenguajes de programacin. A diferencia del bucle Do, el bucle For Next requiere que se conozca el nmero de veces que se van a ejecutar las sentencias del bucle. Este bucle es una variable (llamada el contador del bucle) que incrementa o disminuye su valor durante cada repeticin del bucle. Su sintaxis es: For contador = principio To final[Step incremento] Bloque de Sentencias Next/EndFor[contador] (Las palabras entre corchetes son opcionales). Los argumentos contador, principio, final e incremento son todos numricos. El bucle se ejecuta hasta que el contador llegue (o exceda) el valor final. Cuando ejecuta un bucle For Next, Visual FoxPro hace lo siguiente: 1. Pone contador con el valor de principio. 2. Comprueba si contador es mayor que final. 3. Si lo es, sale del bucle. 4. Si incremento es negativo, FoxPro comprueba si contador es menor que final, en cuyo caso sale de bucle. 5. Ejecuta el bloque de sentencias. 6. Incrementa contador con el valor de incremento. 7. Si no se especific incremento, el contador se incrementa en 1. 8. Repite las sentencias. La parte ms importante a tener en cuenta cuando se trabaja con bucle For ... Next/End For es que el contador del bucle se establece al principio del bucle. Si cambiamos el valor de la variable final mediante una sentencia dentro del bucle, no se detecta el cambio y se ejecuta como si no se hubiera producido.

Imagen 01. Sentencia For

o Sentencia While: Ejecuta un bloque de sentencias mientras la condicin sea verdadera. Visual FoxPro evala la expresin y, si la expresin es falsa, el programa contina con las sentencias que van despus del bucle. Para ejecutar un bloque sentencias mientras la condicin sea verdadera, se usa la siguiente sintaxis: Do While condicin Bloque de sentencias Enddo El bucle Do se repite todas las veces que sea necesario siempre que la condicin sea verdadera (o distinta de cero si la condicin evala un nmero).

Imagen 02. Sentencia While o Sentencia With: Especifica mltiples propiedades para un objeto. With NombreObjeto [Bloque de Sentencias] EndWith NombreObjeto: Especifica el nombre del objeto. NombreObjeto puede ser el nombre del objeto o una referencia a ste. Bloque de Sentencias: Instrucciones puede constar de cualquier nmero de comandos de Visual FoxPro empleados para especificar propiedades para NombreObjeto. Manipulacin de Objetos: Para manipular un objeto, deber identificarlo en relacin con la jerarqua contenedora. En el nivel superior de la jerarqua contenedora (el conjunto de formularios o el formulario) necesita hacer referencia a la variable de objeto. De manera predeterminada, la variable de objeto tiene el mismo nombres que el archivo .SCX. Las propiedades se manipulan haciendo referencia a la variable de objeto, el control y la propiedad, separados por puntos (.): VariableObjeto.[form.]control.propiedad = Configuracin.

Sentencias Condicionales: o Sentencia IF: La estructura If comprueba una condicin especfica y, si es verdadera, ejecuta las sentencias que le siguen. La estructura If puede tener o una sola lnea, o varias lneas. Para ejecutar una sentencia condicional se usa la sintaxis de una sola lnea: If condicin Then sentencia Se evala la condicin y, si es verdadera, ejecuta la sentencia que viene a continuacin. Si la condicin no es verdadera, continua con la sentencia siguiente de la estructura. La sintaxis de varias lneas: If condicin Then Sentencias EndIf

Sentencias Mixtas (Condicionales y de bifurcacin): o IfThenElseEndIf: Una variacin de la sentencia If Then es la sentencia If ThenElse EndIf, que ejecuta un bloque de sentencias si la condicin es verdadera, y otro bloque si es falsa. La sintaxis de la sentencia If Then Else EndIf es: If condicin Then Bloque de sentencias 1 Else Bloque se sentencias 2 EndIf Visual FoxPro evala la condicin y, si es verdadera, ejecuta el primer bloque de sentencias y luego salta a las sentencias que hay despus de EndIf. Si la condicin es falsa, Visual FoxPro ignora el primer bloque de sentencias y ejecuta las que hay a continuacin de la palabra clave Else.

Otra variacin de la sentencia If Then Else usa varias condiciones con la palabra clave ElseIf:

If condicin 1 Then Bloque de sentencias Else If condicin2 Then Bloque se sentencias 2 Else If condicin 3 Then Bloque se sentencias 3 Else Bloque se sentencias 4 End If Podemos poner cualquier nmero de clusulas desde arriba y, si una de ellas es verdadera, se ejecuta el bloque de sentencias correspondiente. La clusula Else se ejecutar si ninguna de las expresiones anteriores es verdadera. Ejemplo: If puntuacin < 50 Then Resultado = No admitido Else If puntuacin < 75 Then Resultado = Pasable Else If puntuacin > 90 Then Resultado = Muy bueno Else Resultado = Excelente EndIf o If Then Mltiples: Observamos que una vez que se ha encontrado una condicin verdadera, Visual FoxPro ejecuta las sentencias asociadas, salta el resto de las clusulas y contina con la ejecucin del programa con las sentencias que hay despus de EndIf.

Por esta razn podemos usar la siguiente estructura, ms complicada, de varias sentencias If simples: If puntuacin < 50 Then Resultado= No admitido EndIf If puntuacin < 75 And puntuacin >= 50 Then Resultado= Pasable EndIf If puntuacin < 90 And puntuacin >= 75 Then Resultado= Muy bueno EndIf If puntuacin > 90 Then Resultado= Excelente EndIf o Do Case: La estructura Do Case compara la misma expresin con diferentes valores. La ventaja de esta sentencia sobre If Then mltiples hace que el cdigo sea ms fcil de leer y mantener. La estructura Do Case comprueba una sola expresin, que se evala una sola vez al principio de la estructura. El resultado de esta comprobacin se compara con varios valores y, si coincide con uno de ellos, se ejecuta el bloque de sentencias correspondiente. Sintaxis: Do Case Case <Condicin 1> Bloque de sentencias 1 Case <Condicin 2> Bloque de sentencias 2 ... EndCase

Ejemplo: Opc=this.value Do Case Case opc=1 NombreDa= Lunes Mensaje= Feliz semana Case opc=6 NombreDa= Sbado Mensaje= Feliz fin de semana Case opc=7 NombreDa= Domingo Mensaje= Has tenido un buen fin de semana? EndCase La variable opc que se evala al principio de la sentencia, es el nmero de da de la semana. Despus se compara el valor de la expresin con los valores que tiene cada palabra clave Case. Si coincide, se ejecuta el bloque de sentencias que viene a continuacin, y despus salta el programa a la sentencia siguiente al EndCase.

VI.

Referencias Bibliogrficas: a. Electrnica:


i. SQL Conceptos Bsicos [en lnea]. [Abril 1998: Universidad de Valladolid: Espaa] Tambin disponible en: < http://www.infor.uva.es/~jvegas/cursos/bd/sqlplus/sqlplus.html > [Consultado el: viernes 20 de mayo del 2011]. Visual FoxPro [en lnea]. [Sin ao: Ren J. Hercilla Valdivia: C.E.O. San Luis] Tambin disponible en: < http://es.scribd.com/doc/7531269/Separata-de-Visual-FoxPro > [Consultado el: viernes 20 de mayo del 2011]. Modify Command (Comando) [en lnea]. [Sin ao : MSDN Microsoft : Espaa] Tambin disponible en: < msdn.microsoft.com/es-es/library/cc484540%28v=vs.71%29.aspx > [Consultado el: viernes 27 de mayo del 2011].

ii.

iii.

b. Fsica: i. Marn, F., Quiros, A., & Torres, A. (1990). FOXPRO: Referencia Rpida. Madrid Edicin: Ra-Ma. Chord, Ramn M. (1993). FOXPRO 2.5 para DOS y WINDOWS: Referencia Rpida. Wilmington-Delaware E.U.A : Addison Wesley Iberoamericana

ii.

You might also like