标准的ALV功能包括排序、筛选和计算。
除了标准的ALV功能外,可以使用用户自定义的、特定于应用程序的功能来显示UI元素。
可以进行以下功能设置:
● 提供标准的ALV功能。
● 创建、获取和删除功能。
● 指定UI元素。
● 在工具栏指定位置。
● 控制可见性和状态激活。
● 事件处理功能。
6.5.1.1提供标准的ALV功能
可以选择不同的程序,为用户提供一个标准的ALV功能:
1)显示标准ALV功能:UI元素的类型和使用的标签默认设置。根据标准ALV功能,UI元素显示在“设置”对话框或在工具栏上。可以指定标准ALV功能是向用户提供相关的标准功能的UI元素。
2)提供工具栏的替代功能。如果想实现在工具栏上的UI元素与标准设置有所不同,则可添加不同类型的UI元素到工具栏并允许使用标准ALV功能,但隐藏相应的UI元素,然后生成一个用户定义的函数,并将方法分配到所需的标准ALV功能。
(1)显示标准ALV功能
如果使用ALV配置模型,则所有标准的ALV功能对象会自动创建。程序员只需要指定是否允许用户使用此相关功能即可。
注:默认情况下,所有的标准ALV功能都显示,但这里需要计算的标准功能是个例外(包括中间结果)。
可以在接口类IF_SALV_WD_STD_FUNCTIONS(实现类CL_SALV_WD_CONFIG_ TABLE)找到所需的方法。所有这些方法都包含参数类型ABAP_BOOL值,见表6-80。
表 6-80
续
注:相关取得方法的名称以IS_<method NAME>开始,而不是以SET_<method NAME>开始。
(2)在工具栏提供替代功能
如果用户想在工具栏上使用标准设置以外的不同类型或标签UI元素,则允许使用标准ALV功能,但要隐藏相应的UI元素,然后生成一个用户定义的函数,并为其指定所需的标准ALV功能。
程序员可以用标准ALV功能替换如下UI元素:
● Send 下拉列表框与下拉列表框中的个别项目。
● Display As下拉列表框与下拉列表框中的个别项目。
● Insert Row(插入行)、Append Row(追加行)和Delete Row(删除行)按钮。
● Check(检查)按钮。
● Undo(撤销)按钮。
● Excel和Print Version(打印版本)按钮。
● Filter(过滤器)按钮、Define Filter(定义过滤)和Delete Filter(删除过滤)功能。
● Settings(设置)按钮、Open Settings Dialog Box(打开设置对话框)和Close Settings
Dialog Box(关闭设置对话框)功能。
● Views(视图)下拉列表框。
要指定一个标准的ALV功能到一个自定义的函数,则可以使用类CL_SALV_WD_ FUNCTION的方法,见表6-81。
表 6-81
3)系统设置导出到在BEx分析仪
如果用户想通过应用程序将ALV输出导出在BEx分析仪中,必须满足以下先决条件:
● 确保BI系统的安装。这意味着,BEx分析仪也是可用的。
● 在SAP NetWeaver的定制中,单击“Application Server”→“Web Dynpro for ABAP”
→“System-Wide Settings for the Web Dynpro ALV”命令,取消选择Hide BEx Analyzer
Export Function。
6.5.1.2 创建、获取和删除功能
如果使用ALV配置模型,则所有标准的ALV功能对象会自动创建。对象是类CL_ SALV_WD_FUNCTION_STD的引用。
使用用户自定义的功能,在其功能函数中可以创建类CL_SALV_WD_FUNCTION的一个函数对象。根据需要,可以创建许多函数对象,并安排它们在工具栏上。
程序员可以进行以下设置:
● 创建一个用户定义功能函数的对象。
● 取得功能函数的对象。
● 设置和获取功能函数的信息。
● 删除一个用户定义功能的对象。
(1)创建一个用户自定义功能的对象
当创建一个用户定义函数时,程序员可以指定一个唯一的ID(类型STRING)。
要生成一个函数对象,使用接口类IF_SALV_WD_FUNCTION_SETTINGS(实现类CL_SALV_WD_CONFIG_TABLE)的方法,见表6-82。
表 6-82
(2)取得功能函数的对象
为了设置一个函数对象,必须首先调用一个适当的GET方法。程序员可以选择从工具栏上得到以下功能:
● 所有的标准ALV功能或特定的功能。
● 所有用户自定义的函数功能或特定的功能。
● 只有工具栏上面的标准的ALV功能。
● 所有工具栏上面的用户自定义的函数或特定的功能。
获取函数对象,可使用接口类IF_SALV_WD_FUNCTION_SETTINGS(实现类CL_ SALV_WD_CONFIG_TABLE)的方法,见表6-83。
表 6-83
续
(3)设置和获取功能函数的信息
可以检查工具栏的功能,以确定它是否是一个标准的ALV功能或用户定义的功能。
用户还可以指定以下属性:
1)ID。标准ALV功能的ID被自动创建。它包含了有关标准的ALV功能的信息。一个用户定义功能函数的ID是程序员在对象创建时指定的ID。
2)Group。可以根据任何标准,使用组名划分功能。(www.daowen.com)
对于设置和获取的信息,可以使用类CL_SALV_WD_FUNCTION或类CL_SALV_WD_ FUNCTION_STD中的方法,见表6-84。
表 6-84
(4)删除一个用户定义功能的对象
程序员只能删除用户定义的功能函数的对象,不能删除标准ALV功能的对象。
要删除一个用户自定义的功能,需指定功能ID。要做到这一点,可以使用接口类IF_SALV_WD_FUNCTION_SETTINGS(实现类CL_SALV_WD_CONFIG_TABLE)的方法,见表6-85。
表 6-85
6.5.1.3 预定义Context节点
一些自定义功能可以插入到工具栏中,当用户触发时会导致数据改变。因此,这些功能需要链接到应用程序Context节点。要做到这一点,必须定义一个外部环境映射到ALV接口控制器Context节点的FUNCTION_ELEMENTS上。为每个功能对应的Context节点生成一个合适的属性或子节点。
6.5.1.4指定UI元素
可以为自定义功能使用下面UI元素:
● Button(CL_SALV_WD_FE_BUTTON)。
● ButtonChoice(CL_SALV_WD_FE_BUTTON_CHOICE)。
● DropDownByIndex(CL_SALV_WD_FE_DROPDOWN_BY_IDX)。
● DropDownByKey(CL_SALV_WD_FE_DROPDOWN_BY_KEY)。
● InputField(CL_SALV_WD_FE_INPUT_FIELD)。
● LinkToAction(CL_SALV_WD_FE_LINK_TO_ACTION)。
● LinkToURL(CL_SALV_WD_FE_LINK_TO_URL)。
● ToggleButton(CL_SALV_WD_FE_TOGGLE_BUTTON)。
对于个体UI元素之间的分隔线:
● Separator(CL_SALV_WD_FE_SEPARATOR)。
注:程序员可以在系统中的包SALV_WD_CONFIG中找到相关类。
指定UI元素的自定义功能的步骤如下:
● 生成一个功能对象。
● 生成工具栏上面列出的元素之一。
● 根据需要指定工具栏元素的属性。
● 分配工具栏元素到功能函数。
要指定一个合适的UI元素到一个函数对象,可以使用类CL_SALV_WD_FUNCTION中的方法,见表6-86。
表 6-86
6.5.1.5 在工具栏中指定位置
可以以不同的方式指定功能的位置:
1)指定工具栏中UI元素对齐。可以指定功能元素在工具栏中的对齐方式是左对齐还是右对齐。
2)指定位置。可以指定在哪个位置显示功能。
要指定一个标准的ALV功能的位置,可以使用类CL_SALV_WD_FUNCTION_STD中的方法。
要指定一个自定义功能的位置,可以使用类CL_SALV_WD_FUNCTION中的方法,见表6-87。
表 6-87
6.5.1.6控制可见性和激活状态
可以指定是否以不同的方式使用自定义函数:
● 可以关闭一个单独的UI元素的功能。
● 可以隐藏一个单独的UI元素的功能。
● 可以关闭整个工具栏。
● 可以隐藏整个工具栏。
(1)激活和取消激活功能
如果用户不希望隐藏UI元素,要防止用户执行它的功能,则可以禁用UI元素。
要激活或禁用标准ALV功能的UI元素,需使用类CL_SALV_WD_FUNCTION_STD中的方法。
要激活或禁用的UI元素的自定义功能,可以使用UI元素类的方法,见表6-88。
表 6-88
(2)显示和隐藏功能
以下两个常量,可用于显示和隐藏功能。
1)VISIBILITY-VISIBLE:该系统显示的功能。
2)VISIBILITY-NONE:该系统隐藏的功能。
要显示或隐藏标准ALV功能的UI元素,可以使用类CL_SALV_WD_FUNCTION_STD中的方法。
要显示或隐藏UI元素的自定义功能,可以使用类CL_SALV_WD_FUNCTION中的方法见表6-89。
表 6-89
(3)显示、隐藏和禁用的工具栏
为了控制整个工具栏的激活状态或可见性,使用的接口类IF_SALV_WD_FUNCTION_ SETTINGS(实现类CL_SALV_WD_CONFIG_TABLE)的方法,见表6-90。
表 6-90
6.5.1.7事件处理函数
(1)标准ALV功能事件
使用标准ALV功能,只能在两个特定的时间点处理:当用户执行一个功能处理或当用户完成一个功能处理。用户选择没有收到任何有关的标准ALV功能。
可以使用下面的事件来处理标准的ALV功能:
● ON_STD_FUNCTION_BEFO。
● ON_STD_FUNCTION_AFTE。
(2)自定义的功能事件
使用自定义功能,可以决定哪些功能是用户选择的。
事件ON_FUNCTION是可用来处理自定义的功能。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。