理论教育 互动处理优化:可编辑ALV修改功能

互动处理优化:可编辑ALV修改功能

时间:2023-05-31 理论教育 版权反馈
【摘要】:用户不能再影响用于ALV输出的颜色。表 6-966.5.3.2 添加和删除行可以在工具栏上为用户提供按钮,在ALV输出不同的地方添加或删除数据记录。从而自动创建一个空的页,输入就绪行在ALV输出结束的地方。

互动处理优化:可编辑ALV修改功能

可以使用ALV输出的列显示UI元素,用户可以用它来改变显示的数据。

用户还可以在特定的位置插入行,把它们添加到ALV输出的底部,并将其删除。

这些操作之前,ALV输出必须停用写保护。

还必须定义时间,在该时间系统会检查更改过的数据是否是正确的。

6.5.3.1写保护及激活

可以在ALV输出中显示UI元素,可以改变ALV输出中的数据。不过,也有不同的方法可以屏蔽用户在这些UI元素上改变数据。可以进行以下设置:

● 控制ALV输出的写保护。

● 激活和取消激活ALV输出。

● 禁用单独的UI元素。

(1)控制ALV输出的写保护

默认情况下,ALV输出是写保护的,要允许用户更改数据,则必须先删除该写保护。写保护有以下影响:

● UI元素(在单元格中,而不是在工具栏中),允许要改变的数据不能被使用。

● 如果ALV输出被写保护,在工具栏上的标准ALV功能(如插入、添加、删除行和检

查数据)被隐藏。

注:如果用户删除ALV输出的写保护,则系统为ALV输出使用指定的颜色。用户不能再影响用于ALV输出的颜色。

要打开或关闭写保护,可以使用接口类IF_SALV_WD_TABLE_SETTINGS(实现类CL_SALV_WD_CONFIG_TABLE)的方法,见表6-95。

6-95

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

(2)激活和取消激活ALV输出

默认情况下,ALV输出被激活。在ALV输出的所有交互的UI元素,在工具栏和表中的部分均可操作。

要启动或关闭ALV输出,使用接口类IF_SALV_WD_TABLE_SETTINGS(实现类CL_SALV_WD_CONFIG_TABLE)的方法,见表6-96。

6-96

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

6.5.3.2 添加和删除行

可以在工具栏上为用户提供按钮,在ALV输出不同的地方添加或删除数据记录。提供以下功能:

● 插入行。如果用户没有选择行,则创建新行在第一行。否则,它是建立在选定的一行或多行位置。

● 追加行。一个新行追加到ALV输出底部。

● 删除行。选定的行会被删除。

用户可以插入或删除的行的数目取决于它已经选择了多少行。可以使用选择类型来定义用户可以一次性选择多少行。

注:如果已删除写保护的ALV输出,则这些按钮是唯一可见的。

如果没有选择No Selection Possible,则用户不可以选择任何行。因此,用于插入和删除行的按钮被隐藏。

(1)事件处理

事件ON_DATA_CHECK包含插入或删除的行索引的参数。

(2)整页追加输入就绪行

用户可以切换SAP列表查看器(ALV)到海量数据的模式。从而自动创建一个空的页,输入就绪行在ALV输出结束的地方。用户不必单独插入每一个新的行,但可以在ALV输出结束的地方填充任意数目的行。

ALV输出切换海量数据的模式,使用接口类IF_SALV_WD_TABLE_SETTINGS(实现类CL_SALV_WD_CONFIG_TABLE)的方法,见表6-97。

6-97

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

6.5.3.3 更改单元格的内容

用户可以使用下面的UI元素,直接改变在ALV输出数据:

● 输入框(InputField)。

复选框(CheckBox)。(www.daowen.com)

● 切换按钮(Toggle button)。

● 三态复选框(TriStateCheckBox)。

● 下拉列表框(DropDownByKey)。

注:上面列出的交叉引用是指常见的Web Dynpro对象,不是指定的类名,而是ALV配置模型。

可以使用下面的类名,见表6-98。

6-98

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

注:用户使用UI元素之前,必须关闭ALV输出的写保护,还必须确保ALV输出被激活。

6.5.3.4指定检查时间 在可编辑的ALV中,用户可以更改数据,添加或删除行。这些变化最初只存储在ALV组件的Context中。在预定义的时间内,系统的数据从ALV组件Context传输到应用程序的Context中,并检查为正确的数据类型的数据。这确保了后续行动被应用到最新的数据。

例如,当用户单击工具栏中的“设置”按钮使用ALV服务时,系统会自动检查数据。

可以指定其他时间用于ALV输出中的当前数据与应用程序同步:

● 当用户按下〈Enter〉键或触发系统的动作(DATA_CHECK_ON_CELL_EVENT)。

使用此设置时,应确保在最小的数据更改的状况下,避免由于频繁的检查对系统性能有负面影响。

● 用户选择检查(DATA_CHECK_ON_CHECK_EVENT)。默认情况下,在关闭写保护

的ALV输出中显示这个按钮。该设置是有用的,如果用户一个一个处理多个数据记

录时,不会由于频繁地检查对系统性能有负面的影响。

● 当触发系统中的检查。

(1)由用户指定检查时间

要指定用户动作触发数据检查的时间,使用接口类IF_SALV_WD_TABLE_SETTINGS(实现类CL_SALV_WD_CONFIG_TABLE)的方法,见表6-99。

6-99

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

(2)事件处理

当数据被检查时会触发事件ON_DATA_CHECK。

6.5.3.5刷新显示

默认情况下,对变化的数据检查后,ALV输出会进行自动刷新。在列表中的数据被更新并且对话框的设置被应用到数据中。

(1)自动刷新

系统自动更新显示,在下列情况下对话框中被应用的设置,用户不能改变这些机制:

● 用户插入行,把它们添加到列表末尾或删除它们。

● 应用程序应用于对数据的更改。

● 用户通过单击“应用”或“确定”按钮将对话框中的设置应用到的数据中。

● 用户排序或者过滤ALV输出。

(2)手动刷新

在用户更改现有的数据记录的情况下,可以影响ALV输出刷新是要么只影响到的数据,要么当前设置的服务施加到更改后的数据。这有两种方法中的每一个都有两个可能的设置:

● SET_REFRESH_ON_DATA_CHANGE:控制刷新,当用户更改的数据证实了这一点,

按〈Enter〉键。

● SET_REFRESH_ON_DATA_CHECK:控制刷新,当用户更改的数据,并选择检查

按钮。

下面的值是可能的:

● REFRESH_AND_APPLY_SERVICES:在列表中的数据被更新的设置对话框中的设置被应用到数据中。

● REFRESH_DATA_ONLY:在列表中的数据被更新。

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

我要反馈