未找到变量
Variable not found
我在一个由视图填充的表单上有一个网格。我添加了一个按钮来过滤数据。
cFilter = UPPER(ALLTRIM(INPUTBOX("Filter sur :","Spectech France - Suivi DDP")))
SELECT vwDdp_all
LOCATE FOR ALLTRIM(ref_client) = cFilter
IF FOUND()
SET FILTER TO ref_client = cFilter
THISFORM.grdDDP.Column10.SetFocus
ENDIF
我收到 "Variable cFilter not found" 错误。我不明白的是错误是在上面的代码已经运行之后出现的;在调试器中,有罪的方法表示为"MyForm.grdDDP"。没有其他的。我怎样才能找到它实际在哪里寻找这个变量?
变量 cFilter 必须是全局变量才能使您的代码正常工作。
如果你不想使用全局变量,你可以这样做。
cFilter = UPPER(ALLTRIM(INPUTBOX("Filter sur :","Spectech France - Suivi DDP")))
SELECT vwDdp_all
LOCATE FOR ALLTRIM(ref_client) = cFilter
IF FOUND()
lcFiltClause = [ref_client = ']+cFilter+[']
SET FILTER TO &lcFiltClause
THISFORM.grdDDP.Column10.SetFocus
ENDIF
在绑定游标中导航时,过滤器表达式必须始终可见。你可以这样做:
Local lcFilter
lcFilter = Textmerge('ref_client = "<< m.cFilter >>"')
Set Filter To &lcFilter
但是,set filter 是几乎所有开发人员都在其 "not to use" 列表中使用的命令之一。特别是对于网格,你不应该使用 "set filter"。相反,您可以简单地使用查询作为网格的来源。或者,如果 ref_client 是一个索引字段,那么您可以使用 "Set range" 代替(它不需要全局变量或任何 & 技巧)。
我在一个由视图填充的表单上有一个网格。我添加了一个按钮来过滤数据。
cFilter = UPPER(ALLTRIM(INPUTBOX("Filter sur :","Spectech France - Suivi DDP")))
SELECT vwDdp_all
LOCATE FOR ALLTRIM(ref_client) = cFilter
IF FOUND()
SET FILTER TO ref_client = cFilter
THISFORM.grdDDP.Column10.SetFocus
ENDIF
我收到 "Variable cFilter not found" 错误。我不明白的是错误是在上面的代码已经运行之后出现的;在调试器中,有罪的方法表示为"MyForm.grdDDP"。没有其他的。我怎样才能找到它实际在哪里寻找这个变量?
变量 cFilter 必须是全局变量才能使您的代码正常工作。
如果你不想使用全局变量,你可以这样做。
cFilter = UPPER(ALLTRIM(INPUTBOX("Filter sur :","Spectech France - Suivi DDP")))
SELECT vwDdp_all
LOCATE FOR ALLTRIM(ref_client) = cFilter
IF FOUND()
lcFiltClause = [ref_client = ']+cFilter+[']
SET FILTER TO &lcFiltClause
THISFORM.grdDDP.Column10.SetFocus
ENDIF
在绑定游标中导航时,过滤器表达式必须始终可见。你可以这样做:
Local lcFilter
lcFilter = Textmerge('ref_client = "<< m.cFilter >>"')
Set Filter To &lcFilter
但是,set filter 是几乎所有开发人员都在其 "not to use" 列表中使用的命令之一。特别是对于网格,你不应该使用 "set filter"。相反,您可以简单地使用查询作为网格的来源。或者,如果 ref_client 是一个索引字段,那么您可以使用 "Set range" 代替(它不需要全局变量或任何 & 技巧)。