Академический Документы
Профессиональный Документы
Культура Документы
1 de 20
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
(POO) En Foxpro!!
[http://3.bp.blogspot.com/-O9h66CeTuaY
/T6XR4H1m3zI/AAAAAAAAAAs/wgAB9Nrsag8/s1600/descarga.jpg]
Visual FoxPro es una eficaz herramienta de administracin de datos, pero adems podr beneficiarse de
toda su eficacia para crear aplicaciones. Comprender las tcnicas de programacin orientada a objetos y
el modelo controlado por eventos puede aumentar su productividad como programador.
Conceptos iniciales.
Variable: Espacio de memoria que permite almacenar informacin que puede cambiar o variar durante la
ejecucin de un programa. Las variables pueden ser dos tipos: numricas y alfanumricas. El nombre de
una variable puede contener hasta 8 caracteres: letras y nmeros. Debe comenzar con una letra.
Constante: Valor que no cambia o varia durante la ejecucin de un programa. Ejemplo de una constante
es el nmero Pi que siempre vale 3,1416
02/07/2015 20:44
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
Ejemplos: Do A:Programa
Do Sueldos
Comandos de Programacin
Clear: Borra / Limpia pantalla
* Note: El asterisco o Note permite al usuario hacer un comentario o breve descripcin del programa.
Set Talk Off / On: Desactiva/activa la visualizacin de mensajes e inicializaciones propios del foxpro.
Set Bell Off / On: Activa/ desactiva la emisin de sonidos (pitido) al momento de rellenar campos o
variables.
Set Stat On/Off: Activa / desactiva la visualizacin de la lnea de status en el foxpro.
@ Fila, Col to Fil,Col: Permite generar o imprimir un cuadro en pantalla, donde el usuario indica las
coordenadas del extremo superior izquierdo y el extremo inferior derecho.
2 de 20
Cdigo ms compacto.
Incorporacin ms sencilla del cdigo a las aplicaciones sin necesidad de elaborar esquemas
de asignacin de nombres.
3 de 20
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
aplicaciones
Las clases y los objetos estn estrechamente relacionados, pero no son lo mismo. Una clase
contiene informacin sobre cul debe ser la apariencia y el comportamiento de un objeto. Una
clase es el plano
o esquema de un objeto. Por ejemplo, el esquema elctrico y de diseo de un telfono sera
algo similar a una clase. El objeto o una instancia de la clase sera el telfono.
02/07/2015 20:44
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
Descripcin
El valor de la casilla de verificacin se actualiza para reflejar los cambios
que se puedan haber producido en el origen de datos subyacente.
SetFocus El enfoque se establece en la casilla de verificacin como si el usuario
hubiera presionado la tecla TAB hasta activar la casilla de verificacin.
4 de 20
02/07/2015 20:44
5 de 20
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
Descripcin de las clases de Visual FoxPro Todas las propiedades, eventos y mtodos de un
objeto se especifican en la definicin de clase. Adems, las clases tienen las siguientes
caractersticas que las hacen especialmente tiles para crear cdigo reutilizable y fcil de
mantener:
v Encapsulamiento
v Subclases
v Herencia
Ocultar la complejidad innecesaria Cuando instale un telfono en la oficina, lo ms probable es
que no le interese el funcionamiento interno del aparato para la recepcin de llamadas, la
realizacin o la finalizacin de conexiones con centralitas electrnicas o la conversin de las
pulsaciones de tecla en seales electrnicas. Lo nico que necesitar saber es que puede
levantar el auricular, marcar los nmeros apropiados y hablar con la persona con la que desea
hablar. La complejidad de realizar esa conexin queda oculta. La ventaja de ignorar los detalles
internos de un objeto para poder centrarse en los aspectos del objeto que necesita utilizar se
denomina abstraccin.
02/07/2015 20:44
6 de 20
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
Contenedores y no contenedores
Los dos tipos principales de clases de Visual FoxPro y por extensin, de objetos de Visual
FoxPro, son las clases de contenedor y las clases de control.
Clases de contenedor
Los contenedores pueden incluir otros objetos y permiten el acceso a los objetos que contienen.
Por ejemplo, si crea una clase de contenedor que consta de dos cuadros de lista y dos botones
de comando, a continuacin, agrega a un formulario un objeto basado en esta clase, cada
objeto individual podr manipularse en tiempo de ejecucin y en tiempo de diseo. Puede
cambiar fcilmente las posiciones de los cuadros de lista o los ttulos de los botones de
comando. Tambin puede agregar objetos al control en tiempo de diseo; por ejemplo, puede
agregar etiquetas para identificar los cuadros de lista.
La tabla siguiente muestra los posibles componentes de cada clase de contenedor:
Contenedor
Puede contener
Botones de comando
Contenedor
Cualquier control
Control
Cualquier control
Personalizado
Personalizado
Formularios
Columnas de cuadrcula
02/07/2015 20:44
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
7 de 20
02/07/2015 20:44
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
Establecer propiedades.
Las propiedades de un objeto pueden establecerse en tiempo de ejecucin o en tiempo de diseo.
Para establecer una propiedad
Utilice esta sintaxis:
Contenedor.Objeto.Propiedad = ValorManual del programador, Parte 1: Programacin en Visual FoxPro
Pgina 55 de 83
Por ejemplo, las instrucciones siguientes establecen varias propiedades de un a cuadro de textollamado
txtDate en un formulario llamado frmPhoneLog:
frmPhoneLog.txtDate.Value = DATE( ) && Muestra la fecha actual
frmPhoneLog.txtDate.Enabled = .T. && El control est activado
frmPhoneLog.txtDate.ForeColor = RGB(0,0,0)
&& texto en negro
frmPhoneLog.txtDate.BackColor = RGB(192,192,192) && fondo en gris
Para la configuracin de propiedades de los ejemplos anteriores, frmPhoneLog es el objeto
contenedor de mayor nivel. Si frmPhoneLog estuviera incluido en un conjunto de formularios,
tambin debera incluir el conjunto de formularios en la ruta de acceso primaria:
frsContacts.frmPhoneLog.txtDate.Value = DATE( )
8 de 20
02/07/2015 20:44
9 de 20
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
Direccin = ""
FechaContr = { - - }
PROCEDURE ObtFechaContr
RETURN This.FechaContr
ENDPROC
ENDDEFINE
02/07/2015 20:44
10 de 20
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
[http://2.bp.blogspot.com/-DM_sTQrxxZI
/T6XR9w2YtsI/AAAAAAAAAA0/CkFX8UZUEMc/s1600/1023481foxpro_logo.gif]
02/07/2015 20:44
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
Explicacin:
Imprime en la fila 10 columna 10 el literal Incluya su nombre
Imprime la variable Sueldo en la fila 15 columna 20
Get-Read: El comando Get permite aceptar valores desde el teclado, el comando Read asigna los
valores ledos a la variable o variables especificadas. Todo Get o grupo de Gets debe tener su
correspondiente Read. Esto dos comandos se usan en la mayora de los casos en combinacin con el @
Say.
Formato : @ Fil, Col Say [Literal] get Variable
Read
Ejemplos:
@ 10,10 say Introduzca su nombre Get Nombre
Read
@ 10,10 say Incluya el monto de la venta Get Venta
@ 12,10 say Indique el % de descuento Get Desc
Read
Picture: El comando Picture permite establecer un formato (mscara) bien sea de entrada o de salida de
los datos. El picture maneja distintas plantillas relacionadas con los diferentes tipos de datos que pueden
ser incluidos.
Plantilla
Accin
11 de 20
02/07/2015 20:44
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
N=Negro Bg = Cian
W=Blanco Gr = Marrn
12 de 20
02/07/2015 20:44
13 de 20
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
Condiciones.
En foxpro el comando que permite establecer condiciones es el If- Else - Endif, en el cual si la condicin
verificada es cierta; se ejecutan las rdenes ubicadas despus del If; si es falsa va a ejecutar las
instrucciones ubicadas despus del Else.
Formato:
If [Condicin]
Instrucciones
Else
Instrucciones
Endif
El Endif establece el final de las instrucciones que se ejecutan dependiendo de la condicin que se est
verificando.
Ejemplo:
@ 10,20 say Introduzca el sueldo del empleado get Suel
Read
If Suel > 50000
Comision = Suel * 4 /100
Vacacion = Suel / 30 * 45
else
Comision = Suel * 10 /100
Vacacion = Suel / 30 * 90
Endif
Explicacin:
En este ejemplo se evala el contenido de la variable Suel; si sta almacena un valor mayor de 50000,
el programa procede a calcular una variable llamada comisin como el 4 % de Suel y Vacacion como 45
das de sueldo, de lo contrario, en caso de almacenar 50000 o menos, el programa procede a calcular
Comision como el 10 % de Suel y Vacacion como 90 das de sueldo.
Otra forma de desarrollar el caso anterior es el siguiente:
@ 10,20 say Introduzca el sueldo del empleado get Suel
Read
If Suel > 50000
Comision = Suel * 4 /100
Vacacion = Suel / 30 * 45
Endif
02/07/2015 20:44
14 de 20
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
Operadores lgicos
Los operadores lgicos son estructuras que permite desarrollar o establecer varias condiciones en un
mismo if; establece condiciones lgicas. Los operadores lgicos son:
Operador Lgico
.And.
.Or.
.Not.
Explicacin
Basta que una de las condiciones parciales se cumpla, para que la condicin final
sea cierta
La condicin evaluada debe ser falsa para que la condicin final sea cierta
Ejemplos:
@ 5,20 say Sueldo: get sue pict 99999
Read
If sue>50000 .and. sue <100000
Bono=sue *4 / 100
Endif
2. @ 5,20 say Calificacin: get Calif pict 99 range 1,20
Read
If calif>10 .or. Calif =10
@ 7,30 say Nota aprobatoria
Endif
Explicacin:
Si el valor que se incluye a la variable sue (sueldo) est comprendido entre 50000 y 100000, entonces el
programa procede a calcular Bono como el 4 % de sue.
Si la calificacin incluida a la variable calif es mayor a 10 o igual se imprime el mensaje de nota
aprobatoria.
Do Case - Endcase: El Do case - Endcase es un comando de seleccin mltiple, esto es, que verifica
multiples condiciones (2 o ms) y dependiendo de aquella que se cumpla ejecutar una serie de
instrucciones.
Formato:
02/07/2015 20:44
15 de 20
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
Do case
Case [Condicin 1]
Instrucciones
Case [Condicin 2]
Instrucciones:
Case [Condicin N]
Instrucciones
Otherwise
Instrucciones
Endcase
El Otherwise es una instruccin que se ejecuta cuando ninguna de las opciones establecidas se cumple.
Cumple similar funcin que el Else en el If. En el Do Case se debe colocar Endcase una sola vez.
Ejemplo:
Clear
Nm=0
@ 10,10 say Introduzca el N del mes: get nm pict 99 range 1,12
Read
Do case
Case nm=1
@ 12,20 say Enero
Case nm=2
@ 12,20 say Febrero
Case nm=3
@ 12,20 say Marzo
:
Case nm=12
@ 12,20 say Diciembre
Endcase
Explicacin:
Dependiendo del valor que tome la variable nm se imprime el nombre del mes. Al usar el comando
range solo se aceptan valores que van de 1 a 12.
Contadores y acumuladores
Los contadores y acumuladores son variables numricas que permiten determinar informacin especfica
durante la ejecucin de un programa. A continuacin se presenta un cuadro con las caractersticas ms
importantes de estas variables.
Contador
Acumulador
02/07/2015 20:44
16 de 20
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
02/07/2015 20:44
17 de 20
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
02/07/2015 20:44
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
En este ejemplo se pide la nota de 15 alumnos y posteriormente se halla o calcula el promedio de esas
notas, as como tambin la cantidad de alumnos aprobados y aplazados.
Do While - Enddo: Permite repetir una serie de instrucciones mientras la condicin que se est
verificando es cierta. Al momento de dejarse de cumplir la condicin, el control del programa pasa a la
siguiente instruccin despus del Enddo. En caso de que se tengan que verificar dos o ms condiciones
se deben utilizar los operadores lgicos.
Formato:
Do While <Condicin> (And / or) <Condicin>
Instrucciones
Enddo
Ejemplos:
* Programa que calcula la suma de los 10 primeros nmeros naturales
Set talk off
Set bell off
Set stat off
Suma=0
Contador=1
Do While Contador <=10
Suma=Suma+Contador
Contador=Contador+1
Enddo
@ 5,20 say La suma es:
@ 5,40 say Suma Pict 99
En el ejemplo anterior por medio del Do while se han generado los nmeros del 1 al 10 y por medio del
ciclo se acumulan esos valores en la variable suma. Al imprimirla se imprime el valor de la suma total de
los 10 primeros nmeros naturales.
* Programa que pide el sueldo de 20 empleados y calcula el total de sueldos y el *sueldo promedio
Tsueldo=0
Contador=1
Do While Contador <=20
Sueldo=0
Clear
@ 5,20 say Empleado N
@ 5, 32 say Contador pict 99
@ 8,20 say Introduzca el sueldo del empleado get Sueldo Pict 99999
range 120000,500000
read
18 de 20
02/07/2015 20:44
19 de 20
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
Tsueldo=Tsueldo+sueldo
Contador=Contador+1
Enddo
Sueldop=Tsueldo / 20
Clear
@ 10,20 say El total de los sueldos es:
@ 10,40 say Tsueldo pict 9999999
@ 12,20 say El sueldo promedio es:
@ 12,40 say Sueldop pict 9999999
En el ejemplo anterior por medio del Do while se ha desarrollado un proceso que permite pedir el sueldo
de 20 empleados y posteriormente hallar el total de los sueldos (por medio de un acumulador), mientras
que la variable contador controla la cantidad de empleados ledos. Al tener el total de los sueldos, se
puede obtener tambin el sueldo promedio al dividir el acumulador entre el nmero de empleados que es
de 20.
Comando Col( ): El comando Col( ) devuelve el Nmero de columna en que se encuentra ubicado el
cursor.
Formato: Col( )
Ejemplo:
@ 5,20 say Monto vendido:
@ 5,col()+1 say Montov Pict 99
En el ejemplo la variable Montov ser impresa en la columna siguiente (columna 34).
Comando Row( ): El comando Row( ) devuelve el nmero de la fila en que se encuentra ubicado el
cursor.
Formato: Row( )
Ejemplo:
@ 5,20 say Monto vendido:
@ Row()+1,20 say Montov Pict 99
En el ejemplo la variable Montov ser impresa en la fila siguiente (fila 6).
Funciones
Funcin Int: La funcin Int (Integer), devuelve/toma la parte entera del argumento, desechando la parte
decimal. El argumento puede estar representado por un valor, una variable o una expresin numrica.
Formato: INT (argumento)
Ejemplo:
B=0
A=7
B= Int(A/2)
@ 5,20 say Valor:
@ 5,col( )+2 say B Pict 9
02/07/2015 20:44
20 de 20
http://kensy-garcia.blogspot.com/2012/05/poo-en-foxpro.html
La variable B toma como valor el 3 que es la parte entera que se genera al momento de aplicar la divisin
((7/2)= 3.5), desechando la parte decimal.
Funcin Round: La funcin Round (Rounded), redondea o aproxima un valor a su inmediato superior o
inferior, dependiendo de la cantidad de decimales que se especifiquen
Formato:
ROUND (argumento, N de decimales)
Ejemplo:
B=0
A=7
B= Round(A/2,0)
@ 5,20 say Valor:
@ 5,col( )+2 say B Pict 9
La variable B toma como valor 4 que es el resultado de aproximar a 0 decimales el resultado de la
expresin utilizada en el argumento. ((7/2)= 3.5).
Aadir un comentario
Comentar como:
Publicar
02/07/2015 20:44