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

Curso de Microsoft Visual FoxPro For Windows Indice del Curso: Capitulo I

Capitulo II

Capitulo III

Capitulo IV

Capitulo V

CAPITULO I

1.-Entorno de Visual Fox Pro 9.0 En Visual Fox pro se puede crear rpidamente formas, men e informes con los patrones visuales y herramientas de diseo. Adopta la apariencia de los ltimos productos Microsoft: barras de estado, botones con pista, men contextual, etc. Visual Fox Pro 9.0 cada accin que tu realizas es un evento: El movimiento del mouse, hacer clic sobre un botn, escribir un texto en un cuadro de texto, Etc. Es decir que cuando programes ese evento solo eso suceder. Es un lenguaje de programacin que opera bajo la plataforma de Windows, es decir, el programa identificara las acciones que lleva a cabo el usuario durante su ejecucin.

Herramientas de Visual Fox Pro

Barra de Men

Por medio de esta barra podemos acceso todas las opciones de Visual Fox Pro, nos ofrece abrir o crear una base de dato, crear un reporte, etc. Barra de Herramientas.

Por medio de esta barra de herramientas tenemos acceso a las opciones de Visual Fox Pro sin necesidad de ir a la barra de men y tener un acceso rpido. La Venta de Comando

La ventana de comando nos sirve para escribir ciertos comandos que explicaremos despus. La ventana de Controles.

La ventana de controles permite al usuario seleccionar opciones, introducir datos y escoger acciones. En un formulario, estos objetos pueden incluir casillas de verificacin, botones de comando y cuadro de texto.

Botn

Descripcin

Seleccionar objetos. Cambia el tamao y mueve controles. Una vez creado un control, el botn "Seleccionar objetos" se volver a seleccionar automticamente, a menos que est presionado el botn "Bloqueo del botn".

Ver clases. Permite seleccionar y mostrar una biblioteca de clases registrada. Despus de seleccionar una clase, la barra de herramientas slo muestra botones para las clases de la biblioteca seleccionada.

Etiqueta. Crea un control Label, que se usa para texto que no quiere que el usuario cambie, como el ttulo que aparece encima de las casillas de verificacin o debajo de un grfico.

Cuadro de texto. Crea un control TextBox, que se usa para almacenar una nica lnea de texto que el usuario puede introducir o cambiar.

Cuadro de edicin. Crea un control EditBox, que se usa para almacenar varias lneas de texto que el usuario puede introducir o cambiar. Botn de comando. Crea un control CommandButton, que se usa para ejecutar un comando.

Grupo de comandos. Crea un control CommandGroup, que se usa para agrupar comandos relacionados.

Grupo de opciones. Crea un control OptionGroup, que se usa para mostrar mltiples opciones entre las que el usuario slo puede seleccionar una.

Casilla de verificacin. Crea un control CheckBox, que ofrece al usuario la posibilidad de elegir entre una condicin verdadera o falsa, o muestra varias opciones entre las que el usuario puede seleccionar ms de una.

Cuadro combinado. Crea un control ComboBox, que se usa para crear un cuadro combinado desplegable o una lista

desplegable de forma que el usuario pueda seleccionar un elemento de una lista o introducir manualmente un valor.

Cuadro de lista. Crea un control ListBox, que se usa para mostrar una lista de elementos entre los que puede elegir el usuario. Es posible recorrer la lista si tiene ms elementos de los que se pueden mostrar de una vez.

Control numrico. Crea un control Spinner, que se usa para aceptar datos numricos introducidos por el usuario que quedan dentro de un intervalo.

Cuadrcula. Crea un control Grid, que se usa para mostrar datos en una cuadrcula tipo hoja de clculo.

Imagen. Muestra una imagen grfica en su formulario.

Cronmetro. Intercepta eventos Timer a intervalos establecidos. Este control es invisible en tiempo de ejecucin.

Marco de pgina. Muestra varias pginas de controles.

Control contenedor OLE. Le permite agregar objetos OLE a su aplicacin.

Control OLE dependiente. Al igual que los controles contenedores OLE, le permite agregar objetos OLE a su aplicacin. Sin embargo, a diferencia de los controles contenedores OLE, los controles OLE dependientes estn vinculados a un campo de tipo General.

Lnea. Se usa para dibujar diversos estilos de lnea en su formulario en tiempo de diseo.

Forma. Se usa para dibujar diversas formas en su formulario en tiempo de diseo. Puede dibujar un rectngulo, un rectngulo redondeado, un cuadrado, un cuadrado redondeado, un valo o un crculo.

Separador. Agrega espacio entre los controles de la barra de herramientas.

Bloqueo del generador. Abre un generador para el nuevo control que agrega al formulario.

Bloqueo del botn. Le permite agregar varios controles del mismo tipo sin tener que hacer clic en el botn del control en la barra de herramientas ms de una vez.

Propiedades Son los atributos que se aplican sobre los controles. Ejemplo: Color, tipo de letra, nombre, texto, etc.

ALGUNAS PROPIEDADES COMUNES:

Name (Nombre): Especifica el nombre que se le asigne al control, u solo a travs de l se puede acceder a las propiedades y mtodos de los controles. Back Color (Color de Fondo): Asigna el color de fondo sobre el que aparece el texto o se dibujan los grficos.

Fore Color (Color de Primer Plano): Asigna un color al primer plano (color de la tinta o del texto). Font (Fuente o Tipo de Letra): Asigna el tipo de letra, los atributos y el tamao de la fuente que se usa para un control de texto (el texto en un control TextBox, el ttulo de una etiqueta o de un botn de comando, etc.). Caption (Ttulo): Asigna el texto que aparece en muchos controles y que el usuario no puede introducir, por ejemplo el texto de un control Label, el ttulo de un botn de comando, o de una cadena de caracteres que se muestran en un cuadro de activacin o en un botn de opcin. Text (Texto): Asigna el texto que se muestra en los controles y acepta que lo introduzca el usuario, por ejemplo, el control TextBox. Width (Ancho) y Height (Alto): Estas propiedades determinan las dimensiones de los controles. Left (Izquierda) Top (Arriba): Estas propiedades asignan las coordenadas de la esquina superior izquierda del control y se expresan en las unidades del contenedor (normalmente de un formulario). Enabled (Activado): Su valor es True por omisin, y significa que el control se puede usar. Si se pone False se desactiva el control, aparece en gris y no se puede usar. Visible: Esta propiedad se pone como False para que el control sea invisible.

Pasos para cambiar valores a propiedades en tiempo de diseo: 1.- Presionar clic sobre el botn deseado. 2.-Abrir la ventana de propiedades.

3.-Buscar la propiedad de manera alfabtica o otras categora. Evento Es una accin que el usuario efecta sobre un objeto o control y este a su vez realizara una tarea determinada, el programador deber analizar los evento que se pueden llevar a cabo sobre un control determinado. Un evento genera una tarea si no existe una tarea, por aquel evento, no pasara nada. Ejemplo Clic DbllicK Keypress Activate Mousemove Entre otros

Controles de Formulario Cuadro de texto.- Tambin denominado control de campo de edicin, muestra la informacin introducida en tiempo de diseo por el usuario o asignada al control en cdigo en tiempo de ejecucin.

Propiedades

10

Alignment.- Devuelve o establece la alineacin de un control checkbox u optionbutton, o el texto de control. BorderStyle.- devuelve o establece el estilo del borde del objeto. Name.-Devuelve el nombre usado en el cdigo para identificar un objeto. PasswordChar.- Devuelve o establece un valor que determina si se muestra en un control los caracteres escritos por un usuario o los caracteres marcadores. Text.- Devuelve o estable el texto contenido en el control. Las propiedades ms comunes Backcolor.- Devuelve o establece el color de fondo usado para mostrar texto grficos en un objeto. FontName.- Devuelve un objeto de Font. Forecolor.- Devuelve o establece el color de primer plano usado para mostrar texto y grficos en un objeto. Eventos MouseMove.- Al mover el ratn por encima del control. MouseDown.- Al pulsar cualquier botn del ratn. Change.- Al cambiar el contenido del control. Click.- Al hacer click con el botn izquierdo del ratn sobre el control. DblClick.- Al hacer doble click con el botn izquierdo. GotFocus.- Este evento se activa cuando el control recibe el enfoque, es decir, cuando se activa el control en tiempo de ejecucin para introducir datos en el o realizar alguna operacin.

11

LostFocus.- Este control es lo contrario del evento anterior, se activa cuando el control pierde el enfoque, es decir, se pasa a otro control para seguir introduciendo datos.

ETIQUETA Es un control de graficos utilizado para mostrar texto que el usuario no podr cambiar directamente.

Propiedades Alignment.- Devuelve o establece la alineacin de un control checkbox u optionbutton, o el texto de control. BorderStyle.- devuelve o establece el estilo del borde del objeto. Caption.- Devuelve o estable el texto mostrado en la barra de titulo de un objeto o bajo el icono de un objeto. Recuerda: Para este control no se suele utilizar eventos ya que su contenido cambia poco a lo largo de la ejecucin de la aplicacin.

Botn de Comando Denomina botn de comando, permite comenzar, interrumpir o terminar un proceso cuando esta activado.

CASILLA DE VERIFICACION.

12

Muestra un visto cuando esta activado y desaparece cuando el control Checkbox se desactiva. Utilice este control para ofrecer al usuario una opcin de tipo Verdadero o Falso o Si o No. Tambin lo puede utilizar en grupos para mostrar mltiples opciones.

Boton de opciones. Muestra una opcin que se puede activar o desactivar, generalmente viene en grupos.

Propiedades de los controles. STR() convierte de nmero a carcter y VAL() convierte de carcter a numrico. THISFORM (Referencia de objeto) Proporciona una referencia al formulario actual en el cdigo de evento o en la definicin de clase del formulario.

Aplicacin N 1

13

Codifique un programa que ingrese dos valores, y sacarle el IVA y el resultado total.

Procedimiento Calcular

14

Procedimiento limpiar

Procedimiento Salir

15

CAPITULO II

ESTRUCTURA DE CONTROL Ejecuta condicionalmente un grupo de instrucciones, dependiendo el valor de una expresin Se clasifican: SENTENCIAS DE CONTROL DE FLUJO:

IfThenEndIf: La estructura If comprueba una condicin especifica 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

16

sentencias EndIf

IfThenElseEndIf: Una variacin de la sentencia If Then es la sentencia IfThenElse 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 1

17

Else If condicin 2 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

ESTRUCTURAS IF THEN MLTIPLES:

18

Observamos que una vez que se ha encontrado una condicin verdadera, Visual FoxPro ejecuta las sentencias asociadas, salta el resto de las clusulas y continua 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

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

19

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

20

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.

SENTENCIAS DE CONTROL DE BUCLE:

DO WHILE ENDDO: 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).

21

FOR ENDFOR/NEXT: 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] 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. Si lo es, sale del bucle. Si incremento es negativo, Visual FoxPro comprueba si contador es menor que final, en cuyo caso sale de bucle. 3. Ejecuta el bloque de sentencias. 4. Incrementa contador con el valor de incremento. Si no se ha especificado incremento, el contador se incrementa en 1. 5. Repite las sentencias.

La parte ms importante a tener en cuenta cuando se trabaja con bucle For Next/EndFor es que el contador del bucle se establece

22

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.

WITH ... ENDWITH: Especifica mltiples propiedades para un objeto. Sintaxis WITH NombreObjeto [Instrucciones] ENDWITH NombreObjeto: Especifica el nombre del objeto. NombreObjeto puede ser el nombre del objeto o una referencia a ste. Ejemplo With Thisform

Instrucciones: Instrucciones puede constar de cualquier nmero de comandos de Visual FoxPro empleados para especificar propiedades para NombreObjeto. Site un punto delante de Instruccin para indicar que es una propiedad de NombreObjeto. Propiedad o palabra clave Referencia ActiveControl El control del formulario activo actualmente que tiene el enfoque ActiveForm El formulario activo actualmente

23

ActivePage actualmente Parent

La pgina activa del formulario activo

El contenedor ms inmediato del objeto

THIS El objeto, o un procedimiento o evento del objeto THISFORM El formulario que contiene el objeto THISFORMSET objeto El conjunto de formularios que contiene el

THISFORM: Proporciona una referencia a un Form antes de crearlo. Sintaxis: THISFORM.NombrePropiedad | NombreObjeto

Argumentos: NombrePropiedad: Especifica una propiedad para el Form. NombreObjeto: Especifica un objeto del Form.

Comentarios: THISFORM proporciona, dentro de un mtodo, una referencia al Form en el que est situado un objeto o a la propiedad de un Form. THISFORM permite hacer referencia a un objeto o una propiedad del formulario sin utilizar mltiples propiedades Parent.

THIS: Proporciona una referencia a un objeto antes de crearlo. Sintaxis:

24

THIS.NombrePropiedad | NombreObjeto

Argumentos: NombrePropiedad: Especifica una propiedad para la clase. NombreObjeto: Especifica un objeto de la clase.

Comentarios: THIS permite hacer referencia a una propiedad o un objeto de una definicin de clase. Los mtodos de un bloque de definicin de clase pueden utilizar THIS para especificar una propiedad o un objeto que existir cuando se cree la clase. Puesto que mltiples instancias de objetos comparten el mismo cdigo de mtodo, THIS siempre hace referencia a la instancia en la que est ejecutndose el cdigo. Si hay mltiples instancias de un objeto, y se llama a uno de los mtodos del objeto, THIS hace referencia al objeto correcto.

THISFORMSET: Proporciona una referencia a un FormSet antes de crearlo. Sintaxis: THISFORMSET.NombrePropiedad | NombreObjeto

Argumentos: NombrePropiedad: Especifica una propiedad para el FormSet. NombreObjeto: Especifica un objeto del FormSet.

25

Comentarios: THISFORMSET proporciona, dentro de un mtodo, una referencia al FormSet en el que est situado un objeto o a la propiedad de un FormSet. THISFORMSET permite hacer referencia a un objeto o una propiedad del FormSet sin utilizar mltiples propiedades Parent.

RELEASE: Permite que los usuarios cierren el formulario activo haciendo doble clic en el cuadro de control o eligiendo Cerrar en el men Control del formulario. Tambin puede permitir que un usuario cierre y libere un formulario incluyendo el comando siguiente en el cdigo de evento Click de un control, como un botn de comando con el ttulo "Salir": RELEASE THISFORM

CREATE: Nos permite crear formularios, tablas, base de datos, mens, informes, etc. Ejemplo: Create Form C:\Mis documentos\Ren\ejemplo1.scx. DO FORM: Ejecuta un Form o FormSet compilado que se ha creado con el Generador de formularios. MODIFY FORM: Abre el Generador de formularios para que pueda modificar o crear uno. USE: Abre o cierra una Tabla. Ejemplo: Use Articulo.Dbf (Abre la tabla Articulo.dbf). Use Cierra una tabla en uso. GO TOP: Ubica el puntero de registro en el primer registro. GO BOTTOM: Ubica el puntero de registro en el ltimo registro. SKIP: Avanza o retrocede el puntero de registro. Skip +1 (Avanza). Skip 1 (Retrocede). APPEND: Adiciona o aade ms registro a una tabla abierta.

26

LIST: Realiza un listado de todos los registros de una tabla abierta. BROWSE: Abre la ventana examinar para modificar el contenido de todos los registro de una tabla abierta. REPORT FORM: Muestra o imprime un informe bajo el control de un archivo de definicin de informe creado con MODIFY REPORT o CREATE REPORT.

Mensaje del Sistema. MenssageBox().- despliega un mensaje en un cuadro de dialogo y espera que el usuario selecciona un botn. Sintaxis: Variable= MessageBox (mensaje,tipo,titulo) Mensaje: es una expresin de cadena que se despliega como el mensaje en un cuadro de dialogo. Tipo: Expresin numrica que es la suma de valores que especifican la cantidad y el tipo de botones para desplegar.

DO WHILE ENDDO Repite un bloque de instrucciones cuando una condicin es true o hasta que una condicin se convierta en true

27

Sintaxis

Do while condicin Sentencia Loop Enddo

Aplicacin N 2 Este ejercicio consiste en elaborar un formulario que simule el funcionamiento de un reloj despertador digital. La aplicacin debe permitir al usuario ingresar la hora a la que desea ser avisado. El diseo de la interfaz debe ser similar a la figura siguiente:

Para el desarrollo de esta aplicacin proceder a ubicar los siguientes controles en el formulario: 2 etiquetas 2 cajas de texto

28

1 cronmetro 2 botones de comandos En seguida establezca las propiedades segn se indica a continuacin: Form1 Name Caption MaxButton MinButton Label1 Name Caption Label2 Name Caption Text1 Name FontBold FontSize Text2 Name FontBold FontSize Timer1 Name Enabled Interval Timer1 .T.-Verdadero 500 TxtDespertador .T.-Verdadero 24 TxtHora .T.-Verdadero 24 LblDespertador Despertador LblHora Hora FrmReloj Reloj despertador digital .F.-Falso .F.-Falso

29

Command1 Name Caption Default Command2 Name Cancel Caption CmdTerminar .T.-Verdadero \<Terminar CmdOnOff \<Desactivar .T.-Verdadero

Una vez establecidas las propiedades, proceda a ingresar el cdigo que se muestra: Objeto: FrmReloj Public lOnOff Objeto: FrmReloj lOnOff = .F. Thisform.TxtDespertador.Value = "00:00:00" Thisform.Refresh Objeto: Timer1 If Thisform.TxtHora.Value != Time() Then Thisform.TxtHora.Value = Time() EndIf If (Thisform.TxtDespertador.Value < Time()) And lOnOff Then * Sonido acstico ?Chr(7) EndIf Thisform.Refresh Procedimiento: Timer Procedimiento: Init Procedimiento: Load

30

Objeto: CmdOnOff If lOnOff Then lOnOff = .F. Thisform.CmdOnOff.Caption = "\<Activar" Else lOnOff = .T. Thisform.CmdOnOff.Caption = "\<Desactivar" EndIf Thisform.Refresh Objeto: CmdTerminar

Procedimiento: Click

Procedimiento: Click

Release Thisform

31

CAPITULO III

QUE ES UNA BASE DE DATOS Una Base de Datos es un conjunto de datos organizado de forma tal, que se presenta al usuario como si fuera una o un conjunto de matrices bidimensionales (tablas). Cada fila de una matriz es un registro, el cual contiene informacin sobre una unidad de la base de datos y le asigna un nmero para poder manejarlo. Cada columna contiene los diversos campos de ese registro. Por ejemplo : en una tabla de publicaciones, cada fila contendr informacin sobre una publicacin determinado, y la fila estar dividida en campos (columnas), como el cdigo de publicacin, nombre de la publicacin, fecha, tiraje, responsable, etc... Para abrir una base de datos haz click en archivo, nuevo selecciona base de datos (Database), y aparecer la ventana de Generador de base de datos. En este tu construirs las tablas visualmente, creas etiquetas de ndice, establece relaciones entre tablas y proporciona otros componentes que ayudan en el proceso de diseo de una aplicacin. En el Generador de bases de datos haz clic en cualquier lugar de la ventana, se desplegar un men contextual que contiene las opciones siguientes: -Expandir (Expand) - Contraer todos (Collapse all) - Nueva tabla (New table) - Nueva vista remota (* New remote view ) - Nueva vista local (*New local view) - Agregar tabla (Add table)

32

- Procedimientos almacenados (Stored procedures) - Integridad referencial (integrity referential) - Ayuda Tablas

Tipos de datos
Visual Fox Pro puede manejar diversos tipos de campos (tal como muestra la figura) . Entre los ms importantes estn: Carcter : Campo de caracteres : Almacena cadenas o conjuntos de caracteres. Un campo de caracteres permite almacenar tanto letras, como nmeros o caracteres especiales. Monetario: Campo de Valores Monetarios: Almacena cantidades en valor monetario, Ejemplo: $55, S/.675,438. Numrico: Campo numricos : Almacenan cantidades y se puede hacer clculos con ellos. Estos campos slo admiten nmero y el punto decimal (la coma decimal si tiene formato espaol). Mxima extensin, 20 caracteres. Flotante : Campo de nmeros reales : Almacenan nmeros en el rango del conjunto de nmeros reales. Fecha : Campo fecha : Permite almacenar fechas. La informacin la guarda en la forma AAAAMMDD, con 8 caracteres. El formato por defecto para introducir fechas en Visual Fox Pro es MM/DD/AA (Mes/Da/Ao).

33

Lgico : Campo lgico : Almacenan un tipo especial de informacin, slo permiten almacenar verdadero o falso y acepta slo los caracteres : T (verdadero) o F (falso). Memo : Campo Memo : Permite almacenar textos largos, como una descripcin o un breve resumen. Estructura de un .BDF Los datos en FoxPro se almacenan en forma de tablas, estas tablas son las bases de datos pues la extensin de estas bases de datos es .DBF aunque tambin hay otras que se ver ms adelante. Los DBF comienzan con una breve descripcin de los datos que estn en la tabla.

RELACIONES ENTRE TABLAS:

Las relaciones mas comunes entre tablas se definen: De uno a uno: Ejemplo de una llave primaria a otra llave primaria De uno a muchos: Ejemplo de una llave primaria a una Regular o Fornea. Las relaciones entre tablas se crean arrastrando la llave de la tabla a la llave de otra tabla.

Aplicacin N 3

34

En este ejercicio vamos a crear un formulario para calcular la edad de una persona a partir de su fecha de nacimiento.

Para el desarrollo de esta aplicacin, proceda a ubicar los siguientes controles en el formulario: 2 etiquetas 2 cajas de texto 3 botones de comando Luego, proceda a establecer las propiedades segn se indica a continuacin: Form1 Name Caption MaxButton MinButton Label1 Name Caption Label2 Name Caption Text1 LblEdad Su edad es: LblFecNac Fecha de nacimiento: .F.-Falso .F.-Falso FrmEdad

35

Name Enabled Text2 Name Enabled Command1 Name Caption Command2 Name Caption Command3 Name Caption

TxtFecNac .T.-Verdadero

TxtEdad .F.-Falso

CmdAceptar \<Aceptar

CmdLimpiar \<Limpiar

CmdSalir \<Salir

Luego de establecidas las propiedades de los controles, proceda a ingresar el siguiente cdigo: Objeto: FrmEdad Set Date French Set Century On Objeto: FrmEdad cNomDia = Cdow(Date()) cDia = Str(Day(Date()), 2) cMes = Cmonth(Date()) cAnno = Str(Year(Date()), 4) cFecha = cNomDia + " " + cDia + " de " + cMes + " del " + cAnno Procedimiento: Init Procedimiento: Load

36

Thisform.Caption = cFecha Thisform.TxtFecNac.Setfocus Thisform.Refresh Objeto: CmdAceptar dFecNac = Ctod(Thisform.TxtFecNac.Value) nEdad = Int ((Date() - dFecNac) / 365) Thisform.TxtEdad.Value = Str(nEdad) + " aos" Thisform.Refresh Objeto: CmdLimpiar Thisform.TxtFecNac.Value = "" Thisform.TxtEdad.Value = "" Thisform.TxtFecNac.Setfocus Thisform.Refresh Objeto: CmdSalir Release Thisform Procedimiento: Click Procedimiento: Click Procedimiento: Click

Aplicacin N 3.1 Este ejercicio consiste en elaborar una aplicacin que acepte fechas como tres nmeros (dd, mm, aaaa) y las visualice del modo usual. A manera de ejemplo considere lo siguiente:

37

Cuando el usuario haga click en el botn Salir o en el botn Cerrar de la barra de ttulo del formulario, se debe confirmar si desea terminar la aplicacin, tal como se observa en la figura siguiente:

En caso de que el usuario elija la opcin Si, la aplicacin debe terminar. Caso contrario, es decir si el usuario elige la opcin No, se debe proseguir con la aplicacin. Para el desarrollo de esta aplicacin, proceda a ubicar los siguientes controles en el formulario: 4 etiquetas 3 controles numricos 1 caja de texto 3 botones de comando En seguida proceda a establecer las propiedades segn se indica: Form1 Name Caption FrmFecha Fecha en letras

38

MaxButton MinButton Label1 Name AutoSize Caption Label2 Name AutoSize Caption Label3 Name AutoSize Caption Label4 Name AutoSize Caption Spinner1 Name SpinnerHighValue SpinnerLowValue Spinner2 Name SpinnerHighValue SpinnerLowValue

.F.-Falso .F.-Falso

LblDia .T.-Verdadero Da:

LblMes .T.-Verdadero Mes:

LblAnno .T.-Verdadero Ao:

LblEnLetras .T.-Verdadero En letras:

SpnDia 31 1

SpnMes 12 1

39

Spinner3 Name SpinnerHighValue SpinnerLowValue Text1 Name Alignment Command1 Name Caption Default Command2 Name Caption Command3 Name Cancel Caption CmdSalir .T.-Verdadero \<Salir CmdLimpiar \<Limpiar CmdAceptar \<Aceptar .T.-Verdadero TxtEnLetras 2-Centro SpnAnno 9999 0

Una vez establecidas las propiedades proceda a ingresar el cdigo que se indica a continuacin: Objeto: FrmFecha Set Date French Set Century On Objeto: FrmFecha #DEFINE vfpYesNo 4 Procedimiento: QueryUnload Procedimiento: Load

40

#DEFINE vfpYes 6 #DEFINE vfpQuestion 32 If MessageBox("Desea terminar la aplicacin?", ; vfpQuestion + vfpYesNo, "Pregunta") = vfpYes Then Release Thisform Else NoDefault EndIf Objeto: CmdAceptar cBarra = "/" cFecha = Thisform.SpnDia.Text + cBarra + Thisform.SpnMes.Text ; + cBarra + Thisform.SpnAnno.Text dFecha = Ctod(cFecha) cNomDia = Cdow(dFecha) cDia = Str(Day(dFecha), 2) cMes = Cmonth(dFecha) cAnno = Str(Year(dFecha), 4) cFecha = cNomDia + " " + cDia + " de " + cMes + " de " + cAnno Thisform.TxtEnLetras.Value = cFecha Thisform.Refresh Objeto: CmdLimpiar Thisform.SpnDia.Value = 0 Thisform.SpnMes.Value = 0 Thisform.SpnAnno.Value = 0 Thisform.TxtEnLetras.Value = "" Procedimiento: Click Procedimiento: Click

41

Thisform.SpnDia.Setfocus Thisform.Refresh Objeto: CmdSalir Thisform.QueryUnload Procedimiento: Click

42

CAPITULO IV

Tipos de Mens: Existen dos tipos de mens : men y Shortcut.

43

Creacin de Mens: La creacin de mens es un proceso que conlleva diferentes pasos. Primero, debemos definir las opciones del men y de los submens. Luego, asignar funcionalidad a las opciones de men. Finalmente, generar el programa de mens. Puede usar el generador de mens de Visual Foxpro para que le ayude a construir mens rpidamente. El Generador de mens le permite definir la estructura y funcionalidad de su sistema de mens a travs de cuadros de dilogo de fcil uso y de listas desplegables que puede utilizar para crear y modificar su sitema de mens.

Definicin de las opciones de men. Los mens presentan su aspecto con una lista de opciones para iniciar una actividad. La mayora de los elementos de men muestran submens u opciones adicionales cuando el usuario selecciona uno de estos elementos. Antes de generar un men para una aplicacin, tendr que determinar que selecciones tendr disponibles el usuario final y qu opciones de mens pertenecen a otras opciones de mens (sub menus).

Cmo crear un nuevo men


1. Pulse la ficha de otros en el Administrador de proyectos. 2. Seleccione mens en la lista de categoras

Pulse el botn 3. nuevo y escoja si es Menu o un Shortcut

4. Introduzca las opciones del menu y luego el resultado del men ( submenu, comando o procedimiento) 5. A la derecha del resultado se encuentra la opcin crear o modificar segn el caso. ( crea o modificar los resultados de la opcin del menu).

44

Tipos de Resultados : Submenu : Si el men contiene un submenu

Comando : Si la opcin de ese men invoca un comando (Ejemplo: DO FORM


Regiones, para llamar un formulario; CLEAR EVENT, por lo general va en la opcin Salir) Procedimiento : Si la opcin de ese men invoca varias lneas de comandos ( un procedimiento).

Opciones de Men: En las opciones del men se especifican: Teclas de Acceso directo Mensajes del men Condicin de habilita/No habilitar

Generacin del men : 1. 2. En el men escoja la opcin Men. Se le pregunta si desea grabar los cambios ( responda que si)

45

3.

Luego se le pide que proporcione el archivo de salida del menu ( escoja la ruta y el nombre del archivo, por lo general son extension MPR) y luego seleccione generar. Si existe ya el archivo se le pide si desea re-escribirlo ( seleccione que si)

4.

46

Como invocar al men creado: Al generar el men se crea un archivo que por lo general tiene extensin MPR que contiene el cdigo para desplegar el men. La instruccin sera:

DO ruta y nombre del archivo MPR Ejemplo : DO menu.MPR

Para volver a re establecer el men por default de Visual Foxpro utilice la instruccin: SET SYSMENU TO DEFAULT

Creacin del Ejecutable de la Aplicacin.

Primero se tiene que crear un programa de inicio, al cual se le tiene que decir que ese es el programa que se ejecutara de primero ( esto se hace haciendo clic derecho en el programa que designemos como principal y escoger la opcin main ( principal) del men de opciones) Contenido Ejemplo del programa principal: CLEAR ALL * Variables Publicas PUBLIC w_Output, g_ao, gid_area, g_nivel, g_cambio, g_login_entry ; ,g_pass_entry, V_MENU_PRE, V_ERROR, g_acceso

47

* Definicion de Ventana para los Reportes DEFINE WINDOW w_Output FROM 0,0 TO 25,70 TITLE 'Informes - BCN' ; ; ;

CLOSE FLOAT GROW ZOOM SYSTEM * Ambiente SET SYSMENU TO SET ECHO OFF SET TALK OFF SET CENTURY ON SET CLOCK STATUS SET DATE brit SET DELETE ON SET PATH TO formenu,bmp,prg,data SET EXCLUSIVE OFF SET SAFETY OFF SET REFRESH TO 5 SET REPROCESS TO AUTOMATIC SET MULTILOCK ON SET LOCK OFF SET PROCEDURE TO .\prg\utility * Fondo de la Pantalla principal _SCREEN.Picture=".\bmp\fondo.bmp" _SCREEN.WINDOWSTATE=2 _SCREEN.CLOSABLE=.F. _SCREEN.CAPTION="Formulacin Presupuestaria"

48

* Base de Datos OPEN DATA .\SCOTT\scott SHARED * Llamada al Menu DO .\menu\menu.mpr READ EVENT CLEAR ALL SET SYSMENU TO DEFAULT

49

CAPITULO V

Para ejecutable

Crear nuevo proyecto 1.- men archivo 2. nuevo 3.- Seleccionar proyecto como indica la imagen

4.- clic en nuevo archivo 5.- guardar proyecto en la direccin deseada y el nombre deseado 6.- clic en documentos y luego agregar

50

7.- buscar los formularios que desee agregar al proyecto 8.- clic en cdigo y luego nuevo 9.- escriba o pegue el siguiente cdigo

clear all set exclusive off set sysmenu to set echo off set talk off Set Status Bar Off _screen.windowstate=2 clear * en la line siguiente va la ruta y el nombre del formulario principal do form c:\israel\nombre_formulario.scx read event clear all

10.- clic en el signo + (MAS) si no se ve el nombre del programa en el proyecto

51

11.- clic derecho en el nombre del programa y estableces principal 12.- clic en general y generar ejecutable 13.- acepta y guardar en la ruta correspondiente

NOTA: Copie los archivos .dll en el lugar donde se encuentre el ejecutable

Y LISTO

Aplicacin N 4

Base de datos Pizzera


Realizar las siguientes tablas para la base de datos Pizzera

52

Para llevar a cabo la Practica Realiza los Siguientes pasos:

1. Crea un nuevo Proyecto con el nombre Pizza 2. en el administrador de proyectos en la Ficha Datos, Selecciona la opcin Databases, y despus la opcion Nuevo, para crear la base de datos con el nombre Pizzera. 3. En el diseador de Base de datos da un clic en la opcin Nueva tabla. y haz lo sig;

4. Guarda esta tabla con el nombre de Pizza 5. Ahora deberas crear otra tabla nueva con los siguientes campos.

53

6. Guarda esta tabla con el nombre de tamaos. 7. Ahora deberas crear una tercera tabla con los datos siguientes:

8. Guarda esta tabla con el nombre de Venta. 9. por ultimo debers crear otra tabla como sigue:

54

10. Esta tabla la guardas con el nombre factura 11. Crea las relaciones entre las tablas de tal form que te queden de la siguiente manera:

12. Ahora debemos introducir los datos a las tablas, comenzaremos por la tabla Pizza y la llenaremos como sigue:

55

Clave_Pizza an pe ha sa

Nombre Anchoas Peperoni Hawaiana salami

13. seguimos con la tabla Tamao

Clave_tamao ch me gr

Tamao Chica Mediana Grande

14. Y Continuamos con la tabla Venta

Clave_Pizza an an an pe pe pe ha ha ha sa sa sa

Clave_Tamao ch me gr ch me gr ch me gr ch me gr

Precio $ 20.00 $ 25.00 $ 30.00 $ 60.00 $ 65.00 $ 80.00 $ 55.00 $ 60.00 $ 68.00 $ 63.00 $ 87.00 $ 98.00

15. ahora crearemos una tabla a partir de una consulta, en la ventana explorador de proyectos en la pestaa datos selecciona consulta y despus nuevo

16. Visual Fox te preguntara que tablas quieres agregar para la realizacin de tu consulta, para eso tu debes agregar las siguientes tablas: Tamaa, Venta y Pizza.

17. una vez con las tablas agregadas, en la ventana diseador de consultas en la ficha campos, debemos escoger cuales son los campos que nosotros queremos que nos muestre la consulta, pues bien vamos a seleccionar los siguientes:

56

Pizza.nombre, tamao.tamao, Venta.Precio, por ultimo agregaremos una expresin como campo para esto en la misma ventana busca la opcin funciones y expresiones y aparecer la ventana siguiente:

18. Cuando esta ventana aparezca lo primero que debemos de hacer es seleccionr de la parte funciones Cadena, la opcin texto, Luego en la parte de abajo donde dice Desde tabla Selecciona la tabla Pizza, en el cuadro campos apareceran los campos de la tabla pizza de ese cuadro da doble clic al campo clave_pizza, una vez esto hecho en el cuadro expresin deber de aparecer el siguiente texto: Pizza.cleve.pizza, una ves con esto ve otra vez a la lista Cadena y ahora selecciona el smbolo +, el smbolo aparecera dentro de las comillas, salte de las comillas y pon un guion(-), la expresin deber quedar: Pizza.cleve.pizza+-, ahora con lo que ya vimos has que la expresin final quede de la siguiente forma, recuerda que para sacar los campo de Tamao primero debes seleccionar la tabla tamao de Desde tabla.

57

19. Una vez que tengas la Expresin da un clic al botn aceptar y despus un clic en Agregar. Te debera quedar como en la pantalla siguiente:

20. Ahora da un clic al boton Destino de consulta

y Selecciona tabla

58

21. en el recuadro donde dice Nombre de la tabla le ponemos un nombre que en este caso ser consulta1.dbf. y un clic al botn Aceptar. 22. Despus de eso Cierro la ventana de Diseador de consultas, y ebn el explorador de proyectos selecciono la consulta que acabo de crear y la ejecuto. 23. despus de este paso en el explorador de proyectos selecciono tablas en la ficha datos y doy un clic a Agregar, busco la tabla consulta1, que es la que se genero con la consulta y la agrego a mi base de datos. 24. Una vez ya agregada la relaciono con la tabla Factura, de tal manera que me quede de la siguiente manera:

25. Ahora si todo esta listo para que tu generes tus Formularios y tus informes de tu base de datos, recuerda que puedes hacer tambien consultas por medio de la tabla factura para ver cuales fueron las ventas que has tenido.

59

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