http://blog.sina.com.cn/s/blog_c0978c9b0101hesn.html
至于下拉框,主要的地方如下:
*…………………………………………………………………………………………
lvc_s_fcat 指定某字段为下拉框
*…………………………………………………………………………………………
DATA: wa_fieldcatalog TYPE lvc_s_fcat, "显示数据列内表工作区域
it_fieldcatalog TYPE lvc_t_fcat. "显示数据列内表
DEFINE mac_fieldlog.
= g_pos.
wa_fieldcatalog-fieldname = &1. "字段名称
= &2. "显示名称,跟reptext效果基本相同
wa_fieldcatalog-reptext
wa_fieldcatalog-outputlen = &3. "显示长度
"对AAA字段实现下拉框显示
wa_fieldcatalog-edit = 'X'.
wa_fieldcatalog-drdn_hndl = '1'.
"对BBB字段实现下拉框显示
wa_fieldcatalog-drdn_hndl = '2'. "下拉框句柄2
END-OF-DEFINITION.
*…………………………………………………………………………………………
调用类,实现下拉框功能
*…………………………………………………………………………………………
TYPE REF TO cl_gui_alv_grid,
alv_ctner
FORM zform_alv_show .
DATA: l_style TYPE i,
ls_layout TYPE lvc_s_layo,
is_stable TYPE lvc_s_stbl,
* 屏幕初始化
repid
dynnr
side = cl_gui_docking_container=>dock_at_right ”ALV贴屏幕右边,从屏幕右边开始算宽度
side = cl_gui_docking_container=>dock_at_left
extension = 900 "屏幕宽度
style = cl_gui_control=>ws_child
cntl_error = 1
cntl_system_error
create_error = 3
lifetime_error = 4
OTHERS = 6.
*添加自定义工具条
*
*构建显示字段样式
* layout 设定样式
ls_layout-cwidth_opt = 'X'.
绑定事件
SET HANDLER g_event->toolbar
*这里是下拉框相关逻辑…………………………………………
ls_dropdown-handle = '1'. "指定下拉框句柄
ls_dropdown-handle = '2'. "指定下拉框句柄
CALL METHOD g_alv_grid->set_drop_down_table "调用alv类的下拉框方法
*end………………………………………………………………
is_layout = ls_layout
is_variant
it_fieldcatalog = it_fieldcatalog[]
it_outtab = g_it_show[].
如上即可
有时候有你会发现点保存的时候报错:
比如你有个状态字段,在库表里是char1类型的,
1:禁用
当你定义alv字段的时候,直接参考库表的char1类型
点保存的时候会提示:
大于1”
这个时候,在定义alv子段的时候,不参考char1类型
而是定义成string
就可以了
标签:OO,layout,wa,fieldcatalog,alv,ALV,TYPE,下拉框 From: https://blog.51cto.com/u_15680210/5751437