Web Dynprod的字段搜索帮助可以通过两种方式创建,首先当创建 Context-Node-Attribute/Context-Attribute 时可以为 Attribute 设置所需的 Input Help Mode;其次当使用Select_Options 时,通过设置 i_value_help_type 时选择 if_wd_value_help_handler 的某种Attributes的方式达到搜索帮助创建的目的。
- 设置Context-Node-Attribute/Context-Attribute的Input Help Mode
- 设置Select_Options的i_value_help_type
两种方式下的搜索帮助详细内容如上述所示,本文仅将OVS的两种方式展开表述,其他大多方式相对比较简便。当然 Freely Programmed 除外,自由度比较大,可以创建一些比较“炫酷”的搜索帮助,比如可以实现多个Tabstrips的搜索帮助。
- Context-Node-Attribute/Context-Attribute
- 双击 Object Name 在已使用的组件中添加新的组件 WDR_OVS,并为其命名
- 通过设置 Input Help Mode 的值为 Object Value Selector 的方式设置 OVS Component Usage需要引用OVS组件(上述的 WDR_OVS 所命的名字)。
- 接下来就是要对搜索帮助的实现,创建一个 “1 Event Handler” 类型的 Method(可以在Componentcontroller 或视图内创建,要记得在 Properties 中将该组件新建出来哦!不然在Method 的 Event 中是引用不到的)。
- 创建出Event→OVS的Method后,系统会自动带出一些代码的框架。系统自动带出的入参是 ovs_callback_object REF TO if_wd_ovs。搜索帮助的实现分为四个阶段,即 ovs_callback_object→phase_indicator
属性 说明 初始值 co_phase_0 Set Configuration(设置配置) 0 co_phase_1 Preassign Entry Values(预先指定条目的值) 1 co_phase_2 Fill Value List(填充值列表) 2 co_phase_3 Value Return(值返回) 3 - 自动创建出的DATA具体含义,随后便可以通过相应的数据类型对代码进行修改
Data Type 含义 ls_search_input lty_stru_input(内容自定义) 输入条件 lt_search_list lty_stru_list(内容自定义) 表格内容 ls_text wdr_name_value 输入条件的标签文本(ls) lt_label_texts wdr_name_value_list 输入条件的标签文本(list) lt_column_texts wdr_name_value_list 表格列头文本 lv_window_title string 窗口名 lv_table_header string 表格名
- Select_Options——OVS
- Select_Options 的 OVS 是通过 Select_Option 初始化时添加元素设置 i_value_help_type = if_wd_value_help_handler=>co_prefix_ovs 的方式实现的。
- 接下来要进行 OVS 代码的实现,在 Properties 中引用已创建的 Select_Options 组件,引用方式与上述 OVS 组件的引用方式相同。在 Methods 中创建 Method Type 为 “1 Event Handler” 的 Method ,Event 引用 Select_Options 组件的 ON_OVS 。这样OVS方法就创建好啦。
- Select_Options OVS 的实现与上一种方式OVS实现的方式不同点在于创建 Event Handler 后系统自动带出的入参。Select_Options 自动带出的入参是 if_wd_select_options=>t_ovs_data 类型的 i_ovs_data ,所以在点搜索帮助的时候就需要一个元素判断的过程啦。
判断完具体是要实现 哪个元素 的OVS后,剩下的OVS具体实现的代码就与上述方式相同了,不再赘述。