Está en la página 1de 8

1.

Cuadro de Comandos
Set default to C:\Caren (Ruta de acceso a su carpeta)
Create Project (Crear un nuevo proyecto)

2. Formulario Principal
Para que el formulario principal desaparezca al momento de llamar a otro formulario:
Thisform.visible= .F.
Para llamar formularios:
Do form Frmnombredelformulario.scx (Escriba el nombre con que guard el formulario)


3. Formulario principal men alumnos








4. Crear la base de datos

No olvide crear los ndices principales y secundarios, tambin especificar el tipo de datos
para cada campo.
El ndice secundario que en la tabla de mensualidades es nocarne, que es el principal en la
tabla de alumnos es el que le sirve para mostrar los datos del alumno en el formulario de
recibos.
Luego de crear la base de datos escriba en el cuadro de comandos:
Use nombredetabla
Index on campoprincipal to nombreindice (el nombre del ndice lo crea usted, por eje.
Colegio, colegio_elim, no utilice espacios para separar).


5. Cree el men Ingresar Alumnos
No olvide arrastrar los campos desde la base de datos para crear los textos y arrastrar la tabla
para crear la cuadrcula.

Recuerde que cada texto lleva un valor en el generador, por eje.
En el generador:
Tipo: Numrico
Valor: Vcarne
En el cuadro de propiedades coloque la caja de texto en Enabled false, menos el txtcarne
que es el principal, para que el usuario no los pueda modificar hasta ingresar un carne
donde los activara.
En el form load (doble click en cualquier parte del formulario en blanco) escriba lo
siguiente:


Set score off
Set talk off
Set exclusive off
Set deleted off
Close all data
Close all tables

Vcamponumerico=0
Vcampocaracter=
(Esto es para que cada vez que ejecute el formulario todos los textos estn en blanco por
eje. Vcarne=0, Vnombre=)

Select 0
Use nombretabla alias nombretabla again
Set index to nombre_indice (El ndice que usted cre)
Thisform.refresh

En todos los formularios donde vaya a trabajar con la base de datos escriba lo anterior en
el form load.
Los formularios que sirven para eliminar, se usa set exclusive on y set deleted on.

Carn Automtico:
with thisform
calculate max(nombre del campo principal de la tabla) to vcampo (en este caso vcarne)
vcampo=vcampo + 1

thisform.txtnocarne.enabled=.f.
ThisForm.txtApellidos.enabled=.t.
ThisForm.txtNombres.enabled=.t.
ThisForm.txtDireccion.enabled=.t.
ThisForm.txtTelefono.enabled=.t.
ThisForm.txtEncargado.enabled=.t.
thisform.txtapellidos.setfocus
endwith
thisform.refresh

Carn manual

with thisform
nombredelcampoenlatabla =vcampo
if nombredelcampoenlatabla =0 then
ThisForm.txtNocarne.value=0
thisform.txtnocarne.setfocus
else
go top
locate for nombredelcampoenlatabla = vcampo
do case
case found()
messagebox("El Carne ya existe, intente nuevamente",64+0,"Colegio")
ThisForm.txtNocarne.value=0
thisform.txtnocarne.setfocus
case.not.found()
messagebox("El Carne es nuevo, puede continuar",64+0,"Colegio")
thisform.txtnocarne.enabled=.f.
ThisForm.txtApellidos.enabled=.t.
ThisForm.txtNombres.enabled=.t.
ThisForm.txtDireccion.enabled=.t.
ThisForm.txtTelefono.enabled=.t.
ThisForm.txtEncargado.enabled=.t.
thisform.txtapellidos.setfocus
endcase
endif
thisform.refresh
endwith


Guardar en la base de datos

with thisform
store 0 to guardar

guardar = messagebox("Desea Guardar la informacion?",32+4,"Colegio")

if guardar=6 then
select alumnos
insert into alumnos(nocarne,apellidos,nombres,direccion,telefono,encargado);
value(ThisForm.txtNocarne.value,ThisForm.txtApellidos.value,ThisForm.txtNombres.value,ThisFor
m.txtDireccion.value,ThisForm.txtTelefono.value,ThisForm.txtEncargado.value)

Para limpiar los textos y habilitarlos
ThisForm.txtNocarne.value=0
ThisForm.txtApellidos.value=""
ThisForm.txtNombres.value=""
ThisForm.txtDireccion.value=""
ThisForm.txtTelefono.value=0
ThisForm.txtEncargado.value=""

thisform.txtnocarne.enabled=.t.
ThisForm.txtApellidos.enabled=.f.
ThisForm.txtNombres.enabled=.f.
ThisForm.txtDireccion.enabled=.f.
ThisForm.txtTelefono.enabled=.f.
ThisForm.txtEncargado.enabled=.f.
thisform.txtnocarne.setfocus
else
messagebox("La informacion aun no se ha guardado",64+0,"Colegio")
endif
thisform.refresh
endwith





Eliminar Alumnos


Localizar o Buscar el alumno a eliminar en la base de datos:
with thisform
select alumnos
seek ThisForm.txtNocarne.value
if eof() then
messagebox("No Existe el Registro o ya ha sido Eliminado",64+0,"Colegio")
thisform.txtnocarne.setfocus
else
messagebox("Informacion Localizada en la Base de Datos, Puede Eliminar el
registro",64+0,"Colegio")
Para llenar los textos con los campos de la base de datos:
thisform.txtnocarne.value=nocarne
ThisForm.txtApellidos.value=apellidos
ThisForm.txtNombres.value=nombres
ThisForm.txtDireccion.value=direccion
ThisForm.txtTelefono.value=telefono
ThisForm.txtEncargado.value=encargado
endif
endwith
thisform.refresh

Eliminar datos:
with thisform
store 0 to borrar
borrar=messagebox("Desea Eliminar el Alumno Permanentemente?",32+4,"Colegio")
if borrar = 6 then
delete for nocarne=vcarne
pack
clear get
messagebox("Informacion Eliminada Permanentemente",16+0,"Colegio")
ThisForm.txtNocarne.value=0
ThisForm.txtApellidos.value=""
ThisForm.txtNombres.value=""
ThisForm.txtDireccion.value=""
ThisForm.txtTelefono.value=0
ThisForm.txtEncargado.value=""
else
messagebox("Informacion aun sigue en la base de datos",64+0,"Colegio")
endif
endwith
thisform.refresh

Recuerde que al momento de eliminar desaparecern todos los datos de la cuadrcula
pero si sale del formulario y vuelve a ingresar los datos estarn de nuevo all, a excepcin
del dato que usted elimin.


Las casillas de verificacin tienen que habilitar los textos, esto quiere decir que sus textos
al correr el formulario tiene que estar en la propiedad Enabled False.
Los cdigos para habilitar los textos van dentro de cada casilla, presione doble click para
introducirlos.
with thisform
if(This.value=1)then
ThisForm.txtApellidos.enabled=.t.
else
ThisForm.txtApellidos.enabled=.f.
endif
endwith
Esto es en cada botn
This se coloca diciendo o indicando que este botn realizar cierta accin, porque se est
programando dentro de l, no desde un comando. No se confunda porque si se programa
cualquier casilla de verificacin desde un comando se coloca:
If(chkprueba.value=1).




Regrabar o Modificar

with thisform
store 0 to modificado
local moddi
moddi=messagebox("Desea Modificar la Informacion?",36,"Colegio")
if moddi = 6 then
select alumnos

replace nocarne with ThisForm.txtNocarne.value
replace apellidos with ThisForm.txtapellidos.value
replace nombres with ThisForm.txtnombres.value
replace direccion with ThisForm.txtdireccion.value
replace telefono with ThisForm.txttelefono.value
replace encargado with ThisForm.txtencargado.value

Esto es para activar los textos y los cheks
thisform.txtnocarne.enabled=.t.
ThisForm.txtApellidos.enabled=.f.
ThisForm.txtNombres.enabled=.f.
ThisForm.txtDireccion.enabled=.f.
ThisForm.txtTelefono.enabled=.f.
ThisForm.txtEncargado.enabled=.f.
thisform.txtnocarne.setfocus
ThisForm.Check1.enabled=.f.
ThisForm.Check2.enabled=.f.
ThisForm.Check3.enabled=.f.
ThisForm.Check4.enabled=.f.
ThisForm.Check5.enabled=.f.
ThisForm.Check1.value=0
ThisForm.Check2.value=0
ThisForm.Check3.value=0
ThisForm.Check4.value=0
ThisForm.Check5.value=0

messagebox("Informacion Modificada Exitosamente",0+64,"Colegio")
else
messagebox("La Informacion no se ha modificado",0+64,"Colegio")
endif
modificado=messagebox("Desea Limpiar el Formulario?",32+4,"Colegio")
Esto es si desea limpiar el formulario si la informacion no se modific

if modificado=6 then
thisform.txtnocarne.enabled=.t.
ThisForm.txtApellidos.enabled=.f.
ThisForm.txtNombres.enabled=.f.
ThisForm.txtDireccion.enabled=.f.
ThisForm.txtTelefono.enabled=.f.
ThisForm.txtEncargado.enabled=.f.
thisform.txtnocarne.setfocus
ThisForm.Check1.enabled=.f.
ThisForm.Check2.enabled=.f.
ThisForm.Check3.enabled=.f.
ThisForm.Check4.enabled=.f.
ThisForm.Check5.enabled=.f.
ThisForm.Check1.value=0
ThisForm.Check2.value=0
ThisForm.Check3.value=0
ThisForm.Check4.value=0
ThisForm.Check5.value=0
ThisForm.txtNocarne.value=0
ThisForm.txtApellidos.value=""
ThisForm.txtNombres.value=""
ThisForm.txtDireccion.value=""
ThisForm.txtTelefono.value=0
ThisForm.txtEncargado.value=""
endif
endwith
thisform.refresh

Nota:

Recuerde que en cada formulario tiene que escribir el cdigo del form load, y si es
formulario de eliminar datos los set exclusive y set deleted van en on.
No olvide que tiene que crear un solo ndice para todo el programa, no para cada tabla,
refirindose al ndice que se crea en el cuadro de comandos.
Todos los cdigos que aparecen para limpiar textos son opcionales pero recuerde que le
dan presentacin y esttica a su programa lo cual se califica.
En base a los cdigos que le proporcion realice el formulario de recibos como se le indica
en el prelaboratorio y recuerde que como relacion la tabla de alumnos con la de recibos
con carn principal y secundario los datos del alumno tienen que aparecer en el
formulario de recibos sin problemas.
Este pre-laboratorio tiene una ponderacin, deber entregarlo en CD el da Jueves 27 de
Marzo no importando si le toca clase de programacin, para todos los grados!!
EXITOS ! Y cualquier duda me escriben al correo de donde les envi el pre.


Caren Daz

También podría gustarte