F4输入帮助的方法之一是OVS值帮助(对象值选择Object Value Selection)。OVS值帮助是在系统端的Web Dynpro组件中实现的。
当 OVS值帮助已定义一个Context属性后,它在绑定到这个属性的所有输入框时是可用的。在运行时,当用户按下〈F4〉键或单击值帮助图标时,OVS组件自动实例化。同时,该对话框会自动创建在屏幕上。
1. 系统组件WDR_OVS
在视图上组件WDR_OVS提供了搜索结果可以被显示为一个表的功能。该组件还包含一个选择视图,可以用来限制搜索条件。
视图中的输入字段以及要显示的表的结构和内容都要在应用程序中定义。OVS组件因此在一个合适的时间需要使用组件的回调。
2. 事件OVS及参数OVS_CALLBACK_OBJECT
在OVS组件的接口控制器中使用组件的回调函数通过OVS事件实现。该事件一前一后被自动触发4次。它传递类型为IF_WD_OVS的参数OVS_CALLBACK_OBJECT到相应应用程序组件的事件处理程序中。事件参数实例属性PHASE_INDICATOR确定触发阶段。第一次触发该事件时的属性值为CO_PHASE_0,当它被触发第二次时值为CO_PHASE_1,以此类推下面详细描述4个时间点,如图7-48所示。
图 7-48
(1)PHASE_INDICATOR = IF_WD_OVS => CO_PHASE_0
此时,可以配置OVS组件。例如,窗体标题、搜索帮助列表标题,可以定义输出表的列标题。此外,还可以设置在事件表中是否应选择一行或多个行。为实现这一目的,事件参数OVS_CALLBACK_OBJECT提供了方法SET_CONFIGURATION,它可以在单独的时间点上使用,也可以在以后的某个时间点上调用此方法触发一个错误消息。
该阶段又称为配置阶段。此处,用户可以定义 OVS 组件在选择屏幕对话框或输入帮助列表中显示的文本,还可以定义组成选择对话框的列的数量。要将信息导出至 OVS 组件,需调用回调对象的方法set_configuration()。
注:如果OVS组件不显示选择对话框,则可以忽略阶段 0 的调用方法set_configuration( )。
如果据此输入相关输入字段,则无法从 ABAP 字典获取用户组件不提供的标签文本。
(2)PHASE_INDICATOR = IF_WD_OVS => CO_PHASE_1
用户可以定义选择对话框中要显示的输入字段。可通过导出包含这些字段的任意结构来完成该操作。通过将结构字段设置为相应值,可指定选择字段的默认值。
要将信息导出至 OVS 组件,需调用回调对象的方法 set_input_structure(),然后可呈现选择屏幕。
注:可以忽略阶段 1 的调用方法 set_input_structure( )。这种情况下,将不显示选择屏幕(直接显示列表对象)。如果用户已经在用户组件的输入字段中输入了值,则在显示输入帮助之前,不需要再次在 OVS 选择对话框上显示相同的值。(www.daowen.com)
(3)PHASE_INDICATOR = IF_WD_OVS => CO_PHASE_2
在此阶段,在用户按下OVS选择对话框(如果已处理)的按钮后,将开始处理该阶段。在此阶段,用户必须收集OVS组件稍后将显示为输入帮助列表的数据。然而,要收集这些信息,用户组件需要了解用户已经在选择对话框的字段中输入的内容。回调对象的query_parameters 参数可提供此信息的引用(数据引用)。
要将值列表导出至OVS 组件,需调用回调对象的方法set_output_table( ),随后显示该值列表。
(4)PHASE_INDICATOR = IF_WD_OVS => CO_PHASE_3
在选择值列表的值后,必须将该选择传输回用户组件。因此,需要第四次触发OVS 事件。数据引用变量selection 是回调对象OVS_CALLBACK_OBJECT的参数,可提供用户选择的引用。在用户组件事件处理器方法SET_CONFIGURATION的相关编码段中,必须将这些值写回至Context。选定数据显示为用户组件视图的输入字段值。
注:OVS具有4个阶段,且每个阶段只调用一次。
可使用下列属性识别不同的阶段:OVS_CALLBACK_OBJECT-> PHASE_INDICATOR。
3. 绑定值到一个Context属性
要绑定一个OVS帮助的值到Context属性,需执行以下步骤:
1)组件WDR_OVS 的组件用法必须由用户组件声明。
2)OVS 界面控制器的用法必须在用户组件的控制器中声明,如组件控制器或显示视图控制器。
3)必须为相关的属性选择输入帮助类型为对象值选择器(Object Value Selection)。
4)必须创建并实施 OVS 组件用法的事件OVS 处理器方法。
4. OVS值帮助Context更改日志
当用户使用OVS值帮助时,仍然可以使用OVS值帮助Context更改日志的功能。
注:在阶段PHASE_INDICATOR IF_WD_OVS => CO_PHASE_3中,所选择的数据必须显式输入更改日志的表中,所以这仅在需要的地方会自动为用户输入。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。