0
点赞
收藏
分享

微信扫一扫

Web Dynpro —— Select_Options

寒羽鹿 2022-04-01 阅读 44

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
    1. 双击Object Name在已使用的组件中添加新的组件*** WDR_OVS***,并为其命名
      在这里插入图片描述

    2. 通过设置Input Help Mode的值为Object Value Selector的方式设置OVS Component Usage需要引用OVS组件(上述的***WDR_OVS***所命的名字)。
      在这里插入图片描述

    3. 接下来就是要对搜索帮助的实现,创建一个“1 Event Handler”类型的Method(可以在Componentcontroller或视图内创建,要记得在Properties中将该组件新建出来哦!不然在Method的Event中是引用不到的)。
      在这里插入图片描述
      在这里插入图片描述

    4. 创建出Event→OVS的Method后,系统会自动带出一些代码的框架。系统自动带出的入参是 ovs_callback_object REF TO if_wd_ovs。搜索帮助的实现分为四个阶段,即 ovs_callback_object→phase_indicator 在这里插入图片描述

属性说明初始值
co_phase_0Set Configuration(设置配置)0
co_phase_1Preassign Entry Values(预先指定条目的值)1
co_phase_2Fill Value List(填充值列表)2
co_phase_3Value Return(值返回)3
5. 自动创建出的DATA具体含义,随后便可以通过相应的数据类型对代码进行修改
DataType含义
ls_search_inputlty_stru_input(内容自定义)输入条件
lt_search_listlty_stru_list(内容自定义)表格内容
ls_textwdr_name_value输入条件的标签文本(ls)
lt_label_textswdr_name_value_list输入条件的标签文本(list)
lt_column_textswdr_name_value_list表格列头文本
lv_window_titlestring窗口名
lv_table_headerstring表格名

  • Select_Options——OVS
    1. Select_Options的OVS是通过Select_Option初始化时添加元素设置***i_value_help_type = if_wd_value_help_handler=>co_prefix_ovs***的方式实现的。
RT_RANGE_TABLE = WD_THIS->M_HANDLER->CREATE_RANGE_TABLE( I_TYPENAME = 'ZDOC_PXH' )."类型"
WD_THIS->M_HANDLER->ADD_SELECTION_FIELD(
  I_ID = 'S_PXH'
  I_DESCRIPTION = '文档号'
  I_OBLIGATORY = ABAP_FALSE
  IT_RESULT = RT_RANGE_TABLE
  I_TOOLTIP = LV_TOOLTIP
  I_VALUE_HELP_TYPE = IF_WD_VALUE_HELP_HANDLER=>CO_PREFIX_OVS
).
1. 接下来要进行OVS代码的实现,在Properties中引用已创建的Select_Options组件,引用方式与上述OVS组件的引用方式相同。在Methods中创建Method Type为“1 Event Handler”Method,Event 引用Select_Options组件的ON_OVS。这样OVS方法就创建好啦。
2. Select_Options OVS 的实现与上一种方式OVS实现的方式不同点在于创建Event Handler后系统自动带出的入参。Select_Options自动带出的入参是 ***if_wd_select_options=>t_ovs_data 类型的 i_ovs_data*** ,所以在点搜索帮助的时候就需要一个元素判断的过程啦。
CASE i_ovs_data-m_selection_field_id.
  WHEN 'S_PXH'.  "元素名称"
  WHEN ''.
  WHEN ''.
ENDCASE.  

    判断完具体是要实现 **哪个元素** 的OVS后,剩下的OVS具体实现的代码就与上述方式相同了,不再赘述。
举报

相关推荐

0 条评论