点击或拖拽改变大小

Functions.DbSetFilter 方法

X#
设置过滤条件。

命名空间:  XSharp.RT
程序集:  XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法
 FUNCTION DbSetFilter(
	cbCondition,
	cCondition
) AS LOGIC CLIPPER
查看代码

参数

cbCondition (Optional)
类型:__Usual
以可执行形式表达过滤条件的代码块。
cCondition (Optional)
类型:__Usual
一个可选的字符值,以文本形式表达过滤条件。
如果省略 cCondition,DBFilter() 函数将为该工作区返回一个空字符串。

返回值

类型:Boolean
如果当前记录满足过滤条件则返回 TRUE;否则返回 FALSE。
备注
DBSetFilter() 设置逻辑过滤条件。 默认情况下,此函数在当前选定的工作区上操作。
可以通过在别名表达式中指定来使其在未选定的工作区上操作。
设置过滤器后,不满足过滤条件的记录在逻辑上不可见。
也就是说,对逻辑记录进行操作的数据库操作将不会考虑这些记录。 过滤表达式可以是代码块(bCondition)或同时包含代码块和等效文本(cCondition)。
如果同时提供了两种版本,它们必须表达相同的条件。
DBSetFilter() 执行与 SET FILTER 命令相同的功能。
有关更多信息,请参阅 SET FILTER 命令。
提示 提示:
如果您使用的 RDD 支持优化,请使用 SET OPTIMIZE 来控制 RDD 是否会根据工作区中可用的顺序优化过滤器搜索。
提示 提示:
逻辑记录:
DBSetFilter() 影响记录的逻辑可见性(见上文)。
副作用:
设置过滤条件只保证按上述方式限制某些记录的可见性。
过滤表达式不一定在任何特定时间、以任何特定方式或在任何特定记录或一系列记录上进行评估。
如果过滤表达式依赖于数据库文件或工作区之外的信息,其效果是不可预测的。
如果过滤表达式改变了工作区的状态(例如,移动到不同的记录或改变记录的内容),其效果是不可预测的。
评估上下文:
当评估过滤表达式时,相关的工作区会自动被选为当前工作区;之后会自动恢复先前选择的工作区。
示例
此示例将数据访问限制为 Age 字段值小于 40 的记录:
X#
1USE employee NEW
2DBSetFilter({|| Age < 40}, "Age < 40")
3DBGoTop()
参见