感谢肖总的提示,不然还不知道wda的新select option。。。

使用前提:SE24类:CL_WDR_SELECT_OPTIONS_20

核对了多个版本,ERP系统版本要S4 1701往上,CRM系统7 EHP3及以上,没有怎么管这个,不对也别怪我。。。

SE80,查看SELECT OPTION的组件:WD_SELECT_OPTIONS_20是否存在,如果不存在则不能使用。

1.新建WDA组件ZLYTEST_SELECT,并激活

2.双击WDA添加SELECT OPTION组件和ALV组件。

3。双击COMPONENTCONTROLLER,添加查询结果节点。结构预先定义。

4.双击V_MAIN视图,将ALV组件和SELECT OPTION添加到视图中。布局中添加两个UI element

5.初始化alv和select option对象

METHOD init_alv .DATA: lr_comp_alv    TYPE REF TO if_wd_component_usage,lr_comp_if_alv TYPE REF TO iwci_salv_wd_table.DATA:gt_zcrmt0060 TYPE TABLE OF zcrmt0060,gw_zcrmt0060 LIKE LINE OF gt_zcrmt0060,gv_string    TYPE string.DATA: lr_column_settings TYPE REF TO if_salv_wd_column_settings,lr_column          TYPE REF TO cl_salv_wd_column,lr_column_header   TYPE REF TO cl_salv_wd_column_header.DATA: lt_column TYPE salv_wd_t_column_ref,ls_column TYPE salv_wd_s_column_ref.****DATA: lr_input_field     TYPE REF TO cl_salv_wd_uie_input_field,lr_checkbox        TYPE REF TO cl_salv_wd_uie_checkbox,lr_image           TYPE REF TO cl_salv_wd_uie_image,lr_dropdown_by_key TYPE REF TO cl_salv_wd_uie_dropdown_by_key.DATA lr_column_id TYPE string.
****DATA: lr_field_amnt TYPE REF TO cl_salv_wd_field   .DATA: lv_aggr_rule TYPE REF TO cl_salv_wd_aggr_rule,lr_sort_rule TYPE REF TO cl_salv_wd_sort_rule.lr_comp_alv = wd_this->wd_cpuse_alv( ) .IF lr_comp_alv->has_active_component( ) IS INITIAL.lr_comp_alv->create_component( ).ENDIF.DATA lr_config TYPE REF TO cl_salv_wd_config_table.DATA:lr_func_config TYPE REF TO cl_salv_wd_config_table.lr_comp_if_alv = wd_this->wd_cpifc_alv( ).lr_config      = lr_comp_if_alv->get_model( ).lr_func_config      = lr_comp_if_alv->get_model( ).lr_column_settings ?= lr_config .lt_column = lr_column_settings->get_columns( ).SELECT * INTO TABLE gt_zcrmt0060 FROM zcrmt0060 WHERE sales_org = 'O 50000297' ANDcomponent_name = 'ZHSCRM_DEALER_RET'AND alv            = 'ALV'.SORT gt_zcrmt0060 BY posit ASCENDING.*=========================================================DATA: l_value  TYPE REF TO cl_salv_wd_config_table.l_value = lr_comp_if_alv->get_model( ).l_value->if_salv_wd_table_settings~set_fixed_table_layout( abap_false ).  "使列宽不可自动调节l_value->if_salv_wd_table_settings~set_width( '100%'  ) .                "设置宽度l_value->if_salv_wd_table_settings~set_visible_row_count( '15' ).        "显示的行数l_value->if_salv_wd_table_settings~set_scrollable_col_count( '15' ).l_value->if_salv_wd_table_settings~set_read_only( abap_true ).l_value->if_salv_wd_table_settings~set_display_empty_rows( abap_false ).l_value->if_salv_wd_table_settings~set_selection_mode( cl_wd_table=>e_selection_mode-multi_no_lead ).l_value->if_salv_wd_function_settings~set_enabled( abap_true ) .
*  l_value->if_salv_wd_std_functions~set_display_as_allowed( abap_false ) .
*  l_value->if_salv_wd_std_functions~set_sort_headerclick_allowed( abap_false ) .l_value->if_salv_wd_std_functions~set_edit_check_available( abap_false ) .l_value->if_salv_wd_std_functions~set_edit_insert_row_allowed( abap_false ) .
*  l_value->if_salv_wd_std_functions~set_export_allowed( abap_true ) .
*  l_value->if_salv_wd_std_functions~set_view_list_allowed( abap_false ).l_value->if_salv_wd_std_functions~set_pdf_allowed( abap_false ) .l_value->if_salv_wd_std_functions~set_edit_append_row_allowed( abap_false ) .l_value->if_salv_wd_std_functions~set_edit_delete_row_allowed( abap_false ) .l_value->if_salv_wd_std_functions~set_filter_filterline_allowed( abap_true ).l_value->if_salv_wd_std_functions~set_filter_complex_allowed( abap_true ).
*  l_value->if_salv_wd_std_functions~set_dialog_settings_allowed( abap_true ).DATA: lr_table_settings TYPE REF TO if_salv_wd_table_settings.lr_table_settings ?= l_value.lr_table_settings->set_data_check( '01' ).lr_table_settings->set_read_only( abap_false ).LOOP AT lt_column INTO ls_column.lr_column_id = ls_column-id.lr_column = ls_column-r_column.lr_column->set_resizable( value = 'X' ).lr_column->set_width( value = '100' ).READ TABLE gt_zcrmt0060 INTO gw_zcrmt0060 WITH KEY field = ls_column-id.IF sy-subrc = 0.IF gw_zcrmt0060-visiable = 'X'.lr_column_header = ls_column-r_column->create_header( ).ls_column-r_column->set_position( gw_zcrmt0060-posit ).IF gw_zcrmt0060-text CS 'CRM/'.gv_string = gw_zcrmt0060-text.lr_column_header->set_text( zcl_otr=>get_text( gv_string ) ).ELSE.IF gw_zcrmt0060-text IS NOT INITIAL.gv_string = gw_zcrmt0060-text.lr_column_header->set_text( gv_string ).ENDIF.ENDIF.ELSE.ls_column-r_column->set_position( gw_zcrmt0060-posit ).lr_column = lr_column_settings->get_column( ls_column-id ).lr_column->set_visible( if_wdl_core=>visibility_none ).ENDIF.ELSE.ls_column-r_column->set_position( gw_zcrmt0060-posit ).lr_column = lr_column_settings->get_column( ls_column-id ).lr_column->set_visible( if_wdl_core=>visibility_none ).ENDIF."使用配置表替代原来的case逻辑ENDLOOP.
ENDMETHOD.

View Code

METHOD init_select .DATA lo_cmp_usage TYPE REF TO if_wd_component_usage.DATA lo_interfacecontroller TYPE REF TO iwci_wd_select_options_20."创建selec option组件对象lo_cmp_usage =   wd_this->wd_cpuse_select_option( ).IF lo_cmp_usage->has_active_component( ) IS INITIAL.lo_cmp_usage->create_component( ).ENDIF."取到当前的select option 对象lo_interfacecontroller =   wd_this->wd_cpifc_select_option( )."设置select option全局参数
*  wd_comp_controller->mo_select_option  = lo_interfacecontroller->init_select_options(wd_this->mo_select_option  = lo_interfacecontroller->init_select_options(
*      general_texts =   ls_general_texts             " wdso_general_texts
*      general_visibility = ls_general_visibility        " wdso_general_visibility
*      global_options =   ls_global_options            " wdso_global_options
*      saved_searches = lt_saved_searches              " wdso_tt_value_set
*      personalization = ls_persactual_search = 'C')."初始化select option的字段DATA gt_select_attr               TYPE wdr_so_t_attributes.DATA gw_select_attr               TYPE wdr_so_s_attributes.DATA gt_value_set                 TYPE wdr_context_attr_value_list.DATA gw_value_set                 TYPE wdr_context_attr_value.DATA select_init               TYPE wdr_so_t_values.
*  DATA VAR_DATE_ATTRIBUTES      TYPE WDR_SO_T_OPDEP_VALUESET.
*  DATA RENDER_ONLY_INITIAL_DATA TYPE WDY_BOOLEAN.
*  DATA PROPOSED_ROWS            TYPE WDR_SO_T_VALUES.gw_select_attr-attribute = 'OBJECT_ID'.gw_select_attr-attr_type = 'ID'.gw_select_attr-text = 'OBJECT ID'.gw_select_attr-dataelement = 'CRMT_OBJECT_ID'.gw_select_attr-value_set = gt_value_set[].APPEND gw_select_attr TO gt_select_attr.CLEAR:gw_select_attr.gw_select_attr-attribute = 'PROCESS_TYPE'.gw_select_attr-attr_type = 'ID'.gw_select_attr-text = 'Transaction Type'.gw_select_attr-dataelement = 'CRMT_PROCESS_TYPE_DB'.APPEND gw_select_attr TO gt_select_attr.CLEAR:gw_select_attr.gw_select_attr-attribute = 'PORTAL'.gw_select_attr-attr_type = 'CK'.gw_select_attr-text = 'PORTAL FLAG'.gw_select_attr-dataelement = 'ZE_PORTAL_FLAG'.APPEND gw_select_attr TO gt_select_attr.wd_this->mo_select_option->add_attributes(EXPORTINGattributes               = gt_select_attr
*      initial_data             = initial_data
*      var_date_attributes      = var_date_attributes
*      render_only_initial_data = render_only_initial_data
*    IMPORTING
*      proposed_rows            = proposed_rows
         ).ENDMETHOD.

View Code

将ALV和select option初始化的方法加到WDA视图的WDDOINIT里

6.在WINDOW里绑定视图下面的UI对象和组件

7.将ALV数据对象绑定COMPONENTCONTROLLER结果节点

8.创建application,并测试。结果如下:

9.SELECT OPTION的查询参数处理和结果绑定

METHOD onactionsearch .DATA rt_range                  TYPE wdr_so_t_range_ref.DATA rs_range                  TYPE wdr_so_s_range_ref.DATA max_nr_of_results         TYPE i.DATA max_nr_of_results_is_null TYPE wdy_boolean.DATA select_all                TYPE wdy_boolean.DATA lo_nd_retab TYPE REF TO if_wd_context_node.DATA lt_retab TYPE wd_this->elements_retab.FIELD-SYMBOLS: <fs_object_id> TYPE table,<fs_flag>      TYPE table,<fs_type>      TYPE table.wd_this->mo_select_option->get_input_complete_as_range(IMPORTINGrange_ref                 = rt_rangemax_nr_of_results         = max_nr_of_resultsmax_nr_of_results_is_null = max_nr_of_results_is_nullselect_all                = select_all).LOOP AT rt_range INTO rs_range.CASE rs_range-attribute.WHEN 'OBJECT_ID'.ASSIGN rs_range-range->* TO <fs_object_id>.WHEN 'PORTAL'.ASSIGN rs_range-range->* TO <fs_flag>.WHEN 'PROCESS_TYPE'.ASSIGN rs_range-range->* TO <fs_type>.WHEN OTHERS.ENDCASE.ENDLOOP.SELECT guid object_id posting_date po_number_ship AS po_number_soldretailer zzzmodenoshipto AS ship_to  stat_user AS statINTO CORRESPONDING FIELDS OF TABLE lt_retabFROM zhsb_order_indexWHERE object_id IN <fs_object_id>AND process_type IN <fs_type>.lo_nd_retab = wd_context->get_child_node( name = wd_this->wdctx_retab ).lo_nd_retab->bind_table( new_items = lt_retab set_initial_elements = abap_true ).ENDMETHOD.

转载于:https://www.cnblogs.com/sapSB/p/10062523.html

WDA 新SELECT OPTION相关推荐

  1. javascript select option对象总结

    javascript select option对象总结 一基础理解: var e = document.getElementById("selectId"); e. option ...

  2. HTML select option 详解

    javascript之HTML(select option)详解 一.基础理解: var e = document.getElementById("selectId");e. op ...

  3. SAP Spartacus select option默认选择的实现

    PO的要求:如果select option里只有一行记录,就默认选中它,增加易用性. 实现方式: 从currencies$中取出数据,如果length为1,说明只有一条数据,此时从form中取出控件引 ...

  4. 创建新的option

    创建新的option element.add(new Option('value','date'))https://www.cnblogs.com/duanhuajian/archive/2013/0 ...

  5. div模拟select/option解决兼容性问题及增加可拓展性

    个人博客: http://mcchen.club 想到做这个模拟的原因是之前使用select>option标签的时候发现没有办法操控option的很多样式,比如line-height等,还会由此 ...

  6. jQuery: 操作select option方法集合

    每一次操作select的时候,总是要谷歌一下资料,真是太不爽了, 在这里记录一下. 公共select代码 <select id="sel"><option val ...

  7. Python中使用xpath获取select option的每一行的text和value

    原数据内容如下: <SELECT id="hsCode"><option value ="null">请选择</option> ...

  8. IE8 下 select option 内容过长 , 展开时信息显示不全问题解决办法

    为什么80%的码农都做不了架构师?>>>    /*** IE8 下 select option 内容过长 , 展开时信息显示不全 , 简单折衷的方式就是给 option 加上 ti ...

  9. select option 不写 value 属性 产生的浏览器差异

    今天QA报分页 单页条数 改变功能在IE8下无法使用. 查看代码,发现select 的option 都没写value 属性 原来的代码: <select> <option>10 ...

最新文章

  1. Hibernate 关联映射 之 多对多 关联(二) 之拆分
  2. linux和android调试概要
  3. 中年危机来了?35岁是分水岭?
  4. 史上最全换档讲解手动档汽车的换挡技巧
  5. linux 统计当前目录下文件或者文件夹的数量
  6. Redis总结之发布订阅
  7. C++之预处理命令以及宏定义
  8. poj1274 匈牙利算法 二分图最大匹配
  9. 不定期总结程序员常见误区
  10. vbs计算机重启代码,vbs关机代码怎么使用
  11. 基于JSP+Servlet校园二手交易平台
  12. 日志报错:WARNING: An illegal reflective access operation has occurred
  13. 阿里pc服务占据内存20%及云壳卸载
  14. 【深度学习小知识】ROI到ROI pooling 再到ROI Align
  15. 今日知识资源干货分享
  16. 自控力读书笔记:第二章 意志力的本能:人生来就能地址奶酪蛋糕的诱惑
  17. cv2.warpAffine 参数详解
  18. 第二天 02-在VMware 安装安卓虚拟机
  19. 详解JQuery动画
  20. ckeditor富文本编辑器的使用和图片上传

热门文章

  1. HMI-37-【节能模式】中心仪表实现
  2. edu平台Web实训CSS3背景样式
  3. CBIR--Survey.C/GPU优化.Sys搭建
  4. 天钰原装JD6606SP5芯片,多端口控制(MPC)应用, 过电压保护
  5. Android 自定义View 会移动的时钟
  6. IEEE账户名字搞错了怎么办——IEEE账户改名
  7. jQuery效果之滑动退出滑动显示 slideUp、slideDown
  8. c语言reverse怎么起作用,reverse的用法
  9. 中型项目(1)——电信用户购买套餐分析预测(基于python)
  10. Linux下五笔输入法的安装