sábado, 22 de junio de 2019

MANEJO DE GRID EN VISUAL FOXPRO

Manejo de Grid



Muchos presentamos problemas al trabajar con Grillas en Visual Foxpro, tal vez sea por el desconocimiento mismo de este control o es que existe poca información referente al tema. 

Hoy vamos a ver como podemos realizar ciertas tareas que nos permitan dominar un poco mas las herramientas de Visual Foxpro en especial el Grid.

En este artículo vamos a destacar como poder guardar la información mediante la instrucción Insert Into y reflejar dicha información sobre un Grid.

También veremos como crear una tabla Free y colocar el campo codigo de tipo INT y autoinc, el cual irá obteniendo un nuevo valor a medida que se realice un nuevo registro sin necesidad de colocar el campo en insert into.

De igual forma observarás como es posible darle color a un Grid. Podrás ver en la imagen como se utilizan dos(2) tipos de colores. Muchos preguntan si es posible darle un color distinto a cada una de las filas, y ciertamente si se puede realizar pero debemos condicionar cierto valor para que esto se haga.

Este tema también cuenta como podemos obtener la información de un grid y plasmarla sobre un container y asignarles el resulta a cada uno de los textos que aparezcan en el formulario.

Podrás moverte en la dirección que desees y presionar ENTER o en su defecto DBClick y se mostrará el container con toda la información de tu Grid.


Pasos a seguir:

Paso 1: Evento Load

If !File("DEMO.DBF")
Create Table "DEMO.DBF" Free(codigo Int(4) Autoinc,fecha d(8),concepto c(25),grupo c(15),barra c(15),cant N(5,2),precio N(8,2))
Index On codigo Tag codigo Of demo
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"MATEMATICA I","Matematica","752993695214",4,10000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"MATEMATICA II","Matematica","752993636911",3,15000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"FISICA CUANTICA","FISICA","75299888373691",3,15000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"LO QUE EL VIENTO SE LLEVÓ","LITERATURA","752893636914",3,15000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"ROMEO Y JULIETA","LITERATURA","752493636916",3,15000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"CLIPPER","INFORMATICA","75299363666",3,15000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"VISUAL FOXPRO 9","INFORMATICA","75260936914",3,15000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"PHP","INFORMATICA","752993636683",3,15000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"PASCAL","INFORMATICA","752993636841",3,15000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"BASIC","INFORMATICA","7529936386834",3,15000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"QUIMICA ORGANICA","QUIMICA","75299363214",5,15000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"FISICA CAMERO Y CRESPO","FISICA","7529765743",7,15000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"ESTADISTICA","ESTADISTICA","752997674",3,15000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"CONTABILIDAD I","CONTABILIDAD","752996866823",2,15000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"CONTABILIDAD II","CONTABILIDAD","75299363691",1,15000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"HB","GRAFITO","75299363688",9,15000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"HB II","GRAFITO","75299363681",5,15000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"HB III","GRAFITO","75279936369",6,19000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"MATEMATICA III","Matematica","752997536369",6,15000)
Insert Into demo(fecha,concepto,grupo,barra,cant,precio) Values (Date(),"MATEMATICA IV","Matematica","75299363976",23,15000)
Endif

Paso 2: Evento Init

SET TALK OFF
SET scor off
SET SAFETY OFF
SET TALK OFF
SET DATE FRENCH 
SET EXCLUSIVE off
CLEAR
thisform.Height=SYSMETRIC(1)
thisform.Width=SYSMETRIC(2)
thisform.grid1.RecordSource =""
thisform.grid1.RecordSourceType = 1 
thisform.grid1.Width =SYSMETRIC(21)-280 
select demo
go top
thisform.grid1.recordsource="demo"
thisform.container1.Visible =.f.
thisform.container1.Enabled =.f.

Paso 3: Evento Keypress

If nKeyCode=27
   thisform.Release()
Endif

En menu de propiedades deberás colocar Keypresspreview en .t.

Paso 3: En el Grid en Text1 de la columna  1 en el Evento Click y DBClick


Thisform.container1.text1.Value=demo.codigo

Thisform.container1.text2.Value=demo.fecha

Thisform.container1.text3.Value=demo.concepto
Thisform.container1.text4.Value=demo.grupo
Thisform.container1.text5.Value=demo.barra
Thisform.container1.text6.Value=demo.cant
Thisform.container1.text7.Value=demo.precio
Thisform.container1.Visible =.T.
Thisform.container1.Enabled =.T.
Thisform.Refresh

Este código deberás pegarlo en cada una de las columnas del Grid para que pueda funcionar.

Mediante este procedimiento llamaremos el container1 en donde mostraremos la información.

En post posteriores estaré enseñando como insertar un Check dentro de un Grid sin mayor inconveniente. 

Como de costumbre en la parte inferior les dejaré el link de descarga del programa.








0 comentarios:

Publicar un comentario