可以使用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
(2)激活和取消激活ALV输出
默认情况下,ALV输出被激活。在ALV输出的所有交互的UI元素,在工具栏和表中的部分均可操作。
要启动或关闭ALV输出,使用接口类IF_SALV_WD_TABLE_SETTINGS(实现类CL_SALV_WD_CONFIG_TABLE)的方法,见表6-96。
表 6-96
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
6.5.3.3 更改单元格的内容
用户可以使用下面的UI元素,直接改变在ALV输出数据:
● 输入框(InputField)。
● 复选框(CheckBox)。(www.daowen.com)
● 切换按钮(Toggle button)。
● 三态复选框(TriStateCheckBox)。
● 下拉列表框(DropDownByKey)。
注:上面列出的交叉引用是指常见的Web Dynpro对象,不是指定的类名,而是ALV配置模型。
可以使用下面的类名,见表6-98。
表 6-98
注:用户使用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
(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:在列表中的数据被更新。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。