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. spring boot + vue + element-ui全栈开发入门——项目部署

     前言 常用的部署方式有两种: 1.是把生成好的静态页面放到spring boot的static目录下,与打包后的spring boot项目一起发布,当spring boot运行起来后,自然而然就能访 ...

  2. Hibernate的load和get方法的区别

    这次我们聊一下Hibernate3.2 Session加载数据时get和load方法的区别,我总结的如下: 1. 对于get方法,hibernate会确认一下该id对应的数据是否存在,首先在sessi ...

  3. Centos7 创建内部的yum源

  4. python 开发练习之 监控

    本节内容 为什么要做监控? 常用监控系统设计讨论 监控系统架构设计 监控表结构设计 为什么要做监控? –熟悉IT监控系统的设计原理 –开发一个简版的类Zabbix监控系统 –掌握自动化开发项目的程序设 ...

  5. C博客第02次作业---循环结构

    1.本章学习总结 1.1 思维导图 1.2 本章学习体会及代码量 1.2 本章学习体会及代码量 1.2.1 学习体会 1.这两周的学习懂得了循环结构的使用方法,懂得了在什么时候应该使用循环结构来处理问 ...

  6. Global.asax

    ASP.NET Global.asax 文件使用方法 - .net 标签:               asp.net.netapplicationauthenticationsessionobjec ...

  7. [最新]ABP ASP.NET Zero v5.5.2 破解

    参考https://www.cnblogs.com/xajh/p/8428818.html后, 搞定了Abp.AspNetZeroCore.dll.Abp.AspNetZeroCore.Web.dll ...

  8. CentOS 7安装mysql(rpm)

    1.检查是否安装了mysql rpm -qa|grep -i mysql centos7默认是安装的mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb 2 ...

  9. Jenkins 配置git

    点击"新建任务"创建一个自用风格的项目 点击"源码管理",选择 git 系统管理 --> Global Tool Configuration<为访问 ...

  10. kafka 控制台命令

    后台启动:bin/kafka-server-start.sh config/server.properties > /dev/null 2>&1 & 启动生产者:bin/k ...