WDA基础十七:ALV不同行显示不同下拉
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不同行显示不同下拉的更多相关文章
- Bootstrap框架(基础篇)之按钮,网格,导航栏,下拉菜单
一,按钮 注意:虽然在Bootstrap框架中使用任何标签元素都可以实现按钮风格,但个人并不建议这样使用,为了避免浏览器兼容性问题,个人强烈建议使用button或a标签来制作按钮. 框架中提供了基础按 ...
- Ajax实现在textbox中输入内容,动态从数据库中模糊查询显示到下拉框中
功能:在textbox中输入内容,动态从数据库模糊查询显示到下拉框中,以供选择 1.建立一aspx页面,html代码 <HTML> <HEAD> <title>We ...
- 基于定位下拉框或者需要点击link才显示的下拉框,二次定位与多次定位实现的实际效果区别
还是基于上次那个练习的后续出现的思考,http://www.cnblogs.com/8013-cmf/p/6555790.html 界面: 源码: 写法如下: 继续解释这两种的区别: 1.其实基于定 ...
- 百度“搜索设置”之基于定位下拉框或者需要点击link才显示的下拉框,二次定位与多次定位实现的实际效果区别
还是基于上次那个练习的后续出现的思考,http://www.cnblogs.com/8013-cmf/p/6555790.html 界面: 源码: 写法如下: 继续解释这两种的区别: 1.其实基于定 ...
- EF5+MVC4系列(7) 后台SelectListItem传值给前台显示Select下拉框;后台Action接收浏览器传值的4种方式; 后台Action向前台View视图传递数据的四种方式(ViewDate,TempDate,ViewBag,Model (实际是ViewDate.Model传值))
一:后台使用SelectListItem 传值给前台显示Select下拉框 我们先来看数据库的订单表,里面有3条订单,他们的用户id对应了 UserInfo用户表的数据,现在我们要做的是添加一个Ord ...
- 02 - Unit07:显示笔记下拉菜单、笔记的分享功能、笔记的删除功能
显示笔记下拉菜单 笔记的分享功能 发送Ajax请求 绑定事件:绑定分享按钮单击事件 参数获取:笔记ID 发送请求:/share/add.do 服务器处理 ShareController ShareSe ...
- Android零基础入门第72节:SwipeRefreshLayout下拉刷新
在实际开发中,经常都会遇到下拉刷新.上拉加载更多的情形,这一期就一起来学习Android系统的SwipeRefreshLayout下拉刷新组件. 一.SwipeRefreshLayout简介 Swip ...
- ALV屏幕捕捉回车及下拉框事件&ALV弹出框回车及下拉框事件
示例展示: 屏幕依据输入的物料编码或下拉框物料编码拍回车自动带出物料描述: 点击弹出框,输入物料编码拍回车带出物料描述,点击确认,更新ALV: 1.创建屏幕9000,用于处理ALV弹出框: 2.针对屏 ...
- BootStrap字体图标不显示、下拉菜单不显示
在W3CSchool学习BootStrap教程时遇到的问题…… 1.字体图标不能显示 上面是正常显示的样子,不能正常显示,因为缺少下面的字体图标样式文件 (1)在下载的Bootstrap包中将font ...
随机推荐
- Hadoop Mapreduce 调优
- quartz相关记录
1.http://www.quartz-scheduler.org/api/2.3.1-SNAPSHOT/ api地址 2.https://www.jianshu.com/p/3c3e166a7da1 ...
- Git抽取版本之间的差异,打包解压
patch.sh文件代码 #!/bin/bash MY_SAVEIFS=$IFS #IFS=$(echo -en "\n\b") IFS=$'\n' build_dir=" ...
- Numpy 和 Matplotlib库的学习笔记
Numpy介绍 一个用python实现的科学计算,包括:1.一个强大的N维数组对象Array:2.比较成熟的(广播)函数库:3.用于整合C/C++和Fortran代码的工具包:4.实用的线性代数.傅里 ...
- Java中的String为什么是不可变的? -- String源码分析
众所周知, 在Java中, String类是不可变的.那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的.不能改变状态的意思是, ...
- kafka学习-坑篇
安装(滤过) 启动(滤过) 坑(开始)--- topic creat完成后准备使用console-produce发布一个topic,错误如下: [-- ::,] WARN [Producer clie ...
- loj 6008 餐巾计划 - 费用流
题目传送门 传送门 题目大意 (经典题还不知道题意?) 容易想到需要把未使用的餐巾和已经使用的餐巾分开. 设$X_i$表示第$i$天已经的使用餐巾的点,设$Y_i$表示第$i$天还未使用的餐巾的点 我 ...
- 【Django试图与网址003】
Django中网址是写在 urls.py 文件中,用正则表达式对应 views.py 中的一个函数(或者generic类),我们用一个项目来演示. 一,首先,新建一个项目(project), 名称为 ...
- 2019年3月10日 装饰器进阶-模拟session
ser_dic={'username':None,'login':False}#用户字典,反应登入状态,用字典做全局变量 def idf(func):#验证登入信息是否正确 def wrapper(* ...
- java中annotation
什么是annotation(注解)? java.lang.annotation,接口Annotation.对于Annotation,是Java5的新特性,JDK5引入了Metadata(元数据)很容易 ...