martes, 11 de junio de 2019

Grid en visual foxpro

Grid en visual foxpro

Me enfoqué en realizar este programa para aquellas personas que se están iniciando en el mundo de Visual Foxpro y muy especialmente para una persona que en el forum indicaba de estaba aprendiendo este lenguaje y quería un programa que le enseñe como llenar un Grid.


Este programa es bastante básico  pero puedes agregar,eliminar,modificar,grabar,buscar ,funciones básicas para realizar un programa.También te enseña como crear una tabla libre.

Hubo mucha redundancia en ciertos procedimientos los cuales se debieron hacer en métodos pero no quise ahondar en el tema por considerar que es para aquellas personas que se inician en este mundo.

Pasos aseguir :

Paso 1: En el Evento Load del Formulario creamos la tabla "Prueba".

IF !FILE("PRUEBA.DBF")
    CREATE TABLE prueba (cod_pro c(10),concepto c(25),precio n(8,2))
ENDIF

El programa comprueba si existe la tabla, si no existe el programa crea la tabla.

Paso 2 : En el Evento Init de tu formulario creamos lo siguiente :

SET TALK OFF
SET scor off
SET SAFETY OFF
PUBLIC sw as Number,xreg as Number  
CLEAR
thisform.Caption ="Como llenar un Grid"
thisform.text1.Enabled =.f.
thisform.text2.Enabled =.f.
thisform.text3.Enabled =.f.
thisform.text1.DisabledBackColor =RGB(255,255,255)
thisform.text1.DisabledForeColor =RGB(0,0,0)
thisform.text1.Value=""
thisform.text2.Value=""
thisform.text3.Value =0.00
xreg=0
thisform.grid1.COLUMN3.Alignment = 1 && Alinea la derecha
thisform.grid1.Enabled =.f.
thisform.container2.Visible =.f.
thisform.container2.Enabled =.F.

Paso 3:

En el evento Keypress colocamos lo siguiente :

If nKeyCode=27
sw=0
Thisform.text1.Enabled =.F.
Thisform.text2.Enabled =.F.
Thisform.text3.Enabled =.F.
Thisform.text1.DisabledBackColor =Rgb(255,255,255)
Thisform.text1.DisabledForeColor =Rgb(0,0,0)
Thisform.text1.Value=""
Thisform.text2.Value=""
Thisform.text3.Value =0.00
thisform.container2.Enabled =.F.
thisform.container2.Visible =.f.
thisform.container1.command1.SetFocus 
Endif

Paso 4:

En el command1 en el evento click colocamos el siguiente procedimiento :

thisform.text1.Enabled =.t.
thisform.text2.Enabled =.t.
thisform.text3.Enabled =.t.
thisform.text1.Value=""
thisform.text2.Value=""
thisform.text3.Value =0.00
sw=1
thisform.text1.SetFocus 

En el Command2 en el evento click se agrega lo siguiente :

If xreg>0
mensaje = ' Confirmar La Eliminacion '
i=Messagebox(mensaje,4,' Alerta ')
If i=7
Return
Else
Delete
Messagebox("Registro Borrado con Exito...!")
Thisform.grid1.RecordSource="prueba"
Thisform.text1.Enabled =.F.
Thisform.text2.Enabled =.F.
Thisform.text3.Enabled =.F.
Thisform.text1.DisabledBackColor =Rgb(255,255,255)
Thisform.text1.DisabledForeColor =Rgb(0,0,0)
Thisform.text1.Value=""
Thisform.text2.Value=""
Thisform.text3.Value =0.00
sw=0
xreg=0
Thisform.container1.command1.SetFocus
Endif
ELSE
    MESSAGEBOX("No Datos para Eliminar")
Endif

En el Command3 se agrega lo siguiente :

If !Empty(Thisform.text1.Value) And !Empty(Thisform.text2.Value) And !Empty(Thisform.text3.Value)
Thisform.text1.Enabled =.T.
Thisform.text2.Enabled =.T.
Thisform.text3.Enabled =.T.
sw=2
Thisform.text1.SetFocus
Endif

En el command4 en el evento click

cod=Thisform.text1.Value
des=Thisform.text2.Value
pre=Thisform.text3.Value
If !Empty(cod) And !Empty(des) And !Empty(pre)
If sw=1
Insert Into prueba (cod_pro,concepto,precio) Values (cod,des,pre)
ENDIF
If sw=2
UPDATE prueba set cod_pro=cod,concepto=des,precio=pre WHERE RECNO()=xreg
ENDIF
Select prueba
Go Top
Thisform.grid1.RecordSource="prueba"
Thisform.text1.Enabled =.F.
Thisform.text2.Enabled =.F.
Thisform.text3.Enabled =.F.
Thisform.text1.DisabledBackColor =Rgb(255,255,255)
Thisform.text1.DisabledForeColor =Rgb(0,0,0)
Thisform.text1.Value=""
Thisform.text2.Value=""
Thisform.text3.Value =0.00
sw=0
xreg=0
Thisform.container1.command1.SetFocus
ELSE
    mensa="Error:Recuerde rellenar todos los campos..."
    MESSAGEBOX(mensa,0+64,"Alerta")
    thisform.text1.SetFocus 
Endif

En el command5 se agrega el siguiente paso:

thisform.container2.Visible =.t.
THISFORM.container2.Enabled =.t.
thisform.container2.list1.Requery 
thisform.container2.list1.SelectedID(1)=.t.
thisform.container2.list1.SetFocus 







1 comentarios:

  1. Al descomprimir los archivos rar me dicen que estan dañados. que puedo hacer?

    ResponderEliminar