需求:把ALV中某列设置为列表框
步骤一:设置FIELDCAT结构
FORM frm_fields_build
IF lw_fcat-fieldname = 'POSID'.
lw_fcat-drdn_hndl = '1'.
ENDIF.
ENDFORM.
步骤二:
* ALV的WBS编码下拉列表
FORM set_dropdownlist. (grid->set_table_for_first_display前调用该函数)
"下拉列表
DATA lt_drop TYPE lvc_t_drop. "下拉框对应的内表
DATA lw_drop TYPE lvc_s_drop. "下拉框对应的结构
DATA: lv_posid TYPE prps-posid.
DATA: lt_posid TYPE TABLE OF prps,
lw_posid TYPE prps.
lv_posid = p_stgc && '%'.
SELECT posid
INTO CORRESPONDING FIELDS OF TABLE lt_posid
FROM prps
WHERE posid LIKE lv_posid.
LOOP AT lt_posid INTO lw_posid.
lw_drop-handle = '1'.
lw_drop-value = lw_posid-posid.
COLLECT lw_drop INTO lt_drop. "如果显示的不是数字,可以用collect添加不重复的数据。最终目标:就是下拉框的数据不重复。
ENDLOOP.
gr_grid->set_drop_down_table( it_drop_down = lt_drop ).
ENDFORM. "set_dropdownlist