并非在所有ALV输出中用户的操作会引起数据的变化。例如下面的操作,不会导致数据的变化:
● 改变行的选择(选择行)。
● 选择超链接、按钮及开关按钮。
程序员可以进行各种设置,以控制或处理这种交互。
6.5.2.1选择行和列
可以决定用户是否可以一次性选择多个行或列。
● 能够选择列。使用选择的状态,程序员可以指定用户在同一时间是否可以选择多列。
● 能够选择行。使用选择类型,程序员可以指定用户在同一时间是否可以选择多行以及是否存在头选择(Lead Selection)。
注:用户还可以在写保护的ALV输出中选择行。如果关闭ALV输出的写保护,则无论选择类型用户都不可以选择任何行。
也可以屏蔽用户选择特定的单元格或所有单元格。
(1)设置选择状态
程序员可以分别为每列指定选择状态。可以使用下面的选择状态:
● 未选择:任何现有的选择将被删除。
● 选择:该列被选中。
● 不可选:用户不可以选择该列。
要解决列选择,可以使用类CL_SALV_WD_COLUMN的方法,见表6-91。
表 6-91
2)设置选择类型
可以使用下面的选择类型
● 自动:从Context节点设置。
● 无选择(NONE):在行的最右端没有任何用于选择行的按钮显示。
● 单选择(SINGLE):在行的最右端显示用于选择行的按钮。用户只能选择单列。该行
被显示为头选择。如果用户选择了另一行,则头选择也被改变。
● 无头选择的单选择(SINGLE_NO_LEAD):在行的最右端显示用于选择行的按钮。用户
只能选择一个单列。如果用户选择了另一行,则选择将被改变。ALV输出不含头选择。
● 多行(MULTI):在行的最右端显示用于选择行的按钮。用户可以通过按住〈Ctrl〉键
的同时选择多行。选择的第一行为头选择。
● 不含头选择的多行(MULTI_NO_LEAD):在行的最右端显示用于选择行的按钮。用
户可以通过按住〈Ctrl〉键的同时选择多行。ALV输出不含头选择。
注:程序的Context节点来指定有多少个数据记录,可以选择使用Selection属性。
如果Selection属性值1:1,则必须选择一个条目。如果该值是0:n,它是可以不选择任何条目,或根据需要选择多条。
使用选择类型时,用户不能选择Context节点中定义的数字。如果尝试做到这一点,运行时发生错误,则应用程序终止。(www.daowen.com)
例如:如果指定了1:1,就不能使用选择类型MULTI和MULTI_NO_LEAD的。
要定义选择类型,使用接口类IF_SALV_WD_TABLE_SETTINGS(实现类CL_SALV_ WD_CONFIG_TABLE)的方法,见表6-92。
表 6-92
(3)事件处理
默认情况下,在列表区域中有两种不同的动作响应用户选择的事件:
● ON_LEAD_SELECTION:该动作改变用户的头选择。如果用户改变选择,则没有事
件被触发。
● ON_SELECT:该动作用于改变选择或头选择。
使用方法IF_SALV_WD_TABLE_SETTINGS~SET_ON_SELECT_ENABLED,系统切换到事件ON_SELECT。
注:如果将系统切换到ON_SELECT,即停用ON_LEAD_SELECTION事件的事件处理程序。
(4)屏蔽选择
可以屏蔽用户选择ALV输出行。
注:与NONE选择类型相反,按钮不隐藏,它们只停用。这能够阻止用户选择行。
程序员可以决定是否要屏蔽所有ALV输出行,或者只是屏蔽特定行的选择。
要做到这一点,使用接口类IF_SALV_WD_TABLE_SETTINGS(实现类CL_SALV_WD_ CONFIG_TABLE)的方法,见表6-93。
表 6-93
6.5.2.2 使用超链接、按钮和切换按钮
在ALV输出的单元格中可以使用UI元素,允许用户来触发某些动作。下面的UI元素并不会自动导致数据的变化:
● 超链接LINK_TO_ACTION(UI元素LinkToAction)。
● 超链接LINK_TO_URL(UI元素LinkToURL)。
● 按钮(UI元素Button)。
● 切换按钮(UI元素Toggle Button)。
注:以上所列的交叉引用,引用一般可用的Web Dynpro对象。指定的类名,是使用表6-94中列出的ALV配置模型的类名。
表 6-94
可以使用事件ON_CLICK来处理以下UI元素的用户动作
● 超链接LINK_TO_ACTION。
● 按钮。
● 切换按钮。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。