使用'VRM_SET_VALUES'函数创建下拉列表

REPORT z.
 TYPE-POOLS: vrm.
 DATA: it_val TYPE vrm_values,
       w_line LIKE LINE OF it_val.
 PARAMETERS p_bukrs LIKE t001-bukrs AS LISTBOX
            VISIBLE LENGTH 25 OBLIGATORY.

 INITIALIZATION.
   SELECT bukrs butxt FROM t001 INTO (w_line-key, w_line-text).
     APPEND w_line TO it_val.
     CHECK p_bukrs IS INITIAL.
     p_bukrs = w_line-key.
   ENDSELECT.

 AT SELECTION-SCREEN OUTPUT.
   CALL FUNCTION 'VRM_SET_VALUES'
     EXPORTING
       id     = 'P_BUKRS'
       values = it_val.

 END-OF-SELECTION.
   WRITE: / 'Company Code:', p_bukrs.

  REPORT yaowei_test_list .
TABLES:t001.
DATA: ok_code LIKE sy-ucomm.
*下拉列表相关定义
TYPE-POOLS vrm. "下拉列表使用的类型定义
DATA: sc_list TYPE vrm_id. "使用列表的字段名
DATA:it_list TYPE vrm_values. "使用列表的清单内容
DATA: wa_list LIKE LINE OF it_list.
"创建列表清单使用的工作区
"不能自己定义内表,一定要用VRM_VALUES.其他有2个字段:KEY AND TEXT
DATA p_bukrs LIKE t001-bukrs.

START-OF-SELECTION.
  CALL SCREEN 100.
  "或PARAMETERS: SC_LIST(20) AS LISTBOX VISIBLE LENGTH 10.

*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS '100'.
* SET TITLEBAR 'xxx'.


  REFRESH it_list. "勿忘
  SELECT bukrs butxt FROM t001 INTO (wa_list-key, wa_list-text).
    APPEND wa_list TO it_list.
    CHECK p_bukrs IS INITIAL.
    p_bukrs = wa_list-key.
  ENDSELECT.

  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      id     = 'P_BUKRS'
      values = it_list."屏幕中的下拉菜单的NAME,下拉菜单选择LISTBOX
*WITH KEY 若选LISTBOX的话带不出KEY值
  REFRESH it_list.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  CASE: ok_code.
    WHEN: 'BACK'.
      LEAVE TO SCREEN 0.
*WHEN: 'LIST_SEL'.
*MESSAGE 'LIST_SEL' TYPE 'I'.
  ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/CompassButton/archive/2006/08/19/1097624.aspx

转载于:https://www.cnblogs.com/clsoho/archive/2010/01/25/1655867.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值