PUBLIC go_Form
[highlight #73D216]SET Multilocks On
[/highlight]
go_Form = CreateObject("frmForm")
go_Form.Visible = .T.
go_Form.Show
READ Events
CLOSE ALL
CLEAR ALL
*****
DEFINE CLASS frmForm As Form
gcValue = " "
Width = 702
Height = 720
MinWidth = This.Width
MaxWidth = This.Width
MinHeight = This.Height
AutoCenter = .T.
Themes = .F.
ADD OBJECT lblTable as Label WITH ;
Left = 18, Top = 15, Caption = "Data in Table", FontItalic = .T., FontBold = .T., FontSize = 12
ADD OBJECT lblName as Label WITH ;
Left = 216, Top = 18, Caption = "Enter name :"
ADD OBJECT txtName as TextBox WITH ;
Left = 300, Top = 15, Value = ""
PROCEDURE txtName.LostFocus()
ThisForm.gcValue = ALLTRIM(This.Value)
ENDPROC
ADD OBJECT cmdRequery as CommandButton WITH ;
Left = 420, Top = 15, Height = 24, Caption = "Requery view", BackColor = RGB(0, 210, 0)
PROCEDURE cmdRequery.Click()
ThisForm.cmdSave.Click()
IF EMPTY(ThisForm.gcValue)
= MESSAGEBOX("Please enter name", 48, "Names")
ELSE
REQUERY("vueNames")
ENDIF
ThisForm.Refresh()
ENDPROC
ADD OBJECT cmdSave as CommandButton WITH ;
Left = 540, Top = 15, Height = 24, Caption = "Update table", ForeColor = RGB(255, 255, 255), BackColor = RGB(0, 215, 0)
[highlight #73D216] PROCEDURE cmdSave.Click()
LOCAL liNextRecord, lcAlias
lcAlias = ALIAS()
SELECT vueNames
liNextRecord = GETNEXTMODIFIED(0)
DO WHILE liNextRecord > 0
GOTO liNextRecord
= TABLEUPDATE(0, .T., "vueNames")
liNextRecord = GETNEXTMODIFIED(liNextRecord)
ENDDO
SELECT (lcAlias)
ENDPROC
[/highlight]
ADD OBJECT lblView as Label WITH ;
Left = 18, Top = 360, Caption = "Data in View", FontItalic = .T., FontBold = .T., Anchor = 90, FontSize = 12
Add Object grdATM as Grid WITH ;
ReadOnly = .T., ;
Top = 48, ;
Left = 18, ;
Height = 300, ;
Width = ThisForm.Width - 36, ;
RowHeight = 24, ;
AllowRowSizing = .F., ;
HeaderHeight = 21, ;
AllowHeaderSizing = .F., ;
DeleteMark = .F., ;
Anchor = 75, ;
Visible = .T., ;
ColumnCount = -1, ;
RecordSource = "tblNames"
PROCEDURE grdATM.Init()
WITH This
.Column1.Header1.Caption = "ID"
.Column1.Header1.FontBold = .T.
.Column1.Width = 60
.Column2.Header1.Caption = "Name"
.Column2.Header1.FontBold = .T.
.Column2.Width = 120
.Column3.Header1.Caption = "Street"
.Column3.Header1.FontBold = .T.
.Column3.Width = 150
.Column4.Header1.Caption = "City"
.Column4.Header1.FontBold = .T.
.Column4.Width = 150
.Column5.Header1.Caption = "ZipCode"
.Column5.Header1.FontBold = .T.
.Column5.Width = 150
ENDWITH
ENDPROC
Add Object grdATMVUE as Grid with;
Top = 396, ;
Left = 18, ;
Height = 300, ;
Width = ThisForm.Width - 36, ;
RowHeight = 24, ;
AllowRowSizing = .F., ;
HeaderHeight = 21, ;
AllowHeaderSizing = .F., ;
DeleteMark = .F., ;
Anchor = 30, ;
Visible = .T., ;
ColumnCount = -1, ;
RecordSource = "vueNames"
PROCEDURE grdATMVUE.Init()
WITH This
.Column1.Header1.Caption = "ID"
.Column1.Header1.FontBold = .T.
.Column1.Width = 60
.Column1.ReadOnly = .T.
.Column2.Header1.Caption = "Name"
.Column2.Header1.FontBold = .T.
.Column2.Width = 120
.Column3.Header1.Caption = "Street"
.Column3.Header1.FontBold = .T.
.Column3.Width = 150
.Column4.Header1.Caption = "City"
.Column4.Header1.FontBold = .T.
.Column4.Width = 150
.Column5.Header1.Caption = "ZipCode"
.Column5.Header1.FontBold = .T.
.Column5.Width = 150
ENDWITH
ENDPROC
PROCEDURE Load()
IF FILE("ATMOS.DBC")
OPEN DATABASE ATMOS
ELSE
CREATE DATABASE "ATMOS"
CREATE TABLE "tblNames" (iAutoInc i AUTOINC NEXTVALUE 100, cName C(20), cStreet C(20), cCity C(20), cZipCode C(20))
INSERT INTO tblNames (cName, cStreet, cCity, cZipCode) VALUES ("Winston Smith","123 Anywhere St","Chicago","60601")
INSERT INTO tblNames (cName, cStreet, cCity, cZipCode) VALUES ("Andrea Lopez","235 N Ave","Lawrence","08648")
INSERT INTO tblNames (cName, cStreet, cCity, cZipCode) VALUES ("Sandra Johnson","2500 8th St","Los Angeles","90061")
INSERT INTO tblNames (cName, cStreet, cCity, cZipCode) VALUES ("Kate Wilson","987 M Blvd","Tarzana","91356")
INSERT INTO tblNames (cName, cStreet, cCity, cZipCode) VALUES ("Kate Smith","87 Santa M Blvd","Santa Barbara","91358")
INSERT INTO tblNames (cName, cStreet, cCity, cZipCode) VALUES ("Jim Monterrey","8715 Santa Monica","Santa Barbara","91358")
INSERT INTO tblNames (cName, cStreet, cCity, cZipCode) VALUES ("Winston Smith","123 Anywhere St","Eau Claire","20601")
INSERT INTO tblNames (cName, cStreet, cCity, cZipCode) VALUES ("Andrea Lopez","235 N Ave","Toronto","28648")
INSERT INTO tblNames (cName, cStreet, cCity, cZipCode) VALUES ("Sandra Johnson","2500 8th St","Los Alamos","20061")
INSERT INTO tblNames (cName, cStreet, cCity, cZipCode) VALUES ("Kate Wilson","987 M Blvd","Carlson","21356")
INSERT INTO tblNames (cName, cStreet, cCity, cZipCode) VALUES ("Kate Smith","87 Santa M Blvd","Santa Ines","21358")
INSERT INTO tblNames (cName, cStreet, cCity, cZipCode) VALUES ("Jim Monterrey","8715 Santa Monica","Santa Ines","21358")
LOCATE
CREATE SQL VIEW "VUENAMES" ;
AS Select * from ATMOS!tblNames where AT(ThisForm.gcValue, cName) > 0 order by 2
DBSetProp("VUENAMES", "View", "UpdateType", 1)
DBSetProp("VUENAMES", "View", "WhereType", 3)
DBSetProp("VUENAMES", "View", "FetchMemo", .T.)
DBSetProp("VUENAMES", "View", "SendUpdates", .T.)
DBSetProp("VUENAMES", "View", "UseMemoSize", 255)
DBSetProp("VUENAMES", "View", "FetchSize", 100)
DBSetProp("VUENAMES", "View", "MaxRecords", -1)
DBSetProp("VUENAMES", "View", "Tables", "tblNames")
DBSetProp("VUENAMES", "View", "Prepared", .F.)
DBSetProp("VUENAMES", "View", "CompareMemo", .T.)
DBSetProp("VUENAMES", "View", "FetchAsNeeded", .F.)
DBSetProp("VUENAMES", "View", "Comment", "")
DBSetProp("VUENAMES", "View", "BatchUpdateCount", 1)
DBSetProp("VUENAMES", "View", "ShareConnection", .F.)
DBSetProp("VUENAMES", "View", "AllowSimultaneousFetch", .F.)
*!* Field Level Properties for VUENAMES
DBSetProp("VUENAMES.iautoinc", "Field", "KeyField", .T.)
DBSetProp("VUENAMES.iautoinc", "Field", "Updatable", .F.)
DBSetProp("VUENAMES.iautoinc", "Field", "UpdateName", "tblNames.iAutoInc")
DBSetProp("VUENAMES.iautoinc", "Field", "DataType", "I")
* Props for the VUENAMES.cname field.
DBSetProp("VUENAMES.cname", "Field", "KeyField", .F.)
DBSetProp("VUENAMES.cname", "Field", "Updatable", .T.)
DBSetProp("VUENAMES.cname", "Field", "UpdateName", "tblNames.cName")
DBSetProp("VUENAMES.cname", "Field", "DataType", "C(20)")
* Props for the VUENAMES.cstreet field.
DBSetProp("VUENAMES.cstreet", "Field", "KeyField", .F.)
DBSetProp("VUENAMES.cstreet", "Field", "Updatable", .T.)
DBSetProp("VUENAMES.cstreet", "Field", "UpdateName", "tblNames.cStreet")
DBSetProp("VUENAMES.cstreet", "Field", "DataType", "C(20)")
* Props for the VUENAMES.ccity field.
DBSetProp("VUENAMES.ccity", "Field", "KeyField", .F.)
DBSetProp("VUENAMES.ccity", "Field", "Updatable", .T.)
DBSetProp("VUENAMES.ccity", "Field", "UpdateName", "tblNames.cCity")
DBSetProp("VUENAMES.ccity", "Field", "DataType", "C(20)")
* Props for the VUENAMES.czipcode field.
DBSetProp("VUENAMES.czipcode", "Field", "KeyField", .F.)
DBSetProp("VUENAMES.czipcode", "Field", "Updatable", .T.)
DBSetProp("VUENAMES.czipcode", "Field", "UpdateName", "tblNames.cZipCode")
DBSetProp("VUENAMES.czipcode", "Field", "DataType", "C(20)")
ENDIF
IF USED("tblNames")
SELECT tblNames
ELSE
USE tblNames IN 0
ENDIF
IF USED("vueNames")
SELECT vueNames
ELSE
USE vueNames IN 0
ENDIF
[highlight #73D216] CURSORSETPROP("Buffering", 5, "VUENAMES")[/highlight]
ENDPROC
PROCEDURE Destroy()
= TABLEREVERT(.T., "VUENAMES")
WAIT WINDOW + "... reverting data changes ..." TIMEOUT 1
CLEAR Events
ThisForm.Release
ENDPROC
ENDDEFINE
*****