Article ID: 140306
Article Last Modified on 6/29/2004
* Begin Code
PUBLIC oGridForm
oGridForm = CREATEOBJECT("myForm")
oGridForm.Show
DEFINE CLASS myForm AS FORM
Height = 350
ADD OBJECT myGrid AS myGrid WITH Top = 20, LEFT = 20,;
Height = 200
ADD OBJECT myCommand as COMMANDBUTTON WITH Top = 250,;
Left = 20, Height = 30, Caption = "Change Grid"
PROCEDURE myCommand.Click
This.Parent.myGrid.SetGrid()
GO TOP
ThisForm.ReFresh
ENDPROC
ENDDEFINE
DEFINE CLASS myGrid AS GRID
ColumnCount = 0
PROCEDURE Init
This.Parent.myGrid.SetGrid()
ThisForm.Refresh
ENDPROC
PROCEDURE SetGrid
ThisForm.Lockscreen = .T.
lcFileName = GETFILE("DBF","Select the Table:")
USE (lcFileName)
lcAlias = ALIAS()
This.RecordSource = ""
This.RecordSource = lcAlias
SELECT (lcAlias )
FOR i = 1 TO FCOUNT()
IF This.ColumnCount < i
This.AddObject("column" + ALLTRIM(STR(i)),"MyColumn")
ENDIF
This.Columns(i).Visible = .t.
This.Columns(i).ControlSource = FIELD(i)
This.Columns(i).Header1.Caption = FIELD(i)
ENDFOR
FOR i = FCOUNT() + 1 TO This.ColumnCount
This.RemoveObject("Column"+ALLTRIM(STR(i)))
ENDFOR
ThisForm.Caption = lcAlias
ThisForm.Lockscreen = .F.
ENDPROC
ENDDEFINE
DEFINE CLASS myColumn as Column
ADD OBJECT Header1 as myHeader WITH Visible = .T.
ENDDEFINE
DEFINE CLASS myHeader AS HEADER
PROCEDURE Click
FOR nCount = 1 TO 254
IF !EMPTY(TAG(nCount))
IF This.Caption = TAG(nCount)
SET ORDER TO This.Caption
EXIT
ENDIF
ELSE
EXIT
ENDIF
ENDFOR
This.Parent.Parent.ReFresh
This.Parent.Parent.SetFocus
ENDPROC
ENDDEFINE
* End Code
Keywords: kbhowto kbcode KB140306