WD_SELECT_OPTIONS_20新加了很多好玩的东西,尤其是里面的保存搜索条件和使用保存的搜索条件。因为这个比较想WEB UI,所以兴趣比较高一点,WEB UI里是把参数拼成XML存起来的,我这里就不使用这种方法了,看起来就很烦。。。

1.接前一篇,修改SELECT OPTIONS的初始化方法,使用save search和初始化save search下拉。

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.
DATA:visiable TYPE wdr_so_s_general_visibility.
DATA gt_search TYPE wdr_context_attr_value_list.
DATA gw_search TYPE wdr_context_attr_value.
DATA saved_searches_admin TYPE wdr_so_t_searches. SELECT nameid AS value nameid AS text INTO TABLE gt_search FROM zdyndata
WHERE parname = 'ZLYTEST_SELECT' AND usnam = sy-uname. APPEND INITIAL LINE TO gt_search. "创建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全局参数
visiable-show_saved_searches = 'X'.
visiable-location_saved_searches = ''.
visiable-show_saving_searches = 'X'.
* visiable-SHOW_HIDE_SEARCH_FIELDS =
* visiable-SHOW_MAX_NR_ROWS
visiable-show_button_search = 'X'.
visiable-show_button_clear = 'X'.
visiable-show_button_reset = 'X'.
* visiable-show_label = 'X'.
* 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 = visiable " wdso_general_visibility
* global_options = ls_global_options " wdso_global_options
saved_searches = gt_search " wdso_tt_value_set
* personalization = ls_pers
actual_search = ''
). "初始化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.
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(
EXPORTING
attributes = 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
). *SET_SEARCH( ).
ENDMETHOD.

这里面把新组件标准的搜索清空重置放出来了,但是我没有实现。。。因为可以调我之前写好的,也可以复制进去,这里就不写了。

2.参数表如下:用来存储用户存储的search data

3.实例化SAVE SEARCH方法:

在视图中添加SAVE_SEARCH方法

事件中绑定到SELECT OPTIONS的SAVE SEARCH事件。

METHOD save_search .
DATA include_unvaluated_rows TYPE wdy_boolean.
DATA gt_values TYPE wdr_so_t_values.
DATA gw_values TYPE wdr_so_s_values.
DATA max_nr_of_results TYPE i.
DATA max_nr_of_results_is_null TYPE wdy_boolean.
DATA select_all TYPE wdy_boolean.
TYPES:BEGIN OF ty_id,
parname TYPE wdy_component_name,
usnam TYPE usnam,
nameid TYPE char20,
END OF ty_id.
DATA:gw_id TYPE ty_id.
DATA:gw_log TYPE zdyndata.
DATA:gw_tab TYPE zly_so_s_values,
gt_tab TYPE TABLE OF zly_so_s_values.
wd_this->mo_select_option->get_input_complete(
EXPORTING
include_unvaluated_rows = abap_false
IMPORTING
values = gt_values
max_nr_of_results = max_nr_of_results
max_nr_of_results_is_null = max_nr_of_results_is_null
select_all = select_all
).
gw_id-parname = 'ZLYTEST_SELECT'.
gw_id-usnam = sy-uname.
gw_id-nameid = search_name.
MOVE-CORRESPONDING gw_id TO gw_log.
LOOP AT gt_values INTO gw_values.
MOVE-CORRESPONDING gw_values TO gw_tab.
APPEND gw_tab TO gt_tab.
ENDLOOP.
EXPORT test = gt_tab[] TO DATABASE zdyndata(FL) FROM gw_log ID gw_id.
CHECK = .
ENDMETHOD.

4.实例化load search方法:

在视图中添加LOAD_SEARCH方法:

METHOD load_search .
TYPES:BEGIN OF ty_id,
parname TYPE wdy_component_name,
usnam TYPE usnam,
nameid TYPE char20,
END OF ty_id.
DATA gt_values TYPE wdr_so_t_values.
DATA gw_values TYPE wdr_so_s_values.
DATA:gw_id TYPE ty_id.
DATA:gw_log TYPE zdyndata.
DATA:gw_tab TYPE zly_so_s_values,
gt_tab TYPE TABLE OF zly_so_s_values.
SELECT SINGLE * INTO gw_log FROM zdyndata WHERE parname = 'ZLYTEST_SELECT'
AND usnam = sy-uname AND nameid = search_id.
IF sy-subrc = .
MOVE-CORRESPONDING gw_log TO gw_id.
IMPORT test = gt_tab[] FROM DATABASE zdyndata(fl) ID gw_id IGNORING CONVERSION ERRORS .
IF sy-subrc = .
LOOP AT gt_tab INTO gw_tab.
MOVE-CORRESPONDING gw_tab TO gw_values.
APPEND gw_values TO gt_values.
ENDLOOP. wd_this->mo_select_option->reset(
EXPORTING
initial_data = gt_values
render_only_initial_data = 'X'
* IMPORTING
* proposed_rows = proposed_rows
).
ENDIF.
ENDIF.
ENDMETHOD.

应该还少了一部分,SAVE SEARCH的时候更新search的下拉和默认上当前的搜索。。。后面再补吧^_^

接前一篇:new select option保存搜索条件的更多相关文章

  1. Django自定义分页并保存搜索条件

    Django自定义分页并保存搜索条件 1.自定义分页组件pagination.py import copy class Pagination: def __init__(self, current_p ...

  2. post表单翻页保存搜索条件

    问题:搜索条件下的数据,进行翻页行为后,搜索条件丢失 1.搜索表单 2.翻页 解决:既然点击页面跳转的a标签使用的方法是GET,而点击“搜索”按钮使用的方法是POST,那么可以让点击a标签实际上就是提 ...

  3. JQuery 对 Select option 的操作---转载

    <select id="selectID" > <option value="1">1</option> <optio ...

  4. HTML-DOM常用对象的用法(select/option/form/table)

    HTML DOM 常用对象: 它对常用HTML元素操作的简化. Select对象 它代表页面上的一个select元素,常用属性有: select.value ——当前选中项的value ,没有valu ...

  5. jquery获得select option的值 和对select option的操作

    jQuery获取Select元素,并选择的Text和Value: 1. $("#select_id").change(function(){//code...});   //为Se ...

  6. jq最新前三篇文章高亮显示

    /*---------最新前三篇文章高亮显示-------------*/ function latest(){ var color_arr=new Array( "blue", ...

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

    IE8 下 select option 内容过长 , 展开时信息显示不全 , 简单折衷的方式就是给 option 加上 title 属性 , 但是又不想一个个的修改,怎么办呢,代码如下 : //sel ...

  8. jquery获得select option的值 和对select option的操作【转藏】

    获取Select : 获取select 选中的 text : $("#ddlRegType").find("option:selected").text(); ...

  9. [c#]asp.net开发微信公众平台(7)前6篇的整体框架demo源码

    这里给出的demo是具备整体框架的微信公众平台源码, 所谓demo就是拿过去就可以直接演示使用的东西,  当然不会具备非常详细的具体到业务层面.数据层面的东西, 每个人都可以在此基础上自由发挥,  只 ...

随机推荐

  1. mysql_study_3

    代码: CREATE DATABASE test_01; CREATE DATABASE mysql_shiyan; use mysql_shiyan; CREATE TABLE department ...

  2. docker enable overlay2 quota on Centos 7

    参考文档 docker overlay2的 --storage-opt 需要启动mount 参数中有pquota 参考上边的文档mount中的xfs 含有pquota 将 /etc/fstab 文件中 ...

  3. 操作redis

    数据库分为: 1)传统的关系型数据库 mysql.oracle.sql server.sqllie.db2 id name passwd cratetime stu 特点: a 数据存在磁盘上 b 使 ...

  4. Linux中DDNS配置

    1.实验拓扑结构 图1 实验拓扑图 2.项目要求 通过系统的搭建,能够为Web Server动态更新DNS信息. 3.项目开展思路(思维导图) 图2 DDNS实验思维导图 4.实验步骤 (1) 基础网 ...

  5. ECS上nginx搭建反向代理通过内网访问阿里云OSS服务

    对于付不起钱的小伙计,为了给公司省钱,想尽一切招数.今天就来分享一个使用阿里云OSS存储搭配CDN使用的网站服务器部署方法. 简介 阿里云OSS 阿里云提供的一种文件存储方案,和我们以前接触的百度云B ...

  6. 2018年—2019年第二学期第四周C#学习个人总结

    第五章面向对象高级包括:5.1类的继承中有5.1.1继承的概念:一是在现实生活中,继承一般指的是子女继承父辈的财产;在C#,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类, ...

  7. 王之泰201771010131《面向对象程序设计(java)》第十三周学习总结

    第一部分:理论知识学习部分  第11章 事件处理 11.1 事件处理基础 a)事件源(event source):能够产生事件的对象都可 以成为事件源,如文本框.按钮等.一个事件源是一个 能够注册监听 ...

  8. ionic3开发环境的搭建 记录!

    总的来说都很顺利,毕竟已经打包成功在手机上面跑起来了,给的两个教程很给力,基本没有误差,照着步骤敲没问题,打包命令有所更新目前已修正,吃一堑长一智下面说下其中遇到的问题:1.第一点是ionic ser ...

  9. Windows 控制面板调用命令

    使用命令打开 Windows 控制面板指定页面 control.exe /name microsoft.folderoptions 启动资源管理器的 文件夹属性 选项卡 control.exe /na ...

  10. Spring Boot 监控利器 —— Actutor

    参考 CSDN-学习Spring Boot:(二十七)Spring Boot 2.0 中使用 Actuator 使用Actuator监控Spring Boot应用 程序猿DD-Spring Boot ...