使用过滤器,可以限制ALV输出显示的数据记录。要做到这一点,可以在一个特定的字段中指定条件的数据记录,以满足要显示或过滤掉数据。
可以对过滤器对象进行以下设置:
● 创建、获取或删除字段中的过滤条件。
● 设定筛选条件。
● 忽略大小写。
● 设定一列禁止过滤。
● 使用另一个字段的值过滤。
● 在工具栏上的“过滤器”设置页面中隐藏或显示过滤标签页。
(1)创建、获取或删除字段中的过滤条件
不像排序条件,程序员可以为每个字段创建无限的过滤条件。
注:程序员只可以对没有禁止的列创建过滤条件。
过滤是ALV输出中一个字段的属性。创建、获取或删除字段的过滤条件,可以使用接口类IF_SALV_WD_FILTER(实现类CL_SALV_WD_FIELD)的方法,见表6-58。
表 6-58
一个对象的类CL_SALV_WD_FILTER_RULE代表一个字段的过滤条件。
注:如果用一个新的结构分配一个新的数据表到ALV输出,则所有字段的所有过滤器条件会被自动删除。
(2)设置筛选条件
过滤器的条件包括以下内容:
1)检查行的比较值。比较值可以是一个单独的值或范围。用户角度输入的是下限的值LOW_VALUE),作为一个范围,用户需输入一个上限的值(HIGH_VALUE)。
2)比较字段值和比较值大小操作。使用这个规范的,用户可以指定单元格的值和比较值之间的关系(如大于、小于或等于)。
3)包含或排除。使用这个规范的,可以指定是否显示不符合条件的行。
要更改设置的过滤条件,可以使用类CL_SALV_WD_FILTER_RULE方法,见表6-59。(www.daowen.com)
表 6-59
(3)忽略大小写
默认情况下,当过滤条件查找数据记录时,过滤器区分大小写。当用户输入比较值时必须完全正确地输入值,以获得所需的结果。
可以设置忽略大小写。要做到这一点,可以使用接口类IF_SALV_WD_FIELD_ SETTINGS(实现类CL_SALV_WD_CONFIG_TABLE)的方法,见表6-60。
表 6-60
(4)设定一列禁止过滤
可以明确地禁止某个字段的过滤。这具有以下效果:
● 如果ALV输出被过滤,则过滤器行会自动显示,可以看到当前为每列设置的过滤。用
户可以快速输入过滤条件。
● 如果不允许在一个字段中过滤,则过滤器中的行的相应单元格是空的并且不可输入。
● 在“设置”对话框中,“筛选器”选项卡页面中的相应列不再可用。
● 如果在应用程序中定义了这一字段的过滤条件,则过滤条件对ALV输出没有影响。
要禁止某个字段的筛选,可使用接口类IF_SALV_WD_FILTER(实现类CL_SALV_ WD_FIELD)的方法,见表6-61。
表 6-61
(5)使用的另一个字段的值过滤
可以指定一个字段,根据该字段对当前字段进行过滤。如果该字段不能返回所需的结果或者需要过于复杂的输入,则可以使用接口类IF_SALV_W D_COLUMN_SERVICE_REF(实施类CL_SALV_WD_COLUMN的)的方法,见表6-62。
表 6-62
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。