- 用户报表的需求总是多样的,So!SAP的强大让ABAPER不得不感叹:只有用户想不到的,没有SAP做不到的。
- 需求:选择屏幕的某些字段采用下拉的形式写入值
- 大概长这个样子(截图的时候因为退出个GUI,所以那些下拉的值没显示 截取不到效果)
![](https://img-blog.csdnimg.cn/direct/6e9a1b7f3eb14451aa9d8a645280df61.png)
TABLES:likp.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS:p_vbeln TYPE likp-vbeln OBLIGATORY,
p_chanl TYPE char6 AS LISTBOX VISIBLE LENGTH 10 OBLIGATORY,
p_print TYPE char6 AS LISTBOX VISIBLE LENGTH 10 OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
INITIALIZATION.
PERFORM frm_sc_init.
FORM frm_sc_init.
DATA:vid1 TYPE vrm_id,
vid2 TYPE vrm_id,
list1 TYPE vrm_values,
list2 TYPE vrm_values.
REFRESH:list1[],list2[].
CLEAR:vid1,vid2.
list1[] = VALUE #( ( key = '1.' text = '电商渠道' )
( key = '2.' text = '商用渠道' )
( key = '3.' text = '商超渠道' )
( key = '' text = '' )
).
vid1 = 'P_CHANL'. "对应选择屏幕上定义的名称
**调用下拉框赋值函数
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = vid1
values = list1[].
list2[] = VALUE #( ( key = '1.' text = '送货单' )
( key = '2.' text = '拣配单' )
( key = '' text = '' )
).
vid2 = 'P_PRINT'. "对应选择屏幕上定义的名称
**调用下拉框赋值函数
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = vid2
values = list2[].
ENDFORM.