Sie sind auf Seite 1von 41

Practicas de Visual Fox Pro

SEP

SAETI

CENTRO DE ESTUDIOS TECNOLGICOS


Industrial y de servicios No. 1
Tlhuac, D.F.
SAETI

MARZO DEL 2008

Asignatura: BASE DE DATOS II


PRCTICARIO
Unidad IV. Principios de programacin en Visual FoxPro
Practica 1. Aplicacin control de empleados
Crea la siguiente carpeta en: C:\Empleados

Abre la aplicacin Visual FoxPro


Crea un nuevo proyecto con el nombre C:\empleado\empleados.pjx
Crea base de datos con el nombre C:\empleado\empleados.dbc
Crea la siguiente carpeta C:\empleado\tablas\
Crear las siguientes tablas y gurdalas en la carpeta anterior.

Tabla 1. Nombre de la tabla: datoempleado.dbf


Nombre
Id_1
nombre
domicilio
sexo
rfc
edad
edocivil

Tipo
Numrico
Carcter
Carcter
Carcter
Carcter
Numrico
Carcter

Ancho
5
50
100
13
15
3
13

Decimal
0

ndice

Practicas de Visual Fox Pro

SAETI

Escribe los datos que se


muestran a continuacin,
as como sus propiedades
de cada uno.

Indexacin del campo Id_1.


Del Diseador de tablas, da un clic en la
pestaa ndices. Selecciona el Tipo de
ndice: PRINCIPAL.

Da un clic en el icono Generador de


expresiones. Verifica que se encuentre el
nombre del campo seleccionado, si es as
da un clic izquierdo en el botn aceptar.

Practicas de Visual Fox Pro

SAETI

Da un clic en el icono Generador de expresiones


FILTRO. Verifica que se encuentre el nombre del
campo seleccionado, si es as da un clic
izquierdo en el botn aceptar.

Una vez terminado, verifica que los datos


se encuentren como la ventana siguiente,
si es as da un clic izquierdo en el botn
aceptar.

Tabla datoempleado.dbc
Creada.

Aparece la siguiente ventana


de mensaje da un clic
izquierdo en el botn Si.

Practicas de Visual Fox Pro

SAETI

Tabla 2. Nombre de la tabla: sexo.dbf


Nombre
sexo

Tipo
Carcter

Ancho
13

Decimal

ndice

Nota: Como los datos del registro ya los conocemos (MASCULINO o FEMENINO) al dar clic izquierdo en el botn
de aceptar del Diseador de tablas la primera vez aparece la siguiente ventana:
Debemos dar un clic en S. Agrega en el primer registro Masculino,
aprieta la tecla tab, para pasar al seguiente registro y escribre
Femenino, por ltimo cierra la ventana.

Tabla 3. Nombre de la tabla: datoempresa.dbf


Nombre Tipo
Id_1
Numrico
puesto
Carcter
area
Carcter
sueldo Numrico
nombre
Carcter
rfc
Carcter

Ancho Decimal
5
0
15
16
5
2
100
15

ndice

Practicas de Visual Fox Pro

SAETI

Tabla 4. Nombre de la tabla: nomina.dbf


Nombre
Id_1
nombre
rfc
sueldo
retardo
horasextra
falta
prestamo
fecha
descuento
total
Puesto

Tipo
Numrico
Carcter
Carcter
Numrico
Numrico
Numrico
Numrico
Numrico
Fecha
Numrico
Numrico
Carcter

Ancho Decimal
5
0
100
15
5
2
5
2
5
2
5
2
5
2
8
5
2
5
2
16

ndice

Practicas de Visual Fox Pro

SAETI

Tabla 5. Nombre de la tabla: area.dbf

Nombre
area

Tipo
Carcter

Ancho
16

Decimal

ndice

Nota: Como los datos del registro ya los conocemos al dar clic izquierdo en el botn de aceptar del Diseador
de tablas la primera vez aparece la siguiente ventana:
Debemos dar un clic en S. Agrega los siguientes datos:

Tabla 6. Nombre de la tabla: puesto.dbf


Nombre
puesto

Tipo
Carcter

Ancho
15

Decimal

ndice

Nota: Como los datos del registro ya los conocemos al dar clic izquierdo en el botn de aceptar del Diseador
de tablas la primera vez aparece la siguiente ventana:
Debemos dar un clic en S. Agrega los siguientes datos:

Practicas de Visual Fox Pro

SAETI

Tabla 7. Nombre de la tabla: descuentos.dbf


Nombre
descuentos

Tipo
Carcter

Ancho
20

Decimal

ndice

Nota: Como los datos del registro ya los conocemos al dar clic izquierdo en el botn de aceptar del Diseador
de tablas la primera vez aparece la siguiente ventana:
Debemos dar un clic en S. Agrega los siguientes datos:

Realice el siguiente indexado en la tablas como se muestra en la siguiente figura:

Agregar datos
al guardar

Practicas de Visual Fox Pro

SAETI

Debe de quedar como se observa a continuacin:

Practica 2. Disea y crear los siguientes formularios.


Formulario 1. Nombre del formulario: altadeempleados.scx
Nombre :Form1.label1
Caption: Alta de Empleados
cono

Etiqueta

Practicas de Visual Fox Pro

SAETI

Nombre :Form1.line1
BorderWidth: 2
cono

lnea

Nombre :Form1.image1
picture:C:\empleado\image
nes\logo.bmp
cono

Nombre :Form1.shape1
Curvature: 30
cono

imagen

Nombre :Form1.Text6
Blackstyle: 0 - transparente
cono

Cuadro de Texto

Nombre :Form1.Text1
Enabled: .F. - Flaso
cono

Cuadro de Texto

imagen

Practicas de Visual Fox Pro

SAETI

Nombre :Form1.Combo1
Enabled: .F. - Flaso
cono

Nombre :Form1.Command4
Enabled: .F. - Flaso
cono

Botn de Comandos

Nombre :Form1.Command2
cono

Botn de Comandos

Cuadro Combinado

10

Practicas de Visual Fox Pro

SAETI

Practica 3. Disea y crear los siguientes formularios. Alta de Empleados

Objeto: From 1

Procedimiento: Load

open databases C:\Empleados\Empleados.dbc && acceso a la base de datos


select 1 &&Selecciona el rea(1) de memoria para la tabla DatoEmpleado
use C:\Empleados\Tablas\DatoEmpleado.dbf &&acceso a la tabla

Objeto: From 1
thisform.Text1.value=0
thisform.Text5.value="
"
thisform.Text2.value="
"
thisform.Text3.value="
"
thisform.Text4.value="
"
go bottom && va al ltimo registro
thisform.text6.value=id_1 && pone en la caja de texto el No. De ID de la tabla

Procedimiento: Activate

11

Practicas de Visual Fox Pro

Objeto: cmdPrimero

SAETI

Procedimiento: Clic

thisform.text1.enabled=.F .&& Inhabilita la caja de texto


thisform.text5.enabled=.F.
thisform.text2.enabled=.F.
thisform.text3.enabled=.F.
thisform.text4.enabled=.F.
thisform.combo1.enabled=.F. &&Inhabilita el cuadro combinando
thisform.combo2.enabled=.F.

go top && va al primer registro de la tabla


thisform.text1.value=id_1 && la caja de texto 1 toma el valor de id_1 de la tabla
thisform.text5.value=rfc
thisform.text2.value=nombre
thisform.text3.value=domicilio
thisform.text4.value=edad
thisform.combo1.value=edocivil
thisform.combo2.value=sexo
thisform.text6.value=id_1

thisform.refresh &&actualiza el formulario

Objeto: cmdAnterior

Procedimiento: Clic

thisform.text1.enabled=.F.
thisform.text5.enabled=.F.
thisform.text2.enabled=.F.
thisform.text3.enabled=.F.
thisform.text4.enabled=.F.
thisform.combo1.enabled=.F.
thisform.combo2.enabled=.F.

skip -1 && salta uno hacia atrs


thisform.text1.value=id_1
thisform.text5.value=rfc
thisform.text2.value=nombre
thisform.text3.value=domicilio
thisform.text4.value=edad
thisform.combo1.value=edocivil
thisform.combo2.value=sexo
thisform.text6.value=id_1

if bof() && si se llega a exceder los saltos hacia el primer registro manda el mensaje
=messagebox("Primer registro",16) && muestra el mensaje
go top && va al primer registro
endif
thisform.refresh

12

Practicas de Visual Fox Pro

Objeto: cmdSiguiente

SAETI

Procedimiento: Clic

thisform.text1.enabled=.F.
thisform.text5.enabled=.F.
thisform.text2.enabled=.F.
thisform.text3.enabled=.F.
thisform.text4.enabled=.F.
thisform.combo1.enabled=.F.
thisform.combo2.enabled=.F.

skip 1 && salta uno hacia atrs


thisform.text1.value=id_1
thisform.text5.value=rfc
thisform.text2.value=nombre
thisform.text3.value=domicilio
thisform.text4.value=edad
thisform.combo1.value=edocivil
thisform.combo2.value=sexo
thisform.text6.value=id_1

if eof() && si se llega a exceder los saltos del ltimo registro manda el mensaje
=messagebox("ltimo registro",16)
go bottom && va al ultimo registro
endif
thisform.refresh

Objeto: cmdUltimo
thisform.text1.enabled=.F.
thisform.text5.enabled=.F.
thisform.text2.enabled=.F.
thisform.text3.enabled=.F.
thisform.text4.enabled=.F.
thisform.combo1.enabled=.F.
thisform.combo2.enabled=.F.

go bottom && va al ltimo registro de la tabla


thisform.text1.value=id_1
thisform.text5.value=rfc
thisform.text2.value=nombre
thisform.text3.value=domicilio
thisform.text4.value=edad
thisform.combo1.value=edocivil
thisform.combo2.value=sexo
thisform.text6.value=id_1

thisform.refresh

Procedimiento: Clic

13

Practicas de Visual Fox Pro

Objeto: cmdAgregar

SAETI

Procedimiento: Clic

thisform.cmdPrimero.enabled=.F.
thisform.cmdAnterior.enabled=.F.
thisform.cmdSiguiente.enabled=.F.
thisform.cmdUltimo.enabled=.F.
thisform.text1.value=0
thisform.text5.value="
"
thisform.text2.value="
"
thisform.text3.value="
"
thisform.text4.value=0
thisform.combo1.value="
"
thisform.combo2.value="
"
thisform.text1.enabled=.T. && Habilita la caja de texto 1 para poder escribir
thisform.text5.enabled=.T.
thisform.text2.enabled=.T.
thisform.text3.enabled=.T.
thisform.text4.enabled=.T.
thisform.combo1.enabled=.T. && Habilita el cuadro combinado 1 para poder seleccionar alguna opcin
thisform.combo2.enabled=.T.
thisform.cmdGuardar.enabled=.T. && Habilita el botn guardar
thisform.cmdAgregar.enabled=.F. && Deshabilita el botn agregar

14

Practicas de Visual Fox Pro

Objeto: cmdGuardar

SAETI

Procedimiento: Clic

thisform.cmdPrimero.enabled=.T.
thisform.cmdAnterior.enabled=.T.
thisform.cmdSiguiente.enabled=.T.
thisform.cmdUltimo.enabled=.T.

id_2=thisform.text1.value && el nombre de la variable es 1d_2 para no confundir con id_1 de la tabla
rfc_1=thisform.text5.value && toma el valor que escribi en la caja de texto 5 y lo almacena en frc_1
nom=thisform.text2.value&& toma el valor que escribi en la caja de texto 2 y lo almacena en nom
dom=thisform.text3.value&& toma el valor que escribi en la caja de texto 3 y lo almacena en dom
edad_1=thisform.text4.value&& toma el valor que escribi en la caja de texto 4 y lo almacena en edad_1
edo=thisform.combo1.value&& toma el valor que escribi en el combo1 y lo almacena en edo
sexo_1=thisform.combo2.value&& toma el valor que escribi en el combo2 y lo almacena en sexo_1
append blank && Agregar un registro nuevo en blanco
replace id_1 with id_2 && reemplaza el valor de id_1 con el valor de id_2
replace rfc with rfc_1 && reemplaza el valor de rfc con el valor de rfc_1
replace nombre with nom && reemplaza el valor de nombre con el valor de nom
replace domicilio with dom && reemplaza el valor de domicilio con el valor de dom
replace edad with edad_1 && reemplaza el valor de edad con el valor de edad_1
replace edocivil with edo && reemplaza el valor de edocivil con el valor deedo
replace sexo with sexo_1 && reemplaza el valor de sexo con el valor de sexo_1
thisform.cmdGuardar.enabled=.F.
thisform.cmdAgregar.enabled=.T.
thisform.text6.value=id_1
thisform.refresh

Objeto: cmdCerrar
thisform.release

Procedimiento: Clic

15

Practicas de Visual Fox Pro

SAETI

Prctica 4. Formulario Consulta de Empleados

Objeto: Option1

Procedimiento: Clic

thisform.grid1.visible=.T. && Muestra el Grid 1


thisform.grid2.visible=.F. && Oculta el Grid 2
thisform.grid3.visible=.F. && Oculta el Grid 3
Objeto: Option2
thisform.grid1.visible=.F. && Oculta el Grid 1
thisform.grid2.visible=.T. && Muestra el Grid 2
thisform.grid3.visible=.F. && Oculta el Grid 3

Procedimiento: Clic

16

Practicas de Visual Fox Pro

Objeto: Option3
thisform.grid1.visible=.F. && Oculta el Grid 1
thisform.grid2.visible=.F. && Oculta el Grid 2
thisform.grid3.visible=.T. && Muestra el Grid 3

Practica 5. Formulario Modificaciones Empleados

SAETI

Procedimiento: Clic

17

Practicas de Visual Fox Pro

Objeto: cmdBuscar

SAETI

Procedimiento: Clic

nom=0
nom=val(thisform.text8.value)&& nom , toma el valor de la caja text8, val() convierte una cadena en numero
locate for Id_1=nom && localiza en la tabla el registro id_1 que sea igual a nom
if found() && si encuentra el registro muestra lo que sigue
thisform.text1.value=Id_1
thisform.text2.value=nombre
thisform.text3.value=domicilio
thisform.text4.value=edad
thisform.text5.value=rfc
thisform.text6.value=edocivil
thisform.text7.value=sexo
else && si no encuentra el registro manda el siguiente mensaje
= messagebox('No se encontr el ID',16)
endif
thisform.refresh
thisform.text2.enabled=.T.
thisform.text3.enabled=.T.
thisform.text4.enabled=.T.
thisform.text5.enabled=.T.
thisform.text6.enabled=.T.
thisform.text7.enabled=.T.
thisform.command2.enabled=.T.

18

Practicas de Visual Fox Pro

Objeto: cmdGuardarMod

SAETI

Procedimiento: Clic

id_2=thisform.text1.value
rfc_1=thisform.text5.value
nom=thisform.text2.value
dom=thisform.text3.value
edad_1=thisform.text4.value
edo=thisform.text6.value
sexo_1=thisform.text7.value

replace id_1 with id_2


replace rfc with rfc_1
replace nombre with nom
replace domicilio with dom
replace edad with edad_1
replace edocivil with edo
replace sexo with sexo_1
=messagebox("Registro Modificado",0) && mensaje solo de aviso de modificacin
thisform.grid1.refresh && Actualiza los datos del grid1
thisform.text2.enabled=.F.
thisform.text3.enabled=.F.
thisform.text4.enabled=.F.
thisform.text5.enabled=.F.
thisform.text6.enabled=.F.
thisform.text7.enabled=.F.
thisform.command2.enabled=.F.

19

Practicas de Visual Fox Pro

Prctica 6. Formulario Eliminar Datos de Empleados

SAETI

20

Practicas de Visual Fox Pro

Objeto: cmdBuscar
nom=0
nom=val(thisform.text8.value)
locate for Id_1=nom
thisform.text1.value=Id_1
thisform.text2.value=nombre
thisform.text3.value=domicilio
thisform.text4.value=edad
thisform.text5.value=rfc
thisform.text6.value=edocivil
thisform.text7.value=sexo
if found()
thisform.text1.value=Id_1
thisform.text2.value=nombre
thisform.text3.value=domicilio
thisform.text4.value=edad
thisform.text5.value=rfc
thisform.text6.value=edocivil
thisform.text7.value=sexo
else
= messagebox('No se encontr el ID',16)
endif
thisform.refresh
thisform.text2.enabled=.T.
thisform.text3.enabled=.T.
thisform.text4.enabled=.T.
thisform.text5.enabled=.T.
thisform.text6.enabled=.T.
thisform.text7.enabled=.T.
thisform.command2.enabled=.T.
thisform.text8.enabled=.F.

SAETI

Procedimiento: Clic

21

Practicas de Visual Fox Pro

Objeto: cmdGuad RegElim

SAETI

Procedimiento: Clic

delete && marca el registro para su posterior eliminacin


thisform.text2.enabled=.F.
thisform.text3.enabled=.F.
thisform.text4.enabled=.F.
thisform.text5.enabled=.F.
thisform.text6.enabled=.F.
thisform.text7.enabled=.F.
thisform.command2.enabled=.F.
thisform.text8.enabled=.T.
=messagebox("Registro eliminado",0)
thisform.grid1.refresh

Objeto: cmdCerrar
Pack && elimina los registros marcados
Thisform.release

Procedimiento: Clic

22

Practicas de Visual Fox Pro

Practica 7. Formulario Alta Empresa

SAETI

23

Practicas de Visual Fox Pro

Objeto: cmdBuscar

SAETI

Procedimiento: Clic

select 2
use C:\Empleados\Tablas\datoempresa.dbf
nom=0
nom=val(thisform.text8.value)
locate for id_1=nom && Checa si el registro ya se dio de alta
if found()
=messagebox("Registro ya dado de Alta",0)
Else && si no est dado de alta permite visualizar los datos del empleado
select 1
use C:\Empleados\Tablas\datoempleado.dbf
locate for id_1=nom
if found()
thisform.text9.value=nombre
thisform.text10.value=domicilio
thisform.text11.value=edad
thisform.text12.value=rfc
thisform.text7.value=edocivil
thisform.text13.value=sexo
thisform.command8.enabled=.T.
else
= messagebox('No se encontr el ID',16)
endif
thisform.command8.enabled=.T.
endif
thisform.refresh

Objeto: cmdAgregar
thisform.text4.value="
"
thisform.combo1.value="
"
thisform.combo2.value="
"
thisform.text4.enabled=.T.
thisform.combo1.enabled=.T.
thisform.combo2.enabled=.T.
thisform.cmdGuardar.enabled=.T.
thisform.cmdAgregar.enabled=.F.

Procedimiento: Clic

24

Practicas de Visual Fox Pro

Objeto: cmdGuardar
select 2
use C:\Empleados\Tablas\datoempresa.dbf
id_2=thisform.text8.value
rfc_1=thisform.text12.value
nom=thisform.text9.value
puesto_1=thisform.combo1.value
area_1=thisform.combo2.value
sueldo_1=val(thisform.text4.value)
append blank
replace id_1 with id_2
replace rfc with rfc_1
replace nombre with nom
replace area with area_1
replace sueldo with sueldo_1
replace puesto with puesto_1
thisform.cmdGuardar.enabled=.F.
thisform.combo1.enabled=.F.
thisform.combo2.enabled=.F.
thisform.text4.enabled=.F.
thisform.text6.value=id_1
thisform.text4.value="
"
thisform.text8.value=0
thisform.combo1.value="
"
thisform.combo2.value="
"
thisform.refresh

SAETI

Procedimiento: Clic

25

Practicas de Visual Fox Pro

SAETI

Practica 8. Formulario Consulta Datos Empresa

Objeto: cmdCerrar
Thisform.release

Procedimiento: Clic

26

Practicas de Visual Fox Pro

Practica 9. Formulario Eliminar Datos Empresa

SAETI

27

Practicas de Visual Fox Pro

Objeto: cmdBuscar

SAETI

Procedimiento: Clic

nom=0
nom=val(thisform.text8.value)
locate for Id_1=nom
if found()
thisform.text1.value=Id_1
thisform.text2.value=nombre
thisform.text3.value=puesto
thisform.text4.value=area
thisform.text5.value=sueldo
thisform.text6.value=rfc
else
= messagebox('No se encontr el ID',16)
endif
thisform.refresh
thisform.text2.enabled=.T.
thisform.text3.enabled=.T.
thisform.text4.enabled=.T.
thisform.text5.enabled=.T.
thisform.text6.enabled=.T.
thisform.cmdGuardar.enabled=.T.
thisform.text8.enabled=.F.
Objeto: cmdGuardar

Procedimiento: Clic

delete
thisform.text2.enabled=.F.
thisform.text3.enabled=.F.
thisform.text4.enabled=.F.
thisform.text5.enabled=.F.
thisform.text6.enabled=.F.
thisform.cmdBuscar.enabled=.F.
thisform.text8.enabled=.T.
=messagebox("Registro eliminado",0)
thisform.grid1.refresh
Objeto: cmdCerrar
pack
thisform.release

Procedimiento: Clic

28

Practicas de Visual Fox Pro

SAETI

Prctica 10. Formulario Genera Nmina

Check2

Check1

Check4,Check5,
Check6

Spinner1

Check3
Check7
Spinner2

Objeto: form1

Procedimiento: Activate

select 2
use C:\Empleados\Tablas\datoempresa.dbf
locate for id_1=1
if found()
thisform.text1.value=id_1
thisform.text2.value=nombre
thisform.text4.value=rfc
thisform.text11.value=puesto
thisform.text3.value=sueldo
thisform.command3.enabled=.T.
endif

29

Practicas de Visual Fox Pro

Objeto: cmdImpNomina

SAETI

Procedimiento: Clic

report form C:\Empleados\Informes\nomina.frx to print preview

Objeto: cmdGuardar
id_2=thisform.text1.value
nom=thisform.text2.value
rfc_1=thisform.text4.value
puesto_1=thisform.text11.value
sueldo_1=thisform.text3.value
retardo_1=thisform.text5.value
falta_1=thisform.text7.value
prestamo_1=thisform.text8.value
descuento_1=thisform.text13.value
horas_extra_1=thisform.text14.value
total_1=thisform.text9.value
fecha_1=thisform.text16.value
select 3
use C:\Empleados\Tablas\nomina.dbf
append blank
replace id_1 with id_2
replace nombre with nom
replace rfc with rfc_1
replace puesto with puesto_1
replace sueldo with sueldo_1
replace retardo with retardo_1
replace falta with falta_1
replace prestamo with prestamo_1
replace descuento with descuento_1
replace horasextra with horas_extra_1
replace total with total_1
replace fecha with fecha_1
thisform.cmdSiguiente.enabled=.T.

Procedimiento: Clic

30

Practicas de Visual Fox Pro

SAETI

Objeto: cmdSiguiente

Procedimiento: Clic

select 2
skip 1
thisform.text1.value=id_1
thisform.text2.value=nombre
thisform.text4.value=rfc
thisform.text11.value=puesto
thisform.text3.value=sueldo
thisform.cmdSiguiente.enabled=.T.
if eof()
a=messagebox("ltimo registro",16)
go bottom
if a=1 then
thisform.cmdImpNomina.enabled=.T.
thisform.cmdSiguiente.enabled=.F.
endif
endif
thisform.combo1.value="
thisform.spinner1.value=0
thisform.check1.value=0
thisform.text6.value=0
thisform.text5.value=0
thisform.text7.value=0
thisform.text8.value=0
thisform.spinner2.value=0
thisform.check2.value=0
thisform.check3.value=0
thisform.check4.value=0
thisform.check5.value=0
thisform.check6.value=0
thisform.text12.value=0
thisform.text13.value="
thisform.text14.value="
thisform.text9.value="

"

"
"
"

31

Practicas de Visual Fox Pro

Objeto: Combo1

SAETI

Procedimiento: Clic

thisform.check4.value=0
thisform.check5.value=0
thisform.check6.value=0
thisform.spinner1.value=0

Objeto: Check2

Procedimiento: Clic

des=0
no_des=0
res=0
des1=0
des=thisform.Combo1.value
if trim(des)="Falta" then && trim toma solo el texto y elimina los espacios ala derecha o izquierda
des1=125
endif
if trim(des)="Retardo" then
des1=0.05
endif
if trim(des)="Prestamo" then
des1=0.30
endif
no_des=thisform.spinner1.value
res=no_des*des1 && multiplica valores flotantes (numeros * numeros)
thisform.text6.value=res
thisform.check1.enabled=.T.
thisform.check1.value=0

32

Practicas de Visual Fox Pro

Objeto: Check1

SAETI

Procedimiento: Clic

des=alltrim(thisform.Combo1.value)
valor=thisform.text6.value
if des="Prestamo" then
thisform.text8.value=valor
endif
if des="Falta" then
thisform.text7.value=valor
endif
if des="Retardo" then
thisform.text5.value=valor
endif
local retardo_1,prestamo_1 as float && declaracin de variables de tipo flotante (entero con decimal 0.0)
local falta_1 as integer && declaracin de variables nmeros enteros
retardo_1=thisform.text5.value
falta_1=thisform.text7.value
prestamo_1=thisform.text8.value
if retardo_1<>0 .and. falta_1<>0 .and. prestamo_1<>0 then &&Compara si las tres son verdadera manda
=messagebox("No. de descuentos excedidos",0) &&manda mensaje. .and. igual a condicin Y
else
thisform.check2.value=0
thisform.combo1.value="
"
thisform.spinner1.value=0
thisform.text6.value="
"
endif
thisform.check1.enabled=.F.
thisform.refresh

33

Practicas de Visual Fox Pro

Objeto: Check3

SAETI

Procedimiento: Clic

local hora_extra,nom_hora,horas_extra as integer &&declara variables enteras


hora_extra=thisform.text10.value
nom_hora=thisform.spinner2.value
horas_extra=hora_extra*nom_hora
thisform.text12.value=horas_extra
thisform.check7.value=0

Objeto: Check7

Procedimiento: Clic

thisform.text12.value=0
thisform.check3.value=0
thisform.spinner2.value=0

Objeto: Check4

Procedimiento: Clic

thisform.text5.value=0
thisform.check2.value=0
Objeto: Check5

Procedimiento: Clic

thisform.text7.value=0
thisform.check2.value=0
Objeto: Check6
thisform.text8.value=0
thisform.check2.value=0

Procedimiento: Clic

34

Practicas de Visual Fox Pro

Objeto: cmdCalculaSueldo

SAETI

Procedimiento: Clic

local sueldo_1,retardo_1,prestamo_1,horas_extra_1 as float


local des1,des2,des3,acum1,acum2,total_1,total_2,total_3,total_fin as float
local faltas_1 as float
total_1=0.0
total_2=0.0
total_3=0.0
total_final=0.0
sueldo_1=thisform.text3.value
retardo_1=thisform.text5.value
faltas_1=thisform.text7.value
prestamo_1=thisform.text8.value
if faltas_1<>0 then &&compara si faltas_1 es diferente de cero se cumple la condicin. operador diferente<>
des1=sueldo_1-faltas_1
total_1=des1
else
if retardo_1<>0 then
acum1=sueldo_1*0.05
des2=sueldo_1-acum1
total_1=des2
else
if prestamo_1<>0 then
acum2=sueldo_1*0.30
des3=sueldo_1-acum2
total_1=des3
endif
endif
endif

<>

35

Practicas de Visual Fox Pro

Continuacin cmdCalculaSueldo
if faltas_1<>0 .and. retardo_1<>0 then
des1=sueldo_1-faltas_1
acum1=des1*0.05
des2=des1-acum1
total_1=des2
endif
if retardo_1<>0 .and. prestamo_1<>0 then
acum1=sueldo_1*0.05
des1=sueldo_1-acum1
acum2=des1*0.30
des2=des1-acum2
total_1=des2
endif
if prestamo_1<>0 .and. faltas_1<>0 then
des1=sueldo_1-faltas_1
acum1=des1*0.30
des2=des1-acum1
total_1=des2
endif
if prestamo_1<>0 .and. faltas_1<>0 .and. retardo_1<>0 then
des1=sueldo_1-faltas_1
acum1=des1*0.30
des2=des1-acum1
acum2=des2*0.05
des3=des2-acum2
total_1=des3
endif
if prestamo_1=0 .and. faltas_1=0 .and. retardo_1=0 then
total_1=sueldo_1
endif
thisform.text13.value=total_1

SAETI

36

Practicas de Visual Fox Pro

SAETI

Continuacin cmdCalculaSueldo

******************************************
*tiempo extra
horas_extra_1=thisform.text12.value
thisform.text14.value=horas_extra_1
total_2=total_1+horas_extra_1
thisform.text9.value=total_2
thisform.command1.enabled=.T.
thisform.refresh

Objeto: Timmer1
thisform.text15.value=time()
thisform.text16.value=date()

Procedimiento: Timmer

37

Practicas de Visual Fox Pro

SAETI

Practica 11. Formulario Clave de Usuario

Objeto: cmdCerrar

Procedimiento:Clic

Thisform.release

Objeto: cmdAceptar

Procedimiento:Clic

clave=""
clave=alltrim(thisform.text2.value)
if clave="1234" && compara el valor tecleado con uno ya asignado, si es igual ejecuta el men principal
do C:\Empleados\Menus\menuprincipal.mpr && Llama al menuprincipal para ejecutar
else
=messagebox("Clave incorrecta",0)
endif
thisform.release

38

Practicas de Visual Fox Pro

SAETI

Practica 12. Crear el Men como se muestra en la siguiente figura:

do form c:\empleados\formularios\altadatospersonales.scx
do form c:\empleados\formularios\consultageneral.scx
do form c:\empleados\formularios\modificaciones.scx
do form c:\empleados\formularios\eliminacin

39

Practicas de Visual Fox Pro

SAETI

do form c:\Empleados\Formularios\altadatosempresa.scx
do form c:\Empleados\Formularios\consultadatosempresa.scx
do form c:\Empleados\Formularios\modificaciondatosempresa.scx
do form c:\Empleados\Formularios\eliminaciondatosempresa.scx

do form c:\Empleados\Formularios\generanomina.scx

40

Practicas de Visual Fox Pro

Practica 13. Crear el siguiente informe. De la Tabla Nmina

SAETI

41

Das könnte Ihnen auch gefallen