理论教育 面向对象编程实例:提供ALV功能

面向对象编程实例:提供ALV功能

时间:2023-05-31 理论教育 版权反馈
【摘要】:标准的ALV功能包括排序、筛选和计算。程序员可以用标准ALV功能替换如下UI元素:● Send 下拉列表框与下拉列表框中的个别项目。表 6-856.5.1.3 预定义Context节点一些自定义功能可以插入到工具栏中,当用户触发时会导致数据改变。

面向对象编程实例:提供ALV功能

标准的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

978-7-111-54749-5-Chapter06-90.jpg

978-7-111-54749-5-Chapter06-91.jpg

注:相关取得方法的名称以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

978-7-111-54749-5-Chapter06-92.jpg

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

978-7-111-54749-5-Chapter06-93.jpg

(2)取得功能函数的对象

为了设置一个函数对象,必须首先调用一个适当的GET方法。程序员可以选择从工具栏上得到以下功能:

● 所有的标准ALV功能或特定的功能。

● 所有用户自定义的函数功能或特定的功能。

● 只有工具栏上面的标准的ALV功能。

● 所有工具栏上面的用户自定义的函数或特定的功能。

获取函数对象,可使用接口类IF_SALV_WD_FUNCTION_SETTINGS(实现类CL_ SALV_WD_CONFIG_TABLE)的方法,见表6-83。

6-83

978-7-111-54749-5-Chapter06-94.jpg

978-7-111-54749-5-Chapter06-95.jpg

(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

978-7-111-54749-5-Chapter06-96.jpg

(4)删除一个用户定义功能的对象

程序员只能删除用户定义的功能函数的对象,不能删除标准ALV功能的对象。

要删除一个用户自定义的功能,需指定功能ID。要做到这一点,可以使用接口类IF_SALV_WD_FUNCTION_SETTINGS(实现类CL_SALV_WD_CONFIG_TABLE)的方法,见表6-85。

6-85

978-7-111-54749-5-Chapter06-97.jpg

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

978-7-111-54749-5-Chapter06-98.jpg

6.5.1.5 在工具栏中指定位置

可以以不同的方式指定功能的位置:

1)指定工具栏中UI元素对齐。可以指定功能元素在工具栏中的对齐方式是左对齐还是右对齐。

2)指定位置。可以指定在哪个位置显示功能。

要指定一个标准的ALV功能的位置,可以使用类CL_SALV_WD_FUNCTION_STD中的方法。

要指定一个自定义功能的位置,可以使用类CL_SALV_WD_FUNCTION中的方法,见表6-87。

6-87

978-7-111-54749-5-Chapter06-99.jpg

6.5.1.6控制可见性和激活状态

可以指定是否以不同的方式使用自定义函数:

● 可以关闭一个单独的UI元素的功能。

● 可以隐藏一个单独的UI元素的功能。

● 可以关闭整个工具栏。

● 可以隐藏整个工具栏。

(1)激活和取消激活功能

如果用户不希望隐藏UI元素,要防止用户执行它的功能,则可以禁用UI元素。

要激活或禁用标准ALV功能的UI元素,需使用类CL_SALV_WD_FUNCTION_STD中的方法。

要激活或禁用的UI元素的自定义功能,可以使用UI元素类的方法,见表6-88。

6-88

978-7-111-54749-5-Chapter06-100.jpg

(2)显示和隐藏功能

以下两个常量,可用于显示和隐藏功能。

1)VISIBILITY-VISIBLE:该系统显示的功能。

2)VISIBILITY-NONE:该系统隐藏的功能。

要显示或隐藏标准ALV功能的UI元素,可以使用类CL_SALV_WD_FUNCTION_STD中的方法。

要显示或隐藏UI元素的自定义功能,可以使用类CL_SALV_WD_FUNCTION中的方法见表6-89。

6-89

978-7-111-54749-5-Chapter06-101.jpg

(3)显示、隐藏和禁用的工具栏

为了控制整个工具栏的激活状态或可见性,使用的接口类IF_SALV_WD_FUNCTION_ SETTINGS(实现类CL_SALV_WD_CONFIG_TABLE)的方法,见表6-90。

6-90

978-7-111-54749-5-Chapter06-102.jpg

6.5.1.7事件处理函数

(1)标准ALV功能事件

使用标准ALV功能,只能在两个特定的时间点处理:当用户执行一个功能处理或当用户完成一个功能处理。用户选择没有收到任何有关的标准ALV功能。

可以使用下面的事件来处理标准的ALV功能:

● ON_STD_FUNCTION_BEFO。

● ON_STD_FUNCTION_AFTE。

(2)自定义的功能事件

使用自定义功能,可以决定哪些功能是用户选择的。

事件ON_FUNCTION是可用来处理自定义的功能。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈