microsoft visual foxpro ejemplos

63
MICROSOFT VISUAL FOXPRO NIVEL I INTRODUCCIÓN A LA PROGRAMACIÓN INTRODUCCIÓN La presente Guía de Laboratorio, se elaboró con la finalidad de complementar la parte teórica con la parte práctica del curso. Contiene una gran variedad de ejemplos prácticos .

Upload: percy-rojas

Post on 17-Feb-2016

605 views

Category:

Documents


31 download

DESCRIPTION

MUY BUENOS EJEMPLOS

TRANSCRIPT

Page 1: Microsoft Visual Foxpro Ejemplos

 MICROSOFT VISUAL FOXPRO

 

 

NIVEL I

INTRODUCCIÓN A LA PROGRAMACIÓN

 

INTRODUCCIÓN

 

La presente Guía de Laboratorio, se elaboró con la finalidad de complementar la parte teórica con la parte práctica del curso. Contiene una gran variedad de ejemplos prácticos .

Desde ya les deseo la mejor de las suertes en el aprendizaje de Microsoft Visual FoxPro.

Lima, Setiembre del 2002

Page 2: Microsoft Visual Foxpro Ejemplos

 

 

Microsoft   Visual FoxPro  

GUÍA DE LABORATORIO Nº 1

Objetivos

Luego de completar este laboratorio, el estudiante será capaz de:

Identificar los elementos del entorno integrado de desarrollo de Microsoft Visual FoxPro 6.0.

Implementar soluciones mediante programación clásica. Declarar y asignar valores tanto a las variables de memoria como a los

arreglos. Analizar como es el flujo de control de un programa. Crear funciones y procedimientos definidos por el usuario.

Consideraciones

Para el desarrollo del presente laboratorio Ud. deberá crear una carpeta C:\FundVFP\Lab1, para guardar sus trabajos correspondientes a este laboratorio.

Aplicación Nº 1

En este primer ejercicio vamos a escribir un programa que lea tres números enteros y determine el número mayor, el número central y el número menor. Debemos asumir que los tres números son siempre distintos.

Para el desarrollo de la presente aplicación ingresar a Microsoft Visual FoxPro. En la Ventana de Comandos digite la siguiente orden:

Modify Command Aplica01

A continuación se debe presentar el Editor de programas. En dicha ventana proceda a ingresar el código que se indica:

Page 3: Microsoft Visual Foxpro Ejemplos

Close All

Clear

Input "Ingrese el valor de A?" To nA

Input "Ingrese el valor de B?" To nB

Input "Ingrese el valor de C?" To nC

   If nA > nB Then

            nMay = nA

            nMen = nB

 Else

           nMay = nB

          nMen = nA

EndIf

        If nC > nMay Then

               nCen = nMay

              nMay = nC

Else

          If nC > nMen Then

             nCen = nC

        Else

           nCen = nMen

           nMen = nC

       EndIf

EndIf

? "Mayor =" + Str(nMay)

Page 4: Microsoft Visual Foxpro Ejemplos

? "Central =" + Str(nCen)

? "Menor =" + Str(nMen)

Para ejecutar su programa dar click en el botón Ejecutar (!) de la Barra de herramientas Estándar.

Para volver a ejecutar su programa digitar la siguiente orden desde la Ventana de Comandos:

Do Aplica01

Aplicación Nº 2

Un restaurante ofrece un descuento del 10% para consumos entre S/. 30.00 y S/. 50.00; un descuento del 20% para consumos mayores a S/. 50.00 nuevos soles; para todos los demás casos no se aplica ningún tipo de descuento. El ejercicio consiste en elaborar una programa que permita determinar el importe a pagar por el consumidor.

Para el desarrollo de la presente aplicación abrir una nueva ventana de edición e ingresar el siguiente código:

Close All

Clear

Do While .T.

Input "Consumo S/." To nConsumo

If Type ("nConsumo") = "N"

Exit

EndIf

EndDo

Do Case

Case nConsumo >= 30 And nConsumo <= 50

nImporte = nConsumo * 0.9

Case nConsumo > 50

Page 5: Microsoft Visual Foxpro Ejemplos

nImporte = nConsumo * 0.8

Otherwise

nImporte = nConsumo

EndCase

? "Importe a pagar S/." + Str(nImporte)

Aplicación Nº 3

El ejercicio consiste en escribir un programa que lea " " enteros y calcule la suma total, la media aritmética, el máximo y el mínimo de los datos.

Para el desarrollo de la presente aplicación, de manera análoga que para los casos anteriores abrir una nueva ventana de edición e ingresar el siguiente código:

Close All

Clear

Input "Ingrese cantidad de números?" To nN

Declare aVector(nN)

For nI = 1 To nN

Input "Número [" + Str(nI) + "]?" To aVector(nI)

Next

nMax = aVector[1]

nMin = aVector[1]

nSuma = 0

For nI = 1 To nN

nSuma = nSuma + aVector[nI]

If aVector[nI] > nMax Then

nMax = aVector[nI]

Page 6: Microsoft Visual Foxpro Ejemplos

EndIf

If aVector[nI] < nMin Then

nMin = aVector[nI]

EndIf

Next

nMedia = nSuma / nN

? "Suma =" + Str(nSuma)

? "Media =" + Str(nMedia, 10, 2)

? "Máximo=" + Str(nMax)

? "Mínimo=" + Str(nMin)

Aplicación Nº 4

A continuación vamos a escribir una función que reciba como argumento de entrada una cadena de caracteres y la devuelva en forma inversa, por ejemplo si se ingresa la cadena CORAZON deberá retornar NOZAROC.

Para el desarrollo de esta aplicación proceda de manera similar a los casos anteriores e ingresar el código que se muestra:

Close All

Clear

Accept "Ingrese una cadena?" To cCadena

? "Cadena invertida =" + CadInv(cCadena)

Function CadInv

Parameters cCadena

nN = Len(Alltrim(cCadena))

Declare cTemporal(nN)

For nI = 1 To nN

Page 7: Microsoft Visual Foxpro Ejemplos

cTemporal(nI) = SubStr(cCadena, nI, 1)

Next

cInvertida = ""

For nJ = nN To 1 Step -1

cInvertida = cInvertida + cTemporal(nJ)

Next J

Return cInvertida

Aplicación Nº 5

Este ejercicio consiste en escribir un programa que imprima el calendario correspondiente a un mes si se conoce una fecha del mismo. Por ejemplo si se ingresa la siguiente fecha MA 24 04 1973 (Martes 24 de Abril de 1973) se debe obtener:

ABRIL

D L M M J V S

             

1 2 3 4 5 6 7

8 9 10 11 12 13 14

15 16 17 18 19 20 21

22 23 24 25 26 27 28

29 30          

 

 

Creo que a estas alturas Ud. ya entendió como funciona esto. Por ello, esta aplicación se deja como ejercicio para el estudiante.

 

Microsoft   Visual FoxPro GUÍA DE LABORATORIO Nº 2

Page 8: Microsoft Visual Foxpro Ejemplos

Objetivos

Luego de completar este laboratorio, el estudiante será capaz de:

Implementar soluciones mediante programación orientada a objetos. Manejar las diferentes propiedades y eventos del formulario. Añadir controles a un formulario. Establecer las propiedades de los controles. Trabajar con procedimientos de eventos.

Consideraciones

Para el desarrollo del presente laboratorio Ud. deberá crear una carpeta C:\FundVFP\Lab2, para guardar sus trabajos correspondientes a este laboratorio.

Aplicación Nº 1

El ejercicio consiste en elaborar una aplicación que permita leer un número real de la forma "eee.ddd" e imprima el mayor valor entre la parte entera y la parte decimal.

Para el desarrollo de esta aplicación, en primer lugar debe crear un nuevo formulario. Para ello digite lo siguiente en la Ventana de Comandos:

Create Form

A continuación seleccione del Menú Ver, la opción Barra de herramientas Controles de Formularios. Se presentará una ventana similar a la siguiente figura:

Page 9: Microsoft Visual Foxpro Ejemplos

En seguida de la barra de herramientas mostrada ubicar los siguientes controles al formulario:

2 etiquetas

2 cajas de texto

3 botones de comando

Para ubicar un control en el formulario, simplemente dar click en el control deseado y luego dar click en el formulario en la posición que se le desea ubicar. Adicionalmente puede utilizar la barra de herramientas Diseño para obtener una mejor presentación.

A continuación proceda a establecer las propiedades de los objetos según se indica, para ello dar click derecho sobre el control y del menú emergente que se presenta elegir la opción Propiedades.

Form1

  Name FrmAplica01

  Caption Mayor valor de un número real

  MaxButton .F.-Falso

  MinButton .F.-Falso

Label1

  Name LblX

  Caption Ingrese un real de la forma eee.ddd?

Label2

  Name LblMay

  Caption Mayor:

Page 10: Microsoft Visual Foxpro Ejemplos

Text1

  Name TxtX

  InputMask 999.999

  Value 0

Text2

  Name TxtMay

  InputMask 999

  Value 0

Command1

  Name CmdAceptar

  Caption \<Aceptar

  Default .T.-Verdadero

Command2

  Name CmdLimpiar

  Caption \<Limpiar

Command3

  Name CmdSalir

  Cancel .T.-Verdadero

  Caption \<Salir

A continuación dar doble click sobre el control CmdAceptar y proceda a ingresar el código que se muestra:

Objeto: CmdAceptar Procedimiento: Click

nX = Thisform.TxtX.Value

nA = Int(Thisform.TxtX.Value)

nX = nX - nA

Page 11: Microsoft Visual Foxpro Ejemplos

nB = 1000 * nX

If nA > nB Then

nMay = nA

Else

nMay = nB

EndIf

Thisform.TxtMay.Value = nMay

Thisform.Refresh

De manera análoga ingresar el siguiente código para el control CmdLimpiar:

Objeto: CmdLimpiar Procedimiento: Click

Thisform.TxtX.Value = 0

Thisform.TxtMay.Value = 0

Thisform.TxtX.Setfocus

Thisform.Refresh

Finalmente proceder a ingresar el siguiente código para el control CmdSalir:

Objeto: CmdSalir Procedimiento: Click

Release Thisform

A continuación guarde su aplicación como FrmAplica01, luego proceda a ejecutarla. Para ello ingrese lo siguiente en la Ventana de Comandos:

Do Form FrmAplica01

Debe funcionar sin problemas. Pruebe ingresando diferentes valores. En caso que falle revise y corrija.

Aplicación Nº 2

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

Page 12: Microsoft Visual Foxpro Ejemplos

Para el desarrollo de esta aplicación, 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 según se indica a continuación:

Form1

  Name FrmEdad

  Caption  

  MaxButton .F.-Falso

  MinButton .F.-Falso

Label1

  Name LblFecNac

  Caption Fecha de nacimiento:

Label2

  Name LblEdad

  Caption Su edad es:

Text1

  Name TxtFecNac

  Enabled .T.-Verdadero

Page 13: Microsoft Visual Foxpro Ejemplos

Text2

  Name TxtEdad

  Enabled .F.-Falso

Command1

  Name CmdAceptar

  Caption \<Aceptar

Command2

  Name CmdLimpiar

  Caption \<Limpiar

Command3

  Name CmdSalir

  Caption \<Salir

Luego de establecidas las propiedades de los controles, proceda a ingresar el siguiente código:

Objeto: FrmEdad Procedimiento: Load

Set Date French

Set Century On

Objeto: FrmEdad Procedimiento: Init

cNomDia = Cdow(Date())

cDia = Str(Day(Date()), 2)

cMes = Cmonth(Date())

cAnno = Str(Year(Date()), 4)

cFecha = cNomDia + " " + cDia + " de " + cMes + " del " + cAnno

Thisform.Caption = cFecha

Page 14: Microsoft Visual Foxpro Ejemplos

Thisform.TxtFecNac.Setfocus

Thisform.Refresh

Objeto: CmdAceptar Procedimiento: Click

dFecNac = Ctod(Thisform.TxtFecNac.Value)

nEdad = Int ((Date() - dFecNac) / 365)

Thisform.TxtEdad.Value = Str(nEdad) + " años"

Thisform.Refresh

Objeto: CmdLimpiar Procedimiento: Click

Thisform.TxtFecNac.Value = ""

Thisform.TxtEdad.Value = ""

Thisform.TxtFecNac.Setfocus

Thisform.Refresh

Objeto: CmdSalir Procedimiento: Click

Release Thisform

Aplicación Nº 3

Este ejercicio consiste en elaborar un formulario que simule el funcionamiento de un reloj despertador digital. La aplicación debe permitir al usuario ingresar la hora a la que desea ser avisado. El diseño de la interfaz debe ser similar a la figura siguiente:

Page 15: Microsoft Visual Foxpro Ejemplos

Para el desarrollo de esta aplicación proceder a ubicar los siguientes controles en el formulario:

2 etiquetas

2 cajas de texto

1 cronómetro

2 botones de comandos

En seguida establezca las propiedades según se indica a continuación:

Form1

  Name FrmReloj

  Caption Reloj despertador digital

  MaxButton .F.-Falso

  MinButton .F.-Falso

Label1

  Name LblHora

  Caption Hora

Label2

  Name LblDespertador

  Caption Despertador

Page 16: Microsoft Visual Foxpro Ejemplos

Text1

  Name TxtHora

  FontBold .T.-Verdadero

  FontSize 24

Text2

  Name TxtDespertador

  FontBold .T.-Verdadero

  FontSize 24

Timer1

  Name Timer1

  Enabled .T.-Verdadero

  Interval 500

Command1

  Name CmdOnOff

  Caption \<Desactivar

  Default .T.-Verdadero

Command2

  Name CmdTerminar

  Cancel .T.-Verdadero

  Caption \<Terminar

Una vez establecidas las propiedades, proceda a ingresar el código que se muestra:

Objeto: FrmReloj Procedimiento: Load

Public lOnOff

Objeto: FrmReloj Procedimiento: Init

Page 17: Microsoft Visual Foxpro Ejemplos

lOnOff = .F.

Thisform.TxtDespertador.Value = "00:00:00"

Thisform.Refresh

Objeto: Timer1 Procedimiento: Timer

If Thisform.TxtHora.Value != Time() Then

Thisform.TxtHora.Value = Time()

EndIf

If (Thisform.TxtDespertador.Value < Time()) And lOnOff Then

* Sonido acústico

?Chr(7)

EndIf

Thisform.Refresh

Objeto: CmdOnOff Procedimiento: Click

If lOnOff Then

lOnOff = .F.

Thisform.CmdOnOff.Caption = "\<Activar"

Else

lOnOff = .T.

Thisform.CmdOnOff.Caption = "\<Desactivar"

EndIf

Thisform.Refresh

Objeto: CmdTerminar Procedimiento: Click

Release Thisform

Page 18: Microsoft Visual Foxpro Ejemplos

Aplicación Nº 4

Se tiene un cajero automático el cual permite manipular cierta cantidad de dinero para lo cual dispone de los siguientes billetes: S/. 10.00, S/. 20.00, S/. 50.00, S/. 100.00 y S/. 200.00. Elaborar una aplicación que permita la lectura de la cantidad a retirar la cual debe ser múltiplo de 10 (caso contrario debe solicitar al usuario que ingrese un valor correcto, no debe aceptar la lectura de valores que no cumplan esta condición). La aplicación debe indicar el menor número de billetes a utilizar. El diseño de la interfaz debe ser similar a la siguiente figura:

 

Microsoft Visual FoxProGUÍA DE LABORATORIO Nº 3

Objetivos

Luego de completar este laboratorio, el estudiante será capaz de:

Manejar las diferentes propiedades y métodos del conjunto de formularios.

Identificar y utilizar los controles estándar adicionales. Utilizar cajas de diálogo predefinidas para visualizar mensajes.

Consideraciones

Para el desarrollo del presente laboratorio Ud. deberá crear una carpeta C:\FundVFP\Lab3, para guardar sus trabajos correspondientes a este laboratorio.

Page 19: Microsoft Visual Foxpro Ejemplos

Aplicación Nº 1

El ejercicio consiste en crear una aplicación que permita leer una fracción y de como resultado la fracción simplificada. Esto es, que halle la fracción irreductible equivalente.

Para el desarrollo de esta aplicación proceda a crear un nuevo formulario y luego vaya al Menú Formulario y elija la opción Crear conjunto de formularios (no se preocupe, pues no se apreciará nada en especial). Nuevamente vaya al Menú Formulario y elija la opción Agregar nuevo formulario. El Diseñador de formularios debe presentar una apariencia similar a la figura mostrada:

Page 20: Microsoft Visual Foxpro Ejemplos

A continuación proceda a ubicar los siguientes controles sobre el primer formulario (Form1):

2 etiquetas

2 cajas de texto

2 botones de comando

Seguidamente debe establecer las propiedades de los objetos según se indica:

Form1

  Name FrmIngreso

  Caption Ingreso de datos

  MaxButton .F.-Falso

  MinButton .F.-Falso

Label1

  Name LblNumerador

  Caption Numerador?

Label2

  Name LblDenominador

  Caption Denominador?

Text1

  Name TxtNumerador

  Value 0

Text2

  Name TxtDenominador

  Value 0

Command1

  Name CmdSimplificar

Page 21: Microsoft Visual Foxpro Ejemplos

  Caption Simplificar

  Default .T.-Verdadero

Command2

  Name CmdSalir

  Cancel .T.-Verdadero

  Caption Salir

A continuación proceda a ingresar el código que se muestra:

Objeto: CmdSimplificar Procedimiento: Click

nNumerador = Thisformset.FrmIngreso.TxtNumerador.Value

nDenominador = Thisformset.FrmIngreso.TxtDenominador.Value

If nNumerador < nDenominador Then

nC = nNumerador

Else

nC = nDenominador

EndIf

Do While (nNumerador % nC != 0) Or (nDenominador % nC != 0)

nC = nC - 1

EndDo

nNumerador = nNumerador / nC

nDenominador = nDenominador / nC

Thisformset.FrmIngreso.Hide

Thisformset.FrmSalida.Show

Thisformset.Refresh

Objeto: CmdSalir Procedimiento: Click

Page 22: Microsoft Visual Foxpro Ejemplos

Release Thisformset

Luego proceda a ubicar los siguientes controles sobre el segundo formulario (Form2):

1 etiqueta

1 caja de texto

1 botón de comando

Seguidamente debe establecer las propiedades de los objetos según se indica:

Form2

  Name FrmSalida

  Caption Salida

  MaxButton .F.-Falso

  MinButton .F.-Falso

Label1

  Name LblFraccion

  Caption Fracción simplificada:

Text1

  Name TxtFraccion

  Alignment 2-Centro

Command1

  Name CmdVolver

  Caption Volver

A continuación proceda a ingresar el código que se muestra:

Objeto: FrmSalida Procedimiento: Activate

cNumerador = Str(nNumerador)

cDenominador = Str(nDenominador)

Page 23: Microsoft Visual Foxpro Ejemplos

cFraccion = cNumerador + " / " + cDenominador

Thisformset.FrmSalida.TxtFraccion.Value = cFraccion

Thisformset.Refresh

Objeto: CmdVolver Procedimiento: Click

Thisformset.FrmSalida.Hide

Thisformset.FrmIngreso.Show

Thisformset.Refresh

Finalmente proceda a ingresar el código que se indica a continuación:

Objeto: Formset1 Procedimiento: Load

Public nNumerador

Public nDenominador

Public nC

Objeto: Formset1 Procedimiento: Init

Thisformset.FrmSalida.Hide

Thisformset.Refresh

Aplicación Nº 2

Este ejercicio consiste en elaborar una aplicación que acepte fechas como tres números (dd, mm, aaaa) y las visualice del modo usual. A manera de ejemplo considere lo siguiente:

Page 24: Microsoft Visual Foxpro Ejemplos

Cuando el usuario haga click en el botón Salir o en el botón Cerrar de la barra de título del formulario, se debe confirmar si desea terminar la aplicación, tal como se observa en la figura siguiente:

En caso de que el usuario elija la opción Si, la aplicación debe terminar. Caso contrario, es decir si el usuario elige la opción No, se debe proseguir con la aplicación.

Para el desarrollo de esta aplicación, proceda a ubicar los siguientes controles en el formulario:

4 etiquetas

3 controles numéricos

1 caja de texto

3 botones de comando

En seguida proceda a establecer las propiedades según se indica:

Form1

  Name FrmFecha

  Caption Fecha en letras

Page 25: Microsoft Visual Foxpro Ejemplos

  MaxButton .F.-Falso

  MinButton .F.-Falso

Label1

  Name LblDia

  AutoSize .T.-Verdadero

  Caption Día:

Label2

  Name LblMes

  AutoSize .T.-Verdadero

  Caption Mes:

Label3

  Name LblAnno

  AutoSize .T.-Verdadero

  Caption Año:

Label4

  Name LblEnLetras

  AutoSize .T.-Verdadero

  Caption En letras:

Spinner1

  Name SpnDia

  SpinnerHighValue 31

  SpinnerLowValue 1

Spinner2

  Name SpnMes

  SpinnerHighValue 12

  SpinnerLowValue 1

Page 26: Microsoft Visual Foxpro Ejemplos

Spinner3

  Name SpnAnno

  SpinnerHighValue 9999

  SpinnerLowValue 0

Text1

  Name TxtEnLetras

  Alignment 2-Centro

Command1

  Name CmdAceptar

  Caption \<Aceptar

  Default .T.-Verdadero

Command2

  Name CmdLimpiar

  Caption \<Limpiar

Command3

  Name CmdSalir

  Cancel .T.-Verdadero

  Caption \<Salir

Una vez establecidas las propiedades proceda a ingresar el código que se indica a continuación:

Objeto: FrmFecha Procedimiento: Load

Set Date French

Set Century On

Objeto: FrmFecha Procedimiento: QueryUnload

#DEFINE vfpYesNo 4

Page 27: Microsoft Visual Foxpro Ejemplos

#DEFINE vfpYes 6

#DEFINE vfpQuestion 32

If MessageBox("¿Desea terminar la aplicación?", ;

vfpQuestion + vfpYesNo, "Pregunta") = vfpYes Then

Release Thisform

Else

NoDefault

EndIf

Objeto: CmdAceptar Procedimiento: Click

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 Procedimiento: Click

Thisform.SpnDia.Value = 0

Thisform.SpnMes.Value = 0

Page 28: Microsoft Visual Foxpro Ejemplos

Thisform.SpnAnno.Value = 0

Thisform.TxtEnLetras.Value = ""

Thisform.SpnDia.Setfocus

Thisform.Refresh

Objeto: CmdSalir Procedimiento: Click

Thisform.QueryUnload

Aplicación Nº 3

Este ejercicio consiste en elaborar un formulario que permita leer un número entero y visualice su tabla se multiplicar. Para construir la tabla de multiplicar vamos a utilizar un control cuadro de edición, el cual tiene propiedades similares a un cuadro de texto, pero permite escribir texto en líneas diferentes.

Para el desarrollo de esta aplicación, proceda a ubicar los siguientes controles en el formulario:

1 etiqueta

1 caja de texto

1 cuadro de edición

1 botón de comandos

En seguida proceda a establecer las propiedades según se indica:

Page 29: Microsoft Visual Foxpro Ejemplos

Form1

  Name FrmTabla

  Caption Tabla de multiplicar

  MaxButton .F.-Falso

  MinButton .F.-Falso

Label1

  Name LblNumero

  Caption Ingrese un número:

 

Text1

  Name TxtNumero

  Alignment 2-Centro

Edit1

  Name EdtTabla

  ScrollBars 2-Vertical

Command1

  Name CmdLimpiar

  Caption \<Limpiar

  Default .T.-Verdadero

Una vez diseñada la interfaz, proceda a ingresar el código que se indica a continuación:

Objeto: TxtNumero Procedimiento: InteractiveChange

nN = Val(Thisform.TxtNumero.Value)

cS = ""

For nI = 0 To 12

Page 30: Microsoft Visual Foxpro Ejemplos

nP = nN * nI

cS = cS + Str(nN) + " * " + Str(nI) + " = " + Str(nP) ;

+ Chr(13)

Next

Thisform.EdtTabla.Value = cS

Thisform.Refresh

Objeto: CmdLimpiar Procedimiento: Click

Thisform.TxtNumero.Value = ""

Thisform.EdtTabla.Value = ""

Thisform.Refresh

Aplicación Nº 4

Elaborar una aplicación que acepte como entrada la reserva de agua de un depósito y los litros que se consumen a la semana. La aplicación debe dar como resultado las cantidades de agua que quedan al final de cada semana. El proceso finalizará cuando no quede agua suficiente para una semana. Utilizar otro formulario para mostrar la salida. El diseño de la interfaz debe ser similar a la figura mostrada:

Page 31: Microsoft Visual Foxpro Ejemplos

 

 

Microsoft Visual FoxProGUÍA DE LABORATORIO Nº 4

Objetivos

Luego de completar este laboratorio, el estudiante será capaz de:

Usar casillas de verificación y botones de opción para alternar entre uno o más valores.

Establecer las principales propiedades y métodos de las listas desplegables y cuadros combinados.

Consideraciones

Para el desarrollo del presente laboratorio Ud. deberá crear una carpeta C:\FundVFP\Lab4, para guardar sus trabajos correspondientes a este laboratorio.

Page 32: Microsoft Visual Foxpro Ejemplos

Aplicación Nº 1

Este ejercicio consiste en elaborar una aplicación que permita cambiar el aspecto de una caja de texto. El usuario debe elegir el tipo de fuente a utilizar, el estilo, el color y el tamaño. El diseño de la interfaz debe ser similar a:

Para el desarrollo de esta aplicación, proceda a ubicar los siguientes controles en el formulario:

5 etiquetas

1 caja de texto

1 cuadro combinado

1 lista

3 casillas de verificación

1 grupo de botones de opción

1 botón de comando

En seguida proceda a establecer las propiedades según se indica:

Form1

  Name FrmEditor

  AutoCenter .T.-Verdadero

  Caption Editor

  MaxButton .F.-Falso

  MinButton .F.-Falso

Page 33: Microsoft Visual Foxpro Ejemplos

Label1

  Name LblTexto

  Caption Texto

Label2

  Name LblFuente

  Caption Fuente

Label3

  Name LblTamaño

  Caption Tamaño

Label4

  Name LblEstilo

  Caption Estilo

Label5

  Name LblColor

  Caption Color

Combo1

  Name CboFuente

List1

  Name LstTamaño

Text1

  Name TxtTexto

  ForeColor 255, 0, 0

Check1

Page 34: Microsoft Visual Foxpro Ejemplos

  Name ChkNegrita

  Caption Negrita

  FontBold .T.-Verdadero

Check2

  Name ChkCursiva

  Caption Cursiva

  FontItalic .T.-Verdadero

Check3

  Name ChkSubrayado

  Caption Subrayado

  FontUnderline .T.-Verdadero

 

OptionGroup1

  ButtonCount 3

Option1

  Name OptRojo

  ForeColor 255, 0, 0

Option2

  Name OptVerde

  ForeColor 0, 255, 0

Option3

  Name OptAzul

  ForeColor 0, 0, 255

Command1

Page 35: Microsoft Visual Foxpro Ejemplos

  Name CmdSalir

  Caption \<Salir

  Default .T.-Verdadero

Una vez establecidas las propiedades de la interfaz, proceda a ingresar el código que se muestra a continuación:

Objeto: FrmEditor Procedimiento: Init

Thisform.CboFuente.AddItem("Arial")

Thisform.CboFuente.AddItem("Arial Black")

Thisform.CboFuente.AddItem("Courier New")

Thisform.CboFuente.AddItem("Garamond")

Thisform.CboFuente.AddItem("Impact")

Thisform.CboFuente.AddItem("MS Sans Serif")

Thisform.CboFuente.AddItem("Technical")

Thisform.CboFuente.AddItem("Times New Roman")

For nI = 8 To 20 Step 2

Thisform.LstTamaño.AddItem(Alltrim(Str(nI)))

Next

Objeto: FrmEditor Procedimiento: QueryUnload

#DEFINE vfpYesNo 4

#DEFINE vfpYes 6

#DEFINE vfpQuestion 32

If MessageBox("¿Desea terminar la aplicación?", ;

vfpQuestion + vfpYesNo, "Pregunta") = vfpYes Then

Release Thisform

Page 36: Microsoft Visual Foxpro Ejemplos

Else

NoDefault

EndIf

Objeto: CboFuente Procedimiento: Click

Thisform.TxtTexto.FontName = Thisform.CboFuente.Value

Thisform.Refresh

Objeto: LstTamaño Procedimiento: Click

nTamaño = Val(Thisform.LstTamaño.Value)

Thisform.TxtTexto.FontSize = nTamaño

Thisform.Refresh

Objeto: ChkNegrita Procedimiento: Click

If Thisform.ChkNegrita.Value = 1 Then

Thisform.TxtTexto.FontBold = .T.

Else

Thisform.TxtTexto.FontBold = .F.

EndIf

Thisform.Refresh

Objeto: ChkCursiva Procedimiento: Click

If Thisform.ChkCursiva.Value = 1 Then

Thisform.TxtTexto.FontItalic = .T.

Else

Thisform.TxtTexto.FontItalic = .F.

EndIf

Page 37: Microsoft Visual Foxpro Ejemplos

Thisform.Refresh

Objeto: ChkSubrayado Procedimiento: Click

If Thisform.ChkSubrayado.Value = 1 Then

Thisform.TxtTexto.FontUnderline = .T.

Else

Thisform.TxtTexto.FontUnderline = .F.

EndIf

Thisform.Refresh

Objeto: OptRojo Procedimiento: Click

Thisform.TxtTexto.ForeColor = RGB(255, 0, 0)

Thisform.Refresh

Objeto: OptVerde Procedimiento: Click

Thisform.TxtTexto.ForeColor = RGB(0, 255, 0)

Thisform.Refresh

Objeto: OptAzul Procedimiento: Click

Thisform.TxtTexto.ForeColor = RGB(0, 0, 255)

Thisform.Refresh

Objeto: CmdSalir Procedimiento: Click

Thisform.QueryUnload

Aplicación Nº 2

Este ejercicio consiste en desarrollar una aplicación que permita ingresar el nombre de un curso, el cual pasa a formar parte de una lista de espera antes de ser programado para su dictado. Los cursos deben ser seleccionados de la lista

Page 38: Microsoft Visual Foxpro Ejemplos

de espera y trasladados a la lista de cursos programados y viceversa. El diseño de la interfaz debe ser similar a la figura mostrada:

Aplicación Nº 2

Este ejercicio consiste en desarrollar una aplicación que permita ingresar el nombre de un curso, el cual pasa a formar parte de una lista de espera antes de ser programado para su dictado. Los cursos deben ser seleccionados de la lista de espera y trasladados a la lista de cursos programados y viceversa. El diseño de la interfaz debe ser similar a la figura mostrada:

Para el desarrollo de esta aplicación proceda a ubicar los siguientes controles en el formulario:

3 etiquetas

1 cuadro de texto

2 listas

5 botones de comando

En seguida proceda a establecer las propiedades según se indica:

Form1

  Name FrmCursos

  Caption Cursos

Page 39: Microsoft Visual Foxpro Ejemplos

  MaxButton .F.-Falso

  MinButton .F.-Falso

Label1

  Name LblCurso

  Caption Ingrese nuevo curso:

Label2

  Name LblSeleccionar

  Caption Seleccione un curso:

Label3

  Name LblProgramado

  Caption Curso programado:

Text1

  Name TxtCurso

List1

  Name LstSeleccionar

List2

  Name LstProgramado

Command1

  Name CmdAgregar

  Caption  

  Picture C:\FundVFP\Bitmaps\AddItem.Bmp

 

Command2

Page 40: Microsoft Visual Foxpro Ejemplos

  Name CmdAgregarTodo

  Caption  

  Picture C:\FundVFP\Bitmaps\AddAll.Bmp

Command3

  Name CmdQuitar

  Caption  

  Picture C:\FundVFP\Bitmaps\Remove.Bmp

Command4

  Name CmdQuitarTodo

  Caption  

  Picture C:\FundVFP\Bitmaps\RemoveAll.Bmp

Command5

  Name CmdAnnadir

  Caption \<Añadir

En seguida proceda a ingresar el código que se indica:

Objeto: CmdAnnadir Procedimiento: Click

Thisform.LstSeleccionar.Additem(Thisform.TxtCurso.Value)

Thisform.TxtCurso.Value = ""

Thisform.TxtCurso.SetFocus

Objeto: LstSeleccionar Procedimiento: Click

If Thisform.LstSeleccionar.ListIndex != 0 Then

Thisform.CmdAgregar.Enabled = .T.

Thisform.CmdAgregarTodo.Enabled = .T.

EndIf

Page 41: Microsoft Visual Foxpro Ejemplos

Thisform.Refresh

Objeto: LstProgramado Procedimiento: Click

If Thisform.LstProgramado.ListIndex != 0 Then

Thisform.CmdQuitar.Enabled = .T.

Thisform.CmdQuitarTodo.Enabled = .T.

EndIf

Thisform.Refresh

Objeto: CmdAgregar Procedimiento: Click

cCurso = Thisform.LstSeleccionar.Value

nCurso = Thisform.LstSeleccionar.ListIndex

If Thisform.LstSeleccionar.ListCount > 0 Then

Thisform.LstProgramado.AddItem(cCurso)

Thisform.LstSeleccionar.RemoveItem(nCurso)

Thisform.LstSeleccionar.ListIndex = 0

Thisform.CmdAgregar.Enabled = .F.

Thisform.CmdAgregarTodo.Enabled = .F.

EndIf

Thisform.Refresh

Objeto: CmdQuitar Procedimiento: Click

cCurso = Thisform.LstProgramado.Value

nCurso = Thisform.LstProgramado.ListIndex

If Thisform.LstProgramado.ListCount > 0 Then

Thisform.LstSeleccionar.AddItem(cCurso)

Page 42: Microsoft Visual Foxpro Ejemplos

Thisform.LstProgramado.RemoveItem(nCurso)

Thisform.LstProgramado.ListIndex = 0

Thisform.CmdQuitar.Enabled = .F.

Thisform.CmdQuitarTodo.Enabled = .F.

EndIf

Thisform.Refresh

Objeto: CmdAgregarTodo Procedimiento: Click

For nI = 1 To Thisform.LstSeleccionar.ListCount

Thisform.LstProgramado.AddItem;

(Thisform.LstSeleccionar.List(nI))

Next

Thisform.LstSeleccionar.Clear

Thisform.CmdAgregar.Enabled = .F.

Thisform.CmdAgregarTodo.Enabled = .F.

Thisform.Refresh

Objeto: CmdQuitarTodo Procedimiento: Click

For nI = 1 To Thisform.LstProgramado.ListCount

Thisform.LstSeleccionar.AddItem;

(Thisform.LstProgramado.List(nI))

Next

Thisform.LstProgramado.Clear

Thisform.CmdQuitar.Enabled = .F.

Thisform.CmdQuitarTodo.Enabled = .F.

Page 43: Microsoft Visual Foxpro Ejemplos

Thisform.Refresh

Objeto: FrmCursos Procedimiento: QueryUnload

#DEFINE vfpYesNo 4

#DEFINE vfpYes 6

#DEFINE vfpQuestion 32

If MessageBox("¿Desea terminar la aplicación?", ;

vfpQuestion + vfpYesNo, "Pregunta") = vfpYes Then

Release Thisform

Else

NoDefault

EndIf

Aplicación Nº 3

El ejercicio consiste en elaborar una aplicación que permita leer   números de tipo entero, y a continuación los visualice ordenados en forma ascendente o descendente. Utilice el método de la burbuja para realizar la ordenación.

Para el desarrollo de esta aplicación, proceda a ubicar los siguientes controles en el formulario:

3 etiquetas

1 caja de texto

Page 44: Microsoft Visual Foxpro Ejemplos

1 lista

1 grupo de botones de opción

3 botones de comando

En seguida proceda a establecer las propiedades según se indica:

Form1

  Nombre FrmBurbuja

  Caption Ordenación por burbuja

  MaxButton .F.-Falso

  MinButton .F.-Falso

 

Label1

  Name LblNumero

  Caption Ingrese un nuevo número:

Label2

  Name LblOrden

  Caption Orden:

Label3

  Name LblLista

  Caption Lista de números:

Text1

  Name TxtNumero

  Value 0

List1

  Name LstNumero

Page 45: Microsoft Visual Foxpro Ejemplos

Option1

  Nombre OptAscendente

  Caption Ascendente

Option2

  Nombre OptDescendente

  Caption Descendente

Command1

  Nombre CmdAnnadir

  Caption \<Añadir

  Default True

Command2

  Nombre CmdOrdenar

  Caption \<Ordenar

Command3

  Nombre CmdSalir

  Cancel .T.-Verdadero

  Caption \<Salir

  Picture C:\Archivos de programa\Microsoft Visual

Studio\Common\Graphics\Icons\Arrows\

Point04.ico

Una vez establecidas las propiedades proceda a ingresar el código que se indica a continuación:

Objeto: FrmBurbuja Procedimiento: QueryUnload

#DEFINE vfpYesNo 4

#DEFINE vfpYes 6

Page 46: Microsoft Visual Foxpro Ejemplos

#DEFINE vfpQuestion 32

If MessageBox("¿Desea terminar la aplicación?", ;

vfpQuestion + vfpYesNo, "Pregunta") = vfpYes Then

Release Thisform

Else

NoDefault

EndIf

Objeto: CmdAnnadir Procedimiento: Click

Thisform.LstNumero.AddItem(Thisform.TxtNumero.Value)

Thisform.TxtNumero.Value = ""

Thisform.TxtNumero.SetFocus

Objeto: CmdOrdenar Procedimiento: Click

nN = Thisform.LstNumero.ListCount

Dimension nA(nN) As Integer

For nI = 1 To nN

nA(nI) = Thisform.LstNumero.List(nI)

Next

If Thisform.OptionGroup1.OptAscendente.Value = 1 Then

For nI = 1 To nN - 1

For nJ = nI + 1 To nN

If nA(nI) > nA(nJ) Then

nT = nA(nI)

nA(nI) = nA(nJ)

Page 47: Microsoft Visual Foxpro Ejemplos

nA(nJ) = nT

EndIf

Next

Next

EndIf

If Thisform.OptionGroup1.OptDescendente.Value = 1 Then

For nI = 1 To nN - 1

For nJ = nI + 1 To nN

If nA(nI) < nA(nJ) Then

nT = nA(nI)

nA(nI) = nA(nJ)

nA(nJ) = nT

EndIf

Next

Next

EndIf

Thisform.LstNumero.Clear

For nI = 1 To nN

Thisform.LstNumero.List(nI) = nA(nI)

Next

Objeto: CmdSalir Procedimiento: Click

Thisform.QueryUnload

Aplicación Nº 4

Page 48: Microsoft Visual Foxpro Ejemplos

Desarrollar una aplicación que permita realizar consultas acerca de un determinado curso, los cuales se mostraran en una lista. El usuario debe seleccionar un curso y en seguida se debe presentar el nombre del profesor encargado del curso (teoría), el nombre del jefe de práctica (laboratorio), así como los horarios de teoría y de laboratorio, respectivamente. El diseño de la interfaz debe ser similar a la figura que se muestra:

 

Microsoft   Visual FoxPro GUÍA DE LABORATORIO Nº 5

Objetivos

Luego de completar este laboratorio, el estudiante será capaz de:

Crear métodos definidos por el usuario. Pasar correctamente los argumentos a un método. Ejecutar métodos desde un formulario. Implementar métodos que devuelvan múltiples valores.

Consideraciones

Page 49: Microsoft Visual Foxpro Ejemplos

Para el desarrollo del presente laboratorio Ud. deberá crear una carpeta C:\FundVFP\Lab5, para guardar sus trabajos correspondientes a este laboratorio.

Aplicación Nº 1

Este primer ejercicio consiste en escribir un método que reciba como argumento una cadena de caracteres y la devuelva en forma inversa. Por ejemplo si se ingresa la cadena CORAZON deberá retornar NOZAROC.

Para el desarrollo de esta aplicación, proceda a ubicar los siguientes controles en el formulario:

2 etiquetas

2 cajas de texto

3 botones de comando

En seguida proceda a establecer las propiedades según se indica:

Form1

  Nombre FrmPrueba_Cadena

  Caption Cadena invertida

  MaxButton .F.-Falso

  MinButton .F.-Falso

Label1

  Nombre LblCadena

  Caption Ingrese una cadena:

Page 50: Microsoft Visual Foxpro Ejemplos

Label2

  Nombre LblInvertida

  Caption Cadena invertida:

Text1

  Nombre TxtCadena

  Enabled .T.-Verdadero

Text2

  Nombre TxtInvertida

  Enabled .F.-Falso

 

Command1

  Nombre CmdAceptar

  Caption \<Aceptar

  Default .T.-Verdadero

Command2

  Nombre CmdLimpiar

  Caption \<Limpiar

Command3

  Nombre CmdSalir

  Cancel .T.-Verdadero

  Caption \<Salir

Una vez establecidas las propiedades de la interfaz, proceda a crear un nuevo método, denominado CadInvertida. Para ello vaya al Menú Formulario y elija la opción Crear nuevo método. Se debe presentar una ventana similar a la figura siguiente:

Page 51: Microsoft Visual Foxpro Ejemplos

Ingrese los datos que se muestran y a continuación dar click en el botón Agregar. Luego, dar doble click sobre el formulario y transcriba el siguiente código:

Objeto: FrmPrueba_Cadena Procedimiento: CadInvertida

Parameters cCadena

nN = Len(Alltrim(cCadena))

Dimension cTemporal(nN)

For nI = 1 To nN

cTemporal(nI) = SubStr(cCadena, nI, 1)

Next

cCadena = ""

For nJ = nN To 1 Step -1

cInvertida = cInvertida + cTemporal(nJ)

Next

Return cInvertida

Objeto: CmdAceptar Procedimiento: Click

cCadena = Thisform.TxtCadena.Value

Thisform.TxtInvertida.Value = Thisform.CadInvertida(cCadena)

Page 52: Microsoft Visual Foxpro Ejemplos

Thisform.Refresh

Aplicación Nº 2

Este ejercicio consiste en crear un método que reciba como argumento los apellidos y nombres de un cliente (en ese orden) y retorne los nombres y apellidos del mismo.

Para el desarrollo de esta aplicación proceda a crear un nuevo método denominado NomApe. Luego transcriba el siguiente código:

Objeto: FrmPrueba_NomApe Procedimiento: NomApe

Parameters cApeNom

nN = Len(Alltrim(cApeNom))

Dimension cNom(nN)

Dimension cApe(nN)

For nI = 1 To nN

If SubStr(cApeNom, nI, 1) = "," Then

Exit

EndIf

Next

cApe = SubStr(cApeNom, 1, nI-1)

cNom = SubStr(cApeNom, nI + 1, nN - nI)

Page 53: Microsoft Visual Foxpro Ejemplos

cNomApe = cNom + " " + cApe

Return cNomApe

Aplicación Nº 3

Para calcular el porcentaje de humedad de una muestra sólida primero se pesa la muestra ( ), luego se le lleva a la estufa de 120 a 150 ºC por un tiempo de 2 horas aproximadamente. A continuación se deja enfriar la muestra y se pesa nuevamente ( ). Finalmente se realiza el siguiente cálculo:

Nuestro trabajo consiste en crear un método que permita realizar el cálculo anterior.

Para el desarrollo de esta aplicación proceder a cera un nuevo método denominado Humedad. Luego ingrese el siguiente código:

Objeto: FrmPrueba_Humedad Procedimiento: Humedad

Parameters nM1, nM2

nH = 100 * (nM1 - nM2) / nM1

Return nH

Objeto: CmdAceptar Procedimiento: Click

nMasa1 = Val(Thisform.TxtMasa1.Value)

nMasa2 = Val(Thisform.TxtMasa2.Value)

Page 54: Microsoft Visual Foxpro Ejemplos

nHumedad = Thisform.Humedad(nMasa1, nMasa2)

Thisform.TxtHumedad.Value = Str(nHumedad, 10, 4)

Thisform.Refresh

Aplicación Nº 4

Escriba un método que reciba como parámetro la fecha de nacimiento del usuario. Debe retornar el signo zodiacal, el día de nacimiento y la cantidad de días vividos hasta la fecha actual. Utilice un formulario de prueba para verificar la funcionalidad del método creado.

Sugerencia

Retorne un único valor como una cadena de caracteres, en la cual estén incluidos los valores que se piden. A manera de ejemplo considere lo siguiente:

cRpta = cZodiaco + cDiaNacimiento + cDiasVividos + cFechaHoy

Return cRpta

 

Fin del Nivel I