如何给字段增加搜索帮助
2016-04-22 17:14
501 查看
这个问题只需要重定义字段的V方法就行。如果可选的值比较少,想换成下拉框的效果,可以在P方法里面这样写。
回到正题,V方法的模板见下面。
这个是标准的把SAP的搜索帮助搬到UI上面。系统标准UI组件一般不用担心,SAP已经把这一步做好。
对于自建的组件,如果没有建搜索帮助或者其他什么原因,还有更简单粗暴的办法,直接抓数据,如下面的示例。
METHOD get_p_<字段名>. CASE iv_property. WHEN if_bsp_wd_model_setter_getter=>fp_fieldtype. rv_value = cl_bsp_dlc_view_descriptor=>field_type_picklist. ENDCASE. ENDMETHOD.
回到正题,V方法的模板见下面。
METHOD get_v_<字段名>. DATA:lv_str_index TYPE string, lv_fname_prefix TYPE string, lv_idx_string TYPE string. DATA: lt_inmap TYPE if_bsp_wd_valuehelp_f4descr=>gtype_param_mapping_tab, ls_map LIKE LINE OF lt_inmap, <span style="white-space:pre"> </span>lt_outmap TYPE if_bsp_wd_valuehelp_f4descr=>gtype_param_mapping_tab . * determine prefix in case the F4 is called from a table view IF iv_index IS INITIAL. lv_fname_prefix = 'STRUCT'. "#EC NOTEXT ELSE. lv_idx_string = iv_index. CONDENSE lv_idx_string NO-GAPS. CONCATENATE 'TABLE[' lv_idx_string ']' INTO lv_fname_prefix. "#EC NOTEXT ENDIF. CONCATENATE lv_fname_prefix '<span style="font-family: Arial, Helvetica, sans-serif;"><字段名></span>' INTO ls_map-context_attr SEPARATED BY '.'. "#EC NOTEXT ls_map-f4_attr = '<span style="font-family: Arial, Helvetica, sans-serif;"><另一字段名></span>'."实现页面字段取值联动 APPEND ls_map TO:lt_outmap. CREATE OBJECT rv_valuehelp_descriptor TYPE cl_bsp_wd_valuehelp_f4descr EXPORTING iv_help_id = '<搜索帮助名>' iv_help_id_kind = if_bsp_wd_valuehelp_f4descr=>help_id_kind_comp iv_input_mapping = lt_inmap iv_output_mapping = lt_outmap iv_object_ref = me iv_trigger_submit = 'X'. ENDMETHOD.
这个是标准的把SAP的搜索帮助搬到UI上面。系统标准UI组件一般不用担心,SAP已经把这一步做好。
对于自建的组件,如果没有建搜索帮助或者其他什么原因,还有更简单粗暴的办法,直接抓数据,如下面的示例。
METHOD get_v_<字段名>. DATA lt_ddlb TYPE bsp_wd_dropdown_table. DATA ls_ddlb LIKE LINE OF lt_ddlb. DATA lt_xxx TYPE TABLE OF xxx. DATA ls_xxx LIKE LINE OF lt_xxx. DATA lr_ddlb TYPE REF TO cl_crm_uiu_ddlb. CREATE OBJECT lr_ddlb EXPORTING iv_source_type = 'T'. ls_ddlb-key = ''. ls_ddlb-value = ''. APPEND ls_ddlb TO lt_ddlb."空行可选 SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_xxx FROM xxx WHERE aaa = bbb. IF lt_xxx[] IS NOT INITIAL. SORT lt_xxx BY aaa. ENDIF. LOOP AT lt_xxx INTO ls_xxx. ls_ddlb-key = ls_xxx-ccc. ls_ddlb-value = ls_xxx-ddd. APPEND ls_ddlb TO lt_ddlb. ENDLOOP. IF sy-subrc = 0. lr_ddlb->set_selection_table( it_selection_table = lt_ddlb ). ENDIF. rv_valuehelp_descriptor = lr_ddlb. ENDMETHOD.
相关文章推荐
- GUI - Web前端开发框架
- 评价ui设计作品好坏的八个标准(界面/交互设计研究)
- DB2获取当前用户表、字段、索引等详细信息
- MySQL字段自增自减的SQL语句示例介绍
- SQL SERVER使用REPLACE将某一列字段中的某个值替换为其他的值
- access的备注字段限制64K
- 一句sql更新两个表并可更新对应的字段值具体实现
- 为Yahoo! UI Extensions Grid增加内置的可编辑器
- Cocos2d-x UI开发之文本类使用实例
- vbs生成ACCESS数据里所有表的字段
- 在CRUD操作中与业务无关的SQL字段赋值的方法
- 谈谈对jquery ui tabs 的理解
- 在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
- UI Events 用户界面事件
- jquery UI Datepicker时间控件的使用方法(基础版)
- Hallo.js基于jQuery UI所见即所得的Web编辑器
- 基于jQuery UI CSS Framework开发Widget的经验
- jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
- jQuery UI设置固定日期选择特效代码分享
- Jquery ajax 同步阻塞引起的UI线程阻塞问题