程序员可以根据特定的规则进行排序,更改数据记录的顺序,进行ALV输出。可以指定哪些字段的值按字母顺序或数字顺序(按大小)进行排序,从而确定序列中的所有行。
开发者可以进行以下排序设置:
● 创建、获取、删除排序设置(排序条件)。
● 设置排序方向和排序顺序。
● 按照相同的值分组。
● 强制某个字段的排序。
● 按照选中某一列启用排序。
● 根据另一个字段的值对一个字段结合排序。
● 隐藏和显示排序标签页。
注:程序员可以使用数字列的值进行合计。默认情况下,所有列的值均可用于此功能。除了合计之外,如果需要中间小计结果,则需要对ALV输出进行排序。如果要显示小计结果则ALV可以按照列的默认排序情况自动生成小计结果。
(1)创建、获取、删除排序设置
排序是ALV输出中一个字段的属性。创建、获取或删除字段排序条件,可以使用接口类IF_SALV_WD_SORT(实施类CL_SALV_WD_FIELD)中的方法,见表6-51。
表 6-51
字段的排序条件对象是类CL_SALV_WD_SORT_RULE的对象。
注:如果指定的ALV输出是一个新的结构,则新的数据内表的所有字段的排序条件会自动删除。
(2)设置排序方向和排序顺序
对于每个单独的排序条件,可以指定是否要排序及按字段值升序(A、B、C)或降序(C B、A)排序(排序方向)。
如果通过改变由多个字段排序更改ALV输出,则输出结果依赖于排序序列中的哪些字段默认情况下,该字段在序列中被排序以生成排序条件。程序员可以更改此序列。要做到这一点,可以为排序顺序的字段指定一个位置编号(或排序条件)。
若要更改排序条件的排序方向或排序顺序,则可以使用类CL_SALV_WD_SORT_RULE中的方法,见表6-52。
表 6-52
3)按照相同的值分组
默认情况下,在一个排序字段的排序的序列中,ALV输出的值是相同的。ALV自动将值进行分组。可以指定一个值出现在每一行,即使这个值不会改变。要做到这一点,使用接口类IF_SALV_WD_SORT(实现类CL_SALV_WD_FIELD)的方法,见表6-53。
表 6-53(www.daowen.com)
(4)强制某个字段的排序
可以明确地禁止一个字段进行排序,这具有以下效果:
● 相关领域不再显示的“Settings”对话框中的“排序”选项卡页面。
● 如果想通过用户单击列标题进行排序,则该功能不可用,禁止排序的列的箭头图标被
隐藏。
● 如果在应用程序中为这一字段定义了一个排序条件,则这种状况不影响ALV输出。
要禁止某个字段的排序,使用接口类IF_SALV_WD_SORT(实现类CL_SALV_WD_ FIELD)的方法,见表6-54。
表 6-54
(5)按照选中某一列启用排序
ALV输出中的列标题中可以显示小箭头图标。用户可以使用这些箭头图标将列按升序或降序进行排序。
也可以指定按一列排序,及使用〈Crtl〉键添加多个列进行排序。
为了使用户能够通过单击列标题进行排序,可以使用接口的类IF_SALV_WD_STD_ FUNCTIONS(实现类CL_SALV_WD_CONFIG_TABLE)的方法,见表6-55。
表 6-55
为了使用户能够通过单击列标题的多个列进行排序,可以使用接口类F_SALV_WD_ TABLE_SETTINGS(实现类CL_SALV_WD_CONFIG_TABLE)的方法,见表6-56。
表 6-56
6)根据另一个字段的值对一个字段结合排序
如果某字段本身不返回所需的结果,则可以指定该字段使用当前字段进行结合排序。要做到这一点,可以使用接口类IF_SALV_WD_COLUMN_SERVICE_REF(实施类CL_SALV_ WD_COLUMN)的方法,见表6-57。
表 6-57
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。