Article ID: 163185
Article Last Modified on 12/3/2003
-or-
-or-
-or-
-or-
THISFORM.cfilterstring = "cust_id = 'A'"
lcFilterstring = THISFORM.cfilterstring
SET FILTER TO &lcFilterstring
PUBLIC gcFilterString
gcFilterString = "cust_id = 'A'"
SET FILTER TO (gcFilterString)
SELECT * FROM customer WHERE cust_id = "A" ;
INTO CURSOR custcursor NOFILTER
In Visual FoxPro 3.0, this can be forced by adding a calculated field to
the SELECT, such as the following:
SELECT *, SPACE(1) FROM customer WHERE cust_id = "A" ;
INTO CURSOR custcursor
* Beginning of code example
*
PUBLIC oNavClass, oform
oNavClass=CREATEOBJECT('navclass')
oform=CREATEOBJECT("form1")
oform.SHOW
DEFINE CLASS navclass AS CUSTOM
* This class does skipping and browsing in currently
* selected table
cfilterstring = ""
PROCEDURE DoBrowse
BROWSE NOWAIT
ENDPROC
PROCEDURE DoSkip
LPARAMETER ndirection
SKIP (ndirection)
IF EOF()
GO BOTTOM
ENDIF
IF BOF()
GO TOP
ENDIF
ENDPROC
ENDDEFINE
DEFINE CLASS form1 AS FORM
cfilterstring = ""
AUTOCENTER = .T.
HEIGHT = 200
WIDTH = 300
CAPTION = "Form1"
NAME = "FORM1"
ADD OBJECT combo1 AS COMBOBOX WITH ;
HEIGHT = 24, ;
LEFT = 12, ;
STYLE = 2, ;
TOP = 72, ;
WIDTH = 100, ;
NAME = "Combo1", ;
ROWSOURCE = "SELECT DISTINCT SUBSTR(cust_id,1,1) ;
FROM customer ORDER BY 1 INTO CURSOR curTemp", ;
ROWSOURCETYPE = 3
ADD OBJECT command1 AS COMMANDBUTTON WITH ;
TOP = 120, ;
LEFT = 60, ;
HEIGHT = 27, ;
WIDTH = 84, ;
CAPTION = "Skip", ;
NAME = "Command1"
ADD OBJECT text1 AS TEXTBOX WITH ;
CONTROLSOURCE = "customer.cust_id", ;
HEIGHT = 23, ;
LEFT = 180, ;
TOP = 72, ;
WIDTH = 100, ;
NAME = "Text1"
ADD OBJECT command2 AS COMMANDBUTTON WITH ;
TOP = 120, ;
LEFT = 168, ;
HEIGHT = 27, ;
WIDTH = 84, ;
CAPTION = "Skip -1", ;
NAME = "Command2"
ADD OBJECT command3 AS COMMANDBUTTON WITH ;
TOP = 170, ;
LEFT = 110, ;
HEIGHT = 27, ;
WIDTH = 84, ;
CAPTION = "Browse", ;
NAME = "Command3"
PROCEDURE LOAD
USE HOME()+'samples\data\customer'
ENDPROC
PROCEDURE UNLOAD
SET FILTER TO
USE IN customer
RELEASE oNavClass
ENDPROC
PROCEDURE combo1.INIT
THIS.VALUE = THIS.LIST(1)
ENDPROC
PROCEDURE combo1.VALID
THISFORM.cfilterstring = "cust_id = '"+THIS.VALUE+"'"
SET FILTER TO EVAL(THISFORM.cfilterstring)
* Comment out above 2 lines and remove comments from lines
* below to demonstrate workaround. ONavClass is public
* and its properties will always be in scope
* oNavClass.cfilterstring = 'cust_id = "'+THIS.VALUE+'"'
* SET FILTER TO EVAL(oNavClass.cfilterstring)
GO BOTTOM
GO TOP
THISFORM.REFRESH
ENDPROC
PROCEDURE command1.CLICK
oNavClass.DoSkip(1)
THISFORM.REFRESH
ENDPROC
PROCEDURE command2.CLICK
oNavClass.DoSkip(-1)
THISFORM.REFRESH
ENDPROC
PROCEDURE command3.CLICK
oNavClass.DoBrowse
ENDPROC
ENDDEFINE
*
* End of code example
Keywords: KB163185