选择屏幕下拉框
发布日期:2024/07/18
为了方便用户使用,有时候需要我们为字段设置下拉框。今天分享2种实现下拉框的方式。
-
选择画面的状态和处理标识,分别用了两种方式实现下拉框。
主要过程:
1.定义选择画面
2.定义事件响应
3.定义下拉框的具体内容 -
实现详细代码贴在了下方:
REPORT zmm_rpt_538_wu.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS: p_status TYPE ztddzt-status AS LISTBOX VISIBLE LENGTH 14.
PARAMETERS: p_flg TYPE char1 AS LISTBOX VISIBLE LENGTH 10.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_status.
PERFORM p_set_status_list.
AT SELECTION-SCREEN OUTPUT.
PERFORM frm_set_flg_list.
INITIALIZATION.
START-OF-SELECTION.
FORM p_set_status_list .
TYPES :BEGIN OF ty,
status TYPE char2,
text TYPE char10,
END OF ty.
DATA itab TYPE TABLE OF ty.
itab = VALUE #( ( status = '10' text = '未确认')
( status = '20' text = '已确认')
( status = '30' text = '已反馈') ).
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'STATUS'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'STATUS'
value_org = 'S'
callback_program = sy-repid
TABLES
value_tab = itab
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM.
FORM frm_set_flg_list.
DATA: lv_list TYPE vrm_values,
lv_value LIKE LINE OF lv_list.
*设置下拉框
REFRESH lv_list.
lv_value-key = 'A'.
lv_value-text = 'A 待处理'.
APPEND lv_value TO lv_list.
lv_value-key = 'B'.
lv_value-text = 'B 已处理'.
APPEND lv_value TO lv_list.
lv_value-key = ''.
lv_value-text = 'A/B 全部'.
APPEND lv_value TO lv_list.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = 'P_FLG'
values = lv_list.
ENDFORM.
- 最后我们来看一下效果吧:
状态栏的下拉框
处理标识栏下拉框