PUBLIC go_Form
go_Form = CreateObject ("frmForm")
WITH go_Form.grdNames
.Readonly = .T.
.SetAll("Sparse", .F., "Column")
.Column1.Header1.Caption = "Name"
.Column1.Text1.FontBold = .T.
.Column1.Text1.FontItalic = .T.
.Column2.ReadOnly = .F.
.Column2.BackColor = RGB(0, 180, 180)
.Column2.Header1.Caption = "Me"
.Column2.Text1.InputMask = "9,999.99"
.Column3.Header1.Caption = "Sq"
.Column3.Text1.InputMask = "9,999.99"
.Column4.Header1.Caption = "Vo"
.Column4.Text1.InputMask = "9,999.99"
.Column5.Header1.Caption = "Fo"
.Column5.Text1.InputMask = "9,999.99"
.Column6.Header1.Caption = "Sqrt"
.Column6.Text1.InputMask = "9,999.99"
ENDWITH
go_Form.Show
READ Events
CLOSE ALL
CLEAR ALL
DEFINE CLASS frmForm As Form
Width = 420
Height = 360
MinWidth = 420
MinHeight = 360
MaxWidth = 420
MaxHeight = 360
AutoCenter = .T.
*!* Add a grid to the form
Add Object grdNames as Grid with;
ColumnCount = -1, RecordSource = "curNames", Visible = .T., ;
Top = 18, Left = 18, Width = 390, Height = 270, Partition = 108, View = 1
PROCEDURE grdNames.AfterRowColChange()
LPARAMETERS nColIndex
GOTO RECNO()
REPLACE nSquare WITH nMeters * 2, ;
nVolume WITH nMeters * 3, ;
nForth WITH nMeters * 4, ;
nSqrt WITH SQRT(nMeters)
UPDATE tblNames SET ;
nMeters = curNames.nMeters, ;
nSquare = curNames.nSquare, ;
nVolume = curNames.nVolume ;
WHERE cName = curNames.cName
UPDATE tblAddNames SET ;
nForth = curNames.nForth, ;
nSqrt = curNames.nSqrt ;
WHERE cName = curNames.cName
THISFORM.grdNames.Refresh()
ENDPROC
*!* Add object Label
ADD OBJECT lblInfo as Label WITH ;
Top = 330, Left = 168, Autosize = .T., FontSize = 8, FontItalic = .T., ;
Caption = "Only green colored items accept user input"
*!* ADD a Browse button - allows you to see the underlying tables
ADD OBJECT cmdBrowse As CommandButton WITH;
Width=60, Height=30, Left=84, Top=300, Caption="Browse"
PROCEDURE cmdBrowse.Click()
LOCAL lcAlias
lcAlias = ALIAS()
SELECT tblNames
BROWSE TITLE "tblNames" NOEDIT NOWAIT
LOCATE
SELECT tblAddNames
BROWSE TITLE "tblAddNames" NOEDIT NOWAIT
LOCATE
SELECT (lcAlias)
ENDPROC
*!* Add exitbutton to the form
ADD OBJECT cmdExit As CommandButton WITH;
Width=60, Height=30, Left=18, Top=300, Caption="Exit"
PROCEDURE cmdExit.Click()
CLOSE ALL
CLEAR Events
ThisForm.Release
ENDPROC
PROCEDURE Destroy()
ThisForm.cmdExit.Click()
ENDPROC
PROCEDURE Load
IF !FILE("tblNames.dbf")
Create Table tblNames (cName C(10), nMeters I, nSquare I, nVolume I )
For li_I = 1 to 50
INSERT INTO tblNames (cName, nMeters, nSquare, nVolume) ;
VALUES ("Name" + PADL(li_I,3,"0"), li_I, li_I * 2, li_I * 3)
Next li_I
ENDIF
IF !FILE("tblAddNames.dbf")
Create Table tblAddNames (cName C(10), nForth I, nSqrt N(6,2))
For li_I = 1 to 50
INSERT INTO tblAddNames (cName, nForth, nSqrt) ;
VALUES ("Name" + PADL(li_I,3,"0"), li_I * 4, SQRT(li_I))
Next li_I
ENDIF
SELECT tblNames.cName, nMeters, nSquare, nVolume, nForth, nSqrt ;
FROM tblNames ;
JOIN tblAddNames ON tblNames.cName = tblAddNames.cName ;
INTO CURSOR curNames READWRITE
LOCATE
ENDPROC
ENDDEFINE