除了Search help 以外,我们在使用的过程中还常常设置下拉列表,相较Search help其优点在于只能输入下拉列表中存在的数据,而Search help不具备这样的功能,一下为总结的几点。
1.为Paramater设置Search help(设置方法不再赘述)
2.parameters: 变量 as listbox
1.定义下拉列表并赋值
DATA:gt_drp TYPE lvc_t_drop.
DATA:gs_drp TYPE lvc_s_drop.
*向下拉表中填充数据,handle值相同的为一组下拉。
gs_drp-handle = ‘1′ .
gs_drp-value = ‘JFK-12′ .
APPEND gs_drp TO gt_drp .
gs_drp-handle = ‘1′ .
gs_drp-value = ‘JSF-44′ .
APPEND gs_drp TO gt_drp .
gs_drp-handle = ‘1′ .
gs_drp-value = ‘KMDA-53′ .
APPEND gs_drp TO gt_drp .
gs_drp-handle = ‘1′ .
gs_drp-value = ‘SS3O/N’ .
APPEND gs_drp TO gt_drp .
2.调用方法将下拉列表与ALV关联
CALL METHOD gs_alv->set_drop_down_table
EXPORTING
it_drop_down = gt_drp.
3.Field cat 设置
此处有两种方法,如果下拉列表中的值时固定值,可设置fieldcat 中DRDN_HNDL字段值。如下:则AAA的下拉列表为gs_drp表中handle 字段为1的所有值
IF gs_fieldcat-FIELDNAME = 'AAA'.
gs_fieldcat-DRDN_HNDL = '1'.
ENDIF.
如果想要动态的设置下拉列表中的值,可设置fieldcat 中DRDN_FIELD字段值.如下:则AAA的下拉列表为gs_drp表中handle字段值等于ALV主表中的BBB的值数据
IF gs_fieldcat-FIELDNAME = 'AAA'.
gs_fieldcat-DRDN_HNDL = 'BBB'.
ENDIF.