Вы находитесь на странице: 1из 12

Curso de Visual Foxpro Segundo Capitulo

Entorno de Desarrollo de Visual Foxpro (I)


Temas que abordaremos en este Captulo: En el primer captulo vimos los fundamentos de la programacin Orientada a Objeto, ahora tocaremos todos los temas necesarios para desarrollar en VFP y sus principales caractersticas, para luego ahondarnos de lleno en la programacin: Introduccin Notacin Hngara. Instalacin - Formatos Aprendizaje - Ayuda Conceptos - Eventos - Controles Tipos de Ficheros - Tipos de Datos. Control de Flujo del Programa El entorno de desarrollo (Administrador de proyectos- Diseadores y Asistentes) (Prxima entrega) Gestin de Ficheros - Creacin de Tabla mediante asistente. (Prxima entrega)

Introduccin
Visual Foxpro es uno de los gestores de Bases de Datos relacionales ms rpido y flexible del mercado, disponiendo de un complejo entorno de desarrollo totalmente orientado al objeto y altamente integrado en el sistema operativo Windows 95. Como cualquier otra aplicacin Windows estndar, Visual Foxpro soporta interfaces MDI, barras de herramientas, ayuda sensible al contexto, mltiples fuentes, acceso a bibliotecas de enlace dinmico (DLL), etc. Aparte del acceso a tablas en formato nativo de Visual FoxPro, se puede acceder virtualmente a cualquier fuente de datos cuyo acceso se pueda hacer atravs de ODBC (Open Database Connectivity). Este estndar, definido como Conectividad Abierta de Bases de Datos, permite abrir y consultar diversas bases de datos a travs de un conjunto de controladores, utilizando SQL como lenguaje de consulta. Con el advenimiento de Visual Fox, los desarrolladores de aplicaciones tienen acceso a multitud de eventos y opciones que los programadores de Visual Basic y Visual C tuvieron durante aos. Se elimina la necesidad del uso del READ y su confusa nidificacin (Fundational read). Se aprovechan algunas de las innovaciones que incorpor el Visual Basic, que tuvo liderazgo en simplificaciones tales que le dieron alcance masivo a la programacin. En esta clase examinaremos, entre otras cosas, qu son los formularios, eventos y controles, y cmo se usan

1).- Notacin Hngara


Antes de introducirnos de lleno al aprendizaje de Visual FoxPro, primero comentaremos un sistema de codificacin que pareciera ser uno de los mejores sistemas de codificacin, ya que mantiene la claridad del cdigo fuente. La Notacin Hngara es una forma de escribir cdigo que nos permite cometer muchos menos errores y hacer que nuestro cdigo se vuelva mucho ms fcil de entender y legible. Fue originariamente concebida por el programador hngaro Charles Simonyi. Simonyi, perteneciente al equipo de programacin de Microsoft Corporation, desarrollo esta serie de tcnicas para el lenguaje C. Actualmente este sistema es obligatorio para los programadores de Microsoft Corporation. Es realmente til y te sorprenders de la calidad que adopta la codificacin. Veamos algunas de las convenciones que se pueden adoptar: A - Los nombres de las variables, (adems del m.) han de ir precedidas en minsculas por un identificador de su tipo. Por ejemplo: a Array o Matriz b Doble Precisin c Carcter o memo d Fecha (date) f Punto Flotante n Numrica l Lgica o Objeto (genrico) t Fecha y Hora u Tipo indeterminado (desconocido a priori) y Moneda Opcionalmente, se puede preceder al tipo de una constante que se refiera al alcance o mbito de la variable, como por ejemplo: l Local p Privada g Pblica o global t Parmetro Ejemplo: lnContadorPgina NOTA: Los prefijos no son obligatorios ni estrictamente necesarios, pero si muy recomendables como buen hbito de programacin. B - Utilizacin de la tcnica WordMixing (Mezcla de palabras) para diferenciar las distintas partes de un nombre. cEstoEsUnEjemploDeWordMixing C - A todos los efectos, los nombres que demos a nuestras funciones y mtodos seguirn las mismas reglas de codificacin. Al fin de cuentas tanto el nombre de una variable y el nombre de una funcin son smbolos que contienen un valor (unos lo tienen y otros lo generan).

D - A la hora de dar nombre a una funcin variable seguiremos la siguiente regla: Tipo Categora Accin [SubAccin] Ejemplo: lPrtStRdy () Tipo --> l, pues devuelve un valor tipo lgico. Categora --> Prt, del ingls Printer (mipresora) Accin --> St = Status o Estado SubAccin --> Rdy (ready) Lista A simple vista, al examinar el cdigo, se ve que se trata de una funcin que retorna un valor lgico (verdadero o falso,.T. o .F.) dicindonos si la impresora est lista para operar.

E - En la medida de lo posible, no usar underscores o guiones bajos, es decir


no usar nombres como E_C_O_M. Slo pueden usarse en los #DEFINE (sentencia del preprocesador) pero NUNCA en el nombre de una variable o funcin. En su lugar, usaremos nombres como NoUderScores, como mencionbamos en el punto de WordMixing.

F - Las funciones de conversin (aquellas que pasan de un tipo o valor a otro,


usarn la palabra TO o el nmero dos en medio. En ingls el 2 (two) suena igual que hacia (to), por lo que la funcin Hex2Dec() dice claramente que pasa desde hexadecimal hacia decimal.

G - Las palabras PROCEDURE, FUNCTION y RETURN deben ir SIEMPRE


CON MAYUSCULAS, y preferiblemente al mismo nivel de identacin. Lo mismo los comandos, palabras reservadas (Keywords), acrnimos, nombres de dispositivos, nombres de archivos y constantes. Los nombres de campos, tablas y bases de datos van en minsculas.

2.- INSTALACION - FORMATOS


Se puede instalar en Windows 95 / 98 o NT, dado que slo viene un instalador de 32 bits. Al igual que Visual Basic 5, no funcionar en Windows 3.X. Para esta plataforma puede usar Fox Pro 2.6 para Windows, que no es un lenguaje Visual. Formatos: tiene una sola versin completa y tambin forma parte del paquete Visual Estudio (conjunto de lenguajes visuales y SQL Server 6.5). La instalacin bsicamente consiste en ejecutar el programa INSTALAR (versin espaola) o SETUP (versin en ingls), y seguir los dilogos. Por omisin se instala en la carpeta C:\VFP, pero si lo desea Ud. puede cambiarla. Con la instalacin mnima se requieren 25 Mg de espacio en disco, con la tpica alrededor de 100 Mg, y completa puede ocupar cerca de 200 Mg, incluyendo la documentacin en lnea (Carpeta C:\VFP\ONLINE) y los audiovisuales explicativos en ingls (carpeta C:\VFP\ONLINE\MEDIA de casi 60 Mg).

Por omisin deja todo esto (documentacin y audiovisuales para su uso desde el CD para economizar espacio, pero puede copiarlos al disco rgido s desea acceso ms rpido y no tiene problemas de espacio en disco. Equipo Mnimo: Un PC compatible con IBM con Windows 95 / 98, aunque funciona con un procesador 486 a 50MHz se recomienda algo superior (tpicamente Pentium 166 /200 Mhz con 32 MG RAM). Un mouse o ratn. Se recomienda un monitor VGA o de mayor resolucin, preferiblemente color.

3.- Aprendizaje
Vea en men de Ayuda, (ALT + U, D), "Documentacin" que pone en pantalla a todos los manuales. Podra empezar por ej. por la Gua de Instalacin, Manual del Usuario, "Manual del Programador", Referencia del Lenguaje, etc.. Ms adelante podr usar ese mismo men de Ayuda - Aplicaciones Ejemplo. Y estudiar los casos tpicos que all se explican.

4.- Ayuda
Vea en la Ayuda, (ALT + U), Temas de ayuda, y tambin aplicaciones de ejemplo que se pueden ejecutar y estudiar, Microsoft en la Web (Si tiene Internet), Soporte tcnico, etc. Tambin est la ayuda sensible al contexto (F1), el ndice temtico, y la opcin Buscar. En la ayuda se puede imprimir, seleccionar, copiar, y luego pegar en un procesador de textos cualquiera.

5.- Conceptos 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 utilizable (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 Fecha - Fecha y hora (Date DateTime)

8 8 1 256 1 8

RANGO - Ejemplo .9999999999E+19 a

.9999999999E+20 922337203685477.5808 a 922337203685477.5807 Prueba 123 01/01/95 .T.(verdadero) .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

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)

Integer (Entero) Carcter (Binario) Memo (Binario) General (Obj.OLE) Fecha - Fecha y hora (Date DateTime)

4 10 10 4 8

2147483647 a 2147483646 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 almacenados en la memoria RAM (memoria de acceso aleatorio) del PC. Registro Varias filas de campos s de predeterminados, cada uno de tabla los cuales puede contener un dato definido previamente. Las tablas se guardan en disco. Matrices 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 Carcter Binario Carcter o Memo FechaHora Fecha FechaHora Lgico

VAL ( ) STR( ) NTOM( ) MTON( ) CTOD( )

Numrico Caracter Moneda Numrico Fecha

DTOC o Carcter DTOS CTOBIN( ) Carcter Binario 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. 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...

Colaboracin de Luis Andrs Chabrillon ECOM CHACO S. A., Centro de Cmputos del Gobierno de la Provincia del Chaco Repblica Argentina chabri@ecomchaco.com.ar

Fuentes de Informacin y Bibliografa: Foxpress. FoxAdvisor. Datapress. Desarrollo de Aplicaciones de Pedro Muoz. Programando en VF 5.0 Foxpro 5.0 de Ramon Ch.

Perteneciente al Curso emitido por: Mundo Fox - Zorro Hispano. Lista de Correo de Visual Foxpro: vfoxpro@onelist.com Para subscribirse haga click aqu. Responsable-Webmaster: vfoxpro@hotpop.com

Вам также может понравиться