1.给ALV结构添加VALUE SET字段。

2.初始化时将TYPE_SET字段设置为值范围。

METHOD wddoinit .
DATA:
lo_node TYPE REF TO if_wd_context_node,
lo_elem TYPE REF TO if_wd_context_element,
ls_order TYPE wd_this->element_order,
lt_order TYPE wd_this->elements_order,
ls_value_set TYPE wdr_context_attr_value.
CLEAR:ls_order.
ls_order-object_id = ''.
ls_order-process_type = 'ZSV1'.
ls_value_set-value = 'ZSV2'.
ls_value_set-text = 'ZSV2'.
APPEND ls_value_set TO ls_order-type_set.
ls_value_set-value = 'ZSV3'.
ls_value_set-text = 'ZSV3'.
APPEND ls_value_set TO ls_order-type_set.
ls_value_set-value = 'ZSV4'.
ls_value_set-text = 'ZSV4'.
APPEND ls_value_set TO ls_order-type_set.
APPEND ls_order TO lt_order.
CLEAR:ls_order.
ls_order-object_id = ''.
ls_order-process_type = 'ZSO1'.
ls_value_set-value = 'ZSO2'.
ls_value_set-text = 'ZSO2'.
APPEND ls_value_set TO ls_order-type_set.
ls_value_set-value = 'ZSO3'.
ls_value_set-text = 'ZSO3'.
APPEND ls_value_set TO ls_order-type_set.
ls_value_set-value = 'ZSO4'.
ls_value_set-text = 'ZSO4'.
APPEND ls_value_set TO ls_order-type_set.
APPEND ls_order TO lt_order.
lo_node = wd_context->get_child_node( name = wd_this->wdctx_order ).
lo_node->bind_table( lt_order ).
lo_node->set_lead_selection_index( - ).
* use ALV
DATA:
lr_salv_wd_table_usage TYPE REF TO if_wd_component_usage,
lr_salv_wd_table TYPE REF TO iwci_salv_wd_table,
lr_table TYPE REF TO cl_salv_wd_config_table,
lr_column TYPE REF TO cl_salv_wd_column,
lr_dropdown TYPE REF TO cl_salv_wd_uie_dropdown_by_idx.
lr_salv_wd_table_usage = wd_this->wd_cpuse_alv( ).
IF lr_salv_wd_table_usage->has_active_component( ) IS INITIAL.
lr_salv_wd_table_usage->create_component( ).
ENDIF.
* get reference to ALV component interface
lr_salv_wd_table = wd_this->wd_cpifc_alv( ).
lr_salv_wd_table->set_data( lo_node ).
* get ConfigurationModel from ALV Component
lr_table = lr_salv_wd_table->get_model( ).
* get the column
CALL METHOD lr_table->if_salv_wd_column_settings~get_column
EXPORTING
id = 'PROCESS_TYPE'
RECEIVING
value = lr_column.
* create UI element
CREATE OBJECT lr_dropdown
EXPORTING
selected_key_fieldname = 'PROCESS_TYPE'.
* set the value set
CALL METHOD lr_dropdown->set_valueset_fieldname
EXPORTING
value = 'TYPE_SET'.
* set editor
CALL METHOD lr_column->set_cell_editor
EXPORTING
value = lr_dropdown.
* 很重要。Dropdownlist 才会出现
CALL METHOD lr_table->if_salv_wd_table_settings~set_read_only
EXPORTING
value = abap_false.
ENDMETHOD.

效果展示:

WDA基础十七:ALV不同行显示不同下拉的更多相关文章

  1. Bootstrap框架(基础篇)之按钮,网格,导航栏,下拉菜单

    一,按钮 注意:虽然在Bootstrap框架中使用任何标签元素都可以实现按钮风格,但个人并不建议这样使用,为了避免浏览器兼容性问题,个人强烈建议使用button或a标签来制作按钮. 框架中提供了基础按 ...

  2. Ajax实现在textbox中输入内容,动态从数据库中模糊查询显示到下拉框中

    功能:在textbox中输入内容,动态从数据库模糊查询显示到下拉框中,以供选择 1.建立一aspx页面,html代码 <HTML> <HEAD> <title>We ...

  3. 基于定位下拉框或者需要点击link才显示的下拉框,二次定位与多次定位实现的实际效果区别

    还是基于上次那个练习的后续出现的思考,http://www.cnblogs.com/8013-cmf/p/6555790.html 界面: 源码: 写法如下:  继续解释这两种的区别: 1.其实基于定 ...

  4. 百度“搜索设置”之基于定位下拉框或者需要点击link才显示的下拉框,二次定位与多次定位实现的实际效果区别

    还是基于上次那个练习的后续出现的思考,http://www.cnblogs.com/8013-cmf/p/6555790.html 界面: 源码: 写法如下:  继续解释这两种的区别: 1.其实基于定 ...

  5. EF5+MVC4系列(7) 后台SelectListItem传值给前台显示Select下拉框;后台Action接收浏览器传值的4种方式; 后台Action向前台View视图传递数据的四种方式(ViewDate,TempDate,ViewBag,Model (实际是ViewDate.Model传值))

    一:后台使用SelectListItem 传值给前台显示Select下拉框 我们先来看数据库的订单表,里面有3条订单,他们的用户id对应了 UserInfo用户表的数据,现在我们要做的是添加一个Ord ...

  6. 02 - Unit07:显示笔记下拉菜单、笔记的分享功能、笔记的删除功能

    显示笔记下拉菜单 笔记的分享功能 发送Ajax请求 绑定事件:绑定分享按钮单击事件 参数获取:笔记ID 发送请求:/share/add.do 服务器处理 ShareController ShareSe ...

  7. Android零基础入门第72节:SwipeRefreshLayout下拉刷新

    在实际开发中,经常都会遇到下拉刷新.上拉加载更多的情形,这一期就一起来学习Android系统的SwipeRefreshLayout下拉刷新组件. 一.SwipeRefreshLayout简介 Swip ...

  8. ALV屏幕捕捉回车及下拉框事件&ALV弹出框回车及下拉框事件

    示例展示: 屏幕依据输入的物料编码或下拉框物料编码拍回车自动带出物料描述: 点击弹出框,输入物料编码拍回车带出物料描述,点击确认,更新ALV: 1.创建屏幕9000,用于处理ALV弹出框: 2.针对屏 ...

  9. BootStrap字体图标不显示、下拉菜单不显示

    在W3CSchool学习BootStrap教程时遇到的问题…… 1.字体图标不能显示 上面是正常显示的样子,不能正常显示,因为缺少下面的字体图标样式文件 (1)在下载的Bootstrap包中将font ...

随机推荐

  1. Flask实战-留言板-使用Faker生成虚拟数据

    使用Faker生成虚拟数据 创建虚拟数据是编写Web程序时的常见需求.在简单的场景下,我们可以手动创建一些虚拟数据,但更方便的选择是使用第三方库实现.流行的python虚拟数据生成工具有Mimesis ...

  2. vue学习笔记—bootstrap+vue用户管理

    vue,读音view,简单易用的前端框架.特点如下: 1.一个mvvm的前端框架,内部做好了html中dom对象和后台用js语言定义的变量的双向绑定 2.中国人尤雨溪维护的个人项目,中文资料多,和go ...

  3. CentOS7操作Redis4.0

    单机安装 1. 从官网下载 redis-4.0.10.tar.gz 到本地,然后上传到VMware虚拟机上,存放地址随意. 2. 解压: tar -zxvf redis-4.0.10.tar.gz 3 ...

  4. 如何在Ubuntu 16.04上安装PythonGDAL 2.1?

    sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable sudo apt update sudo apt upgrade # if yo ...

  5. day 07

    # 数据类型的相互转化# 字符编码# 文件操作 # 1.哪些类型可以转化为数字# res = int('10')# print(res)# res = int('-3')# print(res)# r ...

  6. redis集群部署+节点端口修改+数据恢复

    环境:OS:Centos 7Redis: 3.2.11主 从192.168.1.118:7001 192.168.1.118:8001192.168.1.118:7002 192.168.1.118: ...

  7. ORA-00338

    dg环境从库报错:ORA-00338: log 5 of thread 1 is more recent than control fileORA-00312: online log 5 thread ...

  8. Django多表查询

    一.前言 1.什么是ORM? ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候, ...

  9. 2019年3月10日 装饰器进阶-模拟session

    ser_dic={'username':None,'login':False}#用户字典,反应登入状态,用字典做全局变量 def idf(func):#验证登入信息是否正确 def wrapper(* ...

  10. mybatis配置与使用

    一:Mybatis简介 1.名称由来 Mybatis原名叫ibatis.Mybatis一开始属于Apache,2010年从Apache转移到了GoogleCode这个组织中. 2.Mybatis概念 ...