Professional Documents
Culture Documents
VISUAL FOXPRO
Botón Descripción
DEFINICIONES IMPORTANTES:
PROGRAMA: Es un conjunto de comandos, instrucciones,
símbolos y códigos que nos permiten comunicarnos con la
computadora y poder procesar la información.
Se clasifican en lenguajes de bajo nivel y alto nivel.
Los lenguajes de bajo nivel, son más director y para los cuales
es necesario conocer la estructura interne de la computadora.
Ejemplo el lenguaje de programación ASSEMBLER.
Los lenguajes de alto nivel, más comerciales, más fáciles de
operar y para los cuales no es necesario la estructura interna
alguna. Ejemplo el lenguaje de programación FOXPRO.
TIPOS DE PROGRAMA:
a) Programa Fuente: Es un conjunto de instrucciones escritas
en un lenguaje de programación, con la ayuda de un editor
de textos.
b) Programa Objeto: Es el conjunto de instrucciones escritas
en un lenguaje máquina y que no pueden ser ejecutados por
la computadora, es traducido desde el programa fuente al
lenguaje máquina, es un programa no hecho por el usuario
sino por el compilador del lenguaje. Este programa se
genera del resultado de COMPILAR el programa fuente.
Compilar: Es la acción mediante la cual el sistema verifica
errores de sintaxis dentro de un programa fuente y si no los
tiene genera el programa objeto, al cual le asigna
automáticamente la extensión (OBJ).
VARIABLES:
Como en cualquier otro lenguaje de programación, las variables
se usan para almacenar valores durante la ejecución de un
programa. Las variables son huecos en memoria en los que se
puede dejar valores para recogerlos cuando se necesiten.
En la mayoría de los lenguajes de programación, se deben
definir las variables. En otras palabras, se debe decir por
adelantado al compilador las variables que se van a usar. La
razón por la que se hace así es para ayudar al compilador. Si el
compilador conoce las variables y sus tipos, puede producir un
código más optimizado.
TIPOS DE VARIABLES:
VARIABLES NUMÉRICAS: Almacenan números. Los números
se pueden almacenar con muchos formatos, dependiendo del
tamaño de los números y de su precisión.
VARIABLES DE TIPO STRING: Es aquel tipo de variable a los
cuales podemos destinar caracteres alfabéticos, signos y
números es decir que nos acepta cualquier tipo de carácter.
VARIABLES DE TIPO BOOLEAN: Almacena valores True/False
(Verdadero/Falso). Las variables Boolean son realmente
enteros que tiene el valor –1 (para True) y 0 (para False). Las
variables Boolean se usan para la comprobación de condiciones.
Las variables Boolean se definen de esta manera:
VARIABLES DE TIPO DATE: Almacena fechas. Las variables
tipo Date presentan las fechas de acuerdo al formato de fecha
corto reconocido por el sistema. Se define de esta manera:
If…Then…EndIf:
La estructura If comprueba una condición especifica y, si es
verdadera, ejecuta las sentencias que le siguen. La estructura If
puede tener o una sola línea, o varias líneas. Para ejecutar una
sentencia condicional se usa la sintaxis de una sola línea:
If…Then…Else…EndIf:
Una variación de la sentencia If …Then es la sentencia If…
Then…Else … EndIf, que ejecuta un bloque de sentencias si la
condición es verdadera, y otro bloque si es falsa. La sintaxis de
la sentencia If … Then … Else EndIf es:
If condición Then
Bloque de sentencias 1
Else
Bloque se sentencias 2
EndIf
EndIf
If puntuación > 90 Then
Resultado= “Excelente”
EndIf
DO CASE:
La estructura Do Case compara la misma expresión con
diferentes valores. La ventaja de esta sentencia sobre If … Then
múltiples hace que el código sea más fácil de leer y mantener.
La estructura Do Case comprueba una sola expresión, que se
evalúa una sola vez al principio de la estructura. El resultado de
esta comprobación se compara con varios valores y, si coincide
con uno de ellos, se ejecuta el bloque de sentencias
correspondiente. Sintaxis:
Do Case
Case <Condición 1>
Bloque de sentencias 1
Case <Condición 2>
Bloque de sentencias 2
.
.
.
EndCase
Ejemplo:
Opc=this.value
Do Case
Case opc=1
NombreDía= “Lunes”
Mensaje= “Feliz semana”
Case opc=6
NombreDía= “Sábado”
Mensaje= “Feliz fin de semana”
Case opc=7
NombreDía= “Domingo”
Mensaje= “ ¿Has tenido un buen fin de semana”
EndCAse
DO WHILE… ENDDO:
Ejecuta un bloque de sentencias mientras la condición sea
verdadera. Visual FoxPro evalúa la expresión y, si la expresión
es falsa, el programa continúa con las sentencias que van
después del bucle.
Para ejecutar un bloque sentencias mientras la condición sea
verdadera, se usa la siguiente sintaxis:
Do While condición
Bloque de sentencias
Enddo
variableobjeto.[form.]control.propiedad = Configuración
Argumentos:
NombrePropiedad: Especifica una propiedad para el Form.
NombreObjeto: Especifica un objeto del Form.
Sintaxis:
THIS.NombrePropiedad | NombreObjeto
Argumentos:
NombrePropiedad: Especifica una propiedad para la clase.
NombreObjeto: Especifica un objeto de la clase.
Argumentos:
NombrePropiedad: Especifica una propiedad para el FormSet.
NombreObjeto: Especifica un objeto del FormSet.
RELEASE THISFORM
PARTE PRACTICA
Command1 Click
Thisform.label4.caption="S/."+alltrim(str(thisform.text1.value*t
hisform.text2.value,10,2))
Command2 Click
Thisform.release
Optiongroup1 Click
If thisform.optiongroup1.value=1
thisform.text1.forecolor=rgb(0,0,0)
Else
If thisform.optiongroup1.value=2
thisform.text1.forecolor=rgb(255,0,0)
Else
If thisform.optiongroup1.value=3
thisform.text1.forecolor=rgb(0,255,0)
Else
thisform.text1.forecolor=rgb(0,0,255)
Endif
Endif
Endif
Comagregar Click if
with thisform .comagregar.caption="Agrega
r"
. .lis1producto.clear
lis1producto.additem(.texp .texproducto.setfocus
roducto.value) endwith
else
. Comelimina Click
lis1producto.additem(.texp with thisform
roducto.value) .
. lis1producto.removeitem(.li
comagregar.caption="Agregar s1producto.listindex)
" .texproducto.setfocus
endif endwith
.texproducto.value=""
.texproducto.setfocus Commodifica Click
endwith with thisform
.
Comadduno Click texproducto.value=.lis1pro
with thisform ducto.value
. .
lis2producto.additem(.lis1p lis1producto.removeitem(.li
roducto.value) s1producto.listindex)
. .
lis1producto.remeoveitem(. comagregar.caption="Actualiz
list1producto.listindex) ar"
endwith .texproducto.setfocus
endwith
Comaddvarios Click
with thisform Comlimpia Click
for x=1 to with thisform
.lis1producto.listcount .lis1producto.clear
. .texproducto.setfocus
lis2producto.additem(.lis1p endwith
roducto.list(x)) Comsalir Click
next thisform.release
Page1:
Spinner1,2,3, KeyboardHighValue 255
4,5 y 6 KeyboardLowValue 0
SpinnerHighValue 255
SpinnerLowValue 0
Page2:
Spinner1,2 KeyboardHighValue 250
KeyboardLowValue 0
SpinnerHighValue 250
SpinnerLowValue 0
Page3:
Spinner1,2 KeyboardHighValue 300
KeyboardLowValue 0
SpinnerHighValue 300
SpinnerLowValue 0
Page4:
Spinner1 KeyboardHighValue 100
KeyboardLowValue 1
SpinnerHighValue 99
SpinnerLowValue 1
Page1: verde=.pageframe1.page1.
Spinner1 spinner2.value
InteractiveChange .
with thisform shape1.backcolor=rgb(rojo
,verde,azul)
rojo=.pageframe1.page1.s endwith
pinner1.value
. Spinner3
shape1.backcolor=rgb(rojo InteractiveChange
,verde,azul) with thisform
endwith
azul=.pageframe1.page1.s
Spinner2 pinner3.value
InteractiveChange .
with thisform shape1.backcolor=rgb(rojo
,verde,azul)
endwith
Spinner4 alto=.pageframe1.page2.s
InteractiveChange pinner1.value
with thisform .shape1.height=alto
endwith
rojo=.pageframe1.page1.s
pinner4.value Spinner2
. InteractiveChange
shape1.bordercolor=rgb(roj with thisform
o,verde,azul)
endwith ancho=.pageframe1.page2
.spinner2.value
Spinner5 .shape1.width=ancho
InteractiveChange endwith
with thisform
Page3:
verde=.pageframe1.page1. Spinner1
spinner5.value InteractiveChange
. with thisform
shape1.bordercolor=rgb(roj
o,verde,azul) izquierda=.pageframe1.pa
endwith ge3.spinner1.value
.shape1.left=izquierda
Spinner6 endwith
InteractiveChange
with thisform Spinner2
InteractiveChange
azul=.pageframe1.page1.s with thisform
pinner6.value
. arriba=.pageframe1.page3
shape1.bordercolor=rgb(roj .spinner2.value
o,verde,azul) .shape1.top=arriba
endwith endwith
Page2: Page4:
Spinner1 Spinner1
InteractiveChange InteractiveChange
with thisform with thisform
.
formas=.pageframe1.page shape2.width=.shape1.width
4.spinner1.value .shape2.left=.shape1.left
.shape1.curvature=formas .shape2.top=.shape1.top
endwith .
shape2.curvature=.shape1
.curvature
Command1 Click endwith
with thisform
if .pageframe1.visible=.t. Timer1 Timer
.pageframe1.visible=.f. with thisform
.shape1.visible=.f. if sw=0
.command2.visible=.f. x=x+1
. .shape2.left=x
command1.caption="Mu if x=250
estra características" sw=1
else endif
.pageframe1.visible=.t. else
.shape1.visible=.t. x=x-1
.command2.visible=.t. .shape2.left=x
. if x=5
command1.caption="Es sw=0
conde características" endif
endif endif
endwith endwith
arriba=0 formas=0
Text2 Value { / / }
Text3,4,5 BackStyle 0 – Transparente
ReadOnly .T.
Value 0
Command1 Caption (Nada)
Picture C:\VFP\…\…\Closed.BMP
Command2 Caption (Nada)
Picture C:\VFP\…\…\Help.BMP
Form2 AlwaysOnTop .T.
BorderStyle 1 – Borde en una línea
Caption (Nada)
ControlBox .F.
Desktop .T.
HalfHeigthCaption .F.
MaxButton .F.
MinButton .F.
Movable .T.
WindowsType 1 – Modal
Label2 Alignment 2 – Centro
BackStyle 0 – Transparente
Caption Lleve el Mouse sobre
algún objeto
WordWrap .T.
Imagen1 BackStyle 0 – Transparente
Picture C:\VFP\…\…\Find.BMP
thisformset.form2.label2.capti thisformset.form2.refresh
on="Puede escribir su fecha
de nacimiento por ejemplo" Command4 MouseMove
thisformset.form2.refresh LPARAMETERS nButton,
nShift, nXCoord, nYCoord
Text3 MouseMove thisformset.form2.label2.capti
LPARAMETERS nButton, on="Puedes pulsar Esc para
nShift, nXCoord, nYCoord salir"
thisformset.form2.label2.capti thisformset.form2.refresh
on="Haz nacido un día";
+chr(13)+cdow(thisform.text Command3 Click
2.value) with thisform
thisformset.form2.refresh ndias=(.text1.value-.
text2.value)
Text4 MouseMove .text3.value=int(ndias/365)
LPARAMETERS nButton, .
nShift, nXCoord, nYCoord text4.value=int(mod(ndias,36
thisformset.form2.label2.capti 5)/30)
on="Haz nacido un día"; .
+chr(13)+cdow(thisform.text text5.value=mod(mod(ndias,
2.value) 365),30)
thisformset.form2.refresh .refresh
endwith
Text5 MouseMove
LPARAMETERS nButton, Command4 Click
nShift, nXCoord, nYCoord thisformset.release
thisformset.form2.label2.capti
on="Haz nacido un día"; Command1 Click
+chr(13)+cdow(thisform.text with thisform
2.value) if .text1.readonly=.f.
thisformset.form2.refresh .text1.readonly=.t.
this.tooltiptext="Ver
this.picture="D:\vfp\samples\ ayuda"
graphics\bmps\outline\open.b else
mp" .form2.visible=.t.
.text2.setfocus
endif
.refresh this.tooltiptext="Ocultar
endwith ayuda"
endif
Command2 Click endwith
with thisformset
if .form2.visible=.t. Text2 Valid
.form2.visible=.f. thisform.command3.click
Ejemplo N° 8:
Crear el Proyecto: Empresa 2002.
Crear la Base de Datos: Empresa.
Crear la Tabla: Empleado.
Fonoemp Carácte 7
r
Diremp Carácte 25
r
Obsemp Memo 4
entrada:
Título: Valor Date( )
predeterminado:
Ingresar 5 registros.
Command1 Click .
with thisform command3.enabled=.t.
go top .
.command1.enabled=.f. command4.enabled=.t.
.command2.enabled=.f. else
.command3.enabled=.t. skip -1
.command4.enabled=.t. .
. command3.enabled=.t.
combo1.value=iif(empleado. endif
civiemp="S","Soltero(a)",iif( .
empleado.civiemp="C","Cas combo1.value=iif(empleado.
ado(a)",iif(empleado.civiemp civiemp="S","Soltero(a)",iif(
="V","Viudo(a)","Divorciado( empleado.civiemp="C","Cas
a)"))) ado(a)",iif(empleado.civiemp
. ="V","Viudo(a)","Divorciado(
combo2.value=iif(empleado. a)")))
estaemp="A","Activo",iif(em .
pleado.estaemp="V","Vacaci combo2.value=iif(empleado.
ones",iif(empleado.estaemp estaemp="A","Activo",iif(em
="P","Permiso","Retirado"))) pleado.estaemp="V","Vacaci
. ones",iif(empleado.estaemp
combo3.value=iif(empleado. ="P","Permiso","Retirado")))
condemp="C","Contratado", .
iif(empleado.condemp="E"," combo3.value=iif(empleado.
Estable","Servicio")) condemp="C","Contratado",
. iif(empleado.condemp="E","
optiongroup1.value=iif(empl Estable","Servicio"))
eado.damaemp,1,2) .
.refresh optiongroup1.value=iif(empl
endwith eado.damaemp,1,2)
.refresh
Command2 Click endwith
with thisform
if bof() Command3 Click
. with thisform
command1.enabled=.f. if eof()
. .
command2.enabled=.f. command1.enabled=.t.
. .command1.enabled=.t.
command2.enabled=.t. .command2.enabled=.t.
. .command3.enabled=.f.
command3.enabled=.f. .command4.enabled=.f.
. .
command4.enabled=.f. combo1.value=iif(empleado.
else civiemp="S","Soltero(a)",iif(
skip empleado.civiemp="C","Cas
. ado(a)",iif(empleado.civiemp
command2.enabled=.t. ="V","Viudo(a)","Divorciado(
endif a)")))
. .
combo1.value=iif(empleado. combo2.value=iif(empleado.
civiemp="S","Soltero(a)",iif( estaemp="A","Activo",iif(em
empleado.civiemp="C","Cas pleado.estaemp="V","Vacaci
ado(a)",iif(empleado.civiemp ones",iif(empleado.estaemp
="V","Viudo(a)","Divorciado( ="P","Permiso","Retirado")))
a)"))) .
. combo3.value=iif(empleado.
combo2.value=iif(empleado. condemp="C","Contratado",
estaemp="A","Activo",iif(em iif(empleado.condemp="E","
pleado.estaemp="V","Vacaci Estable","Servicio"))
ones",iif(empleado.estaemp .
="P","Permiso","Retirado"))) optiongroup1.value=iif(empl
. eado.damaemp,1,2)
combo3.value=iif(empleado. .refresh
condemp="C","Contratado", endwith
iif(empleado.condemp="E","
Estable","Servicio")) Command5 Click
. local nresp
optiongroup1.value=iif(empl nresp=messagebox("Esta
eado.damaemp,1,2) Ud. seguro de eliminar el
.refresh registro",32+4,"atención")
endwith if nresp=6 &&si nresp es no
delete next 1
Command4 Click pack
with thisform if eof()
go bottom skip -1
else sado(a)","C",iif(.combo1.val
skip ue="Viudo(a)","V","D")))
endif repla
thisform.refresh() empleado.estaemp with
endif iif(.combo2.value="Activo","
A",iif(.combo2.value="Vacac
Command6 Click iones","V",iif(.combo2.value
with thisform ="Permiso","P","R")))
if repla
.command6.caption="Nuevo empleado.condemp with
" iif(.combo3.value="Contrata
append blank do","C",iif(.combo3.value="
. Estable","E","S"))
combo1.value="Soltero(a)" repla
. empleado.damaemp with
combo2.value="Activo" iif(.optiongroup1.value=1,.f.,
. .t.)
combo3.value="Contratado" endif
.optiongroup1.value=1 endwith
.text1.setfocus
.
command6.caption="Guard Command7 Click
ar" thisform.release
else
repla Form1 MouseMove
empleado.civiemp with LPARAMETERS nButton,
iif(.combo1.value="Soltero(a nShift, nXCoord, nYCoord
)","S",iif(.combo1.value="Ca thisform.label14.caption=str
(recno())
Creación de Menús:
Ejemplo N° 8:
Archivo Listado
Mantenimient Empleados Informe general
o Ctrl+E Ctrl+G
Nuevo Obreros Por Apellidos
Ctrl+N
Abrir Otros Boletas Código
Salir Fecha de
Ctrl+S nacimiento
Otros
Procesos Herramientas
Boleta de Configuración
Pagos
Nominas Usuarios
Planillas Add Modulos
About
Ctrl+A
Diseñador de Menús
Indicador Acción Opcion Nivel de
es Menú
\<Archivo Subme Modific Barra de
nú ar Menú
\<Listado Subme Crear Barra de
nú Menú
\<Procesos Subme Crear Barra de
nú Menú
\<Herramient Subme Crear Barra de
as nú Menú
Diseñador de Menús
Indicador Acción Opciones Nivel de
menú
\<Mantenimie Submen C Archivo
nto ú rear
Nuevo Submen C Archivo
ú rear
\<Abrir Submen C Archivo
ú rear
\- Submen C Archivo
ú rear
\<Salir Comand Set sysmenu to Archivo
o default
Diseñador de Menús
Indicador Acción Opciones Nivel de
Menú
\<Salir Coman Set sysmenu to default Archivo
do
\<Emplead Coman Do form “C:\Mis Doc\ Mantenimie
os do René\ Empleado.Scx” nto
\<Informe Coman Repeort form “C:\Mis Listado
General do Doc\ René\ Informe1.Frx”
preview
Creación de Informes:
Detalle
Teléfono: Fax N°:
R.U.C. N°:
Pie de Página
Creación de Consultas:
Página Campos: Agregar todos.
Página Combinación: (Nada)
Página Filtro:
Nombre del N Criteri Ejemplo M/ Lógic
campo o o m o
Consulta Empleado.dama = .F.
1 emp
Consulta Empleado.codie < 200
2 mp
Consulta Empleado.apele = “Juárez Yucra”
3 mp
Consulta Empleado.nacie < Ctod(“01/01/7 And
4 mp > 8”)
Empleado.nacie Ctod(“12/31/7
mp 4”)
Página Ordenado Por:
Consulta1 ordenado por el campo: Codiemp
Consulta2 ordenado por el campo: Nombemp
Página Agrupar Por: (Nada)
Página Varios: (Nada)