ABAP ALV选择屏幕下拉框实现方法

第一步:下拉框定义

DATA:VID1   TYPE VRM_ID,
     LIST1  TYPE VRM_VALUES,
     VALUE1 LIKE LINE OF LIST1.
DATA:VID2   TYPE VRM_ID,
     LIST2  TYPE VRM_VALUES,
     VALUE2 LIKE LINE OF LIST2.

第二步:定义选择屏幕

PARAMETERS:
           P_WERKS TYPE CHAR4 AS LISTBOX VISIBLE LENGTH 20, "工厂
           P_ZQMCJ TYPE CHAR4 AS LISTBOX VISIBLE LENGTH 20.  "车间

重要:AS LISTBOX VISIBLE LENGTH 20

第三步:初始化

INITIALIZATION.

第四步:定义下拉框内容

   REFRESH LIST1.

  VALUE1-KEY = '1' . "这个就是变量P_LIST的值
  VALUE1-TEXT = '第一工厂' . "这个是TEXT
  APPEND VALUE1 TO LIST1.

  VALUE1-KEY = '2' . "这个就是变量P_LIST的值
  VALUE1-TEXT = '第二工厂' . "这个是TEXT
  APPEND VALUE1 TO LIST1.

  VALUE1-KEY = '3' . "这个就是变量P_LIST的值
  VALUE1-TEXT = '第三工厂' . "这个是TEXT
  APPEND VALUE1 TO LIST1.

  VALUE1-KEY = '4' . "这个就是变量P_LIST的值
  VALUE1-TEXT = '第四工厂' . "这个是TEXT
  APPEND VALUE1 TO LIST1.

**调用下拉框赋值函数
  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      ID     = 'P_WERKS' "对应选择屏幕上定义的名称
      VALUES = LIST1.

  REFRESH LIST2.

  VALUE2-KEY = 'A' . "这个就是变量P_LIST的值
  VALUE2-TEXT = '北部车间' . "这个是TEXT
  APPEND VALUE2 TO LIST2.

  VALUE2-KEY = 'B' . "这个就是变量P_LIST的值
  VALUE2-TEXT = '南部车间' . "这个是TEXT
  APPEND VALUE2 TO LIST2.

  VALUE2-KEY = 'C' . "这个就是变量P_LIST的值
  VALUE2-TEXT = '西部车间' . "这个是TEXT
  APPEND VALUE2 TO LIST2.

  VALUE2-KEY = 'D' . "这个就是变量P_LIST的值
  VALUE2-TEXT = '东部车间' . "这个是TEXT
  APPEND VALUE2 TO LIST2.

**调用下拉框赋值函数
  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      ID     = 'P_ZQMCJ' "对应选择屏幕上定义的名称
      VALUES = LIST2.


好,这样就完成了。下面附上完整可执行demo代码:

REPORT ZMYDEMO019.

TYPE-POOLS VRM.
TABLES:ZQMT026,SSCRFIELDS.

"下拉框定义
DATA:VID1   TYPE VRM_ID,
     LIST1  TYPE VRM_VALUES,
     VALUE1 LIKE LINE OF LIST1.
DATA:VID2   TYPE VRM_ID,
     LIST2  TYPE VRM_VALUES,
     VALUE2 LIKE LINE OF LIST2.

SELECTION-SCREEN:BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
  SELECTION-SCREEN COMMENT 1(31) TEXT-003.
PARAMETERS:
           P_WERKS TYPE CHAR4 AS LISTBOX VISIBLE LENGTH 20, "工厂
           P_ZQMCJ TYPE CHAR4 AS LISTBOX VISIBLE LENGTH 20.  "车间
SELECTION-SCREEN:END OF BLOCK B1.

INITIALIZATION.

  REFRESH LIST1.

  VALUE1-KEY = '1' . "这个就是变量P_LIST的值
  VALUE1-TEXT = '第一工厂' . "这个是TEXT
  APPEND VALUE1 TO LIST1.

  VALUE1-KEY = '2' . "这个就是变量P_LIST的值
  VALUE1-TEXT = '第二工厂' . "这个是TEXT
  APPEND VALUE1 TO LIST1.

  VALUE1-KEY = '3' . "这个就是变量P_LIST的值
  VALUE1-TEXT = '第三工厂' . "这个是TEXT
  APPEND VALUE1 TO LIST1.

  VALUE1-KEY = '4' . "这个就是变量P_LIST的值
  VALUE1-TEXT = '第四工厂' . "这个是TEXT
  APPEND VALUE1 TO LIST1.

**调用下拉框赋值函数
  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      ID     = 'P_WERKS' "对应选择屏幕上定义的名称
      VALUES = LIST1.

  REFRESH LIST2.

  VALUE2-KEY = 'A' . "这个就是变量P_LIST的值
  VALUE2-TEXT = '北部车间' . "这个是TEXT
  APPEND VALUE2 TO LIST2.

  VALUE2-KEY = 'B' . "这个就是变量P_LIST的值
  VALUE2-TEXT = '南部车间' . "这个是TEXT
  APPEND VALUE2 TO LIST2.

  VALUE2-KEY = 'C' . "这个就是变量P_LIST的值
  VALUE2-TEXT = '西部车间' . "这个是TEXT
  APPEND VALUE2 TO LIST2.

  VALUE2-KEY = 'D' . "这个就是变量P_LIST的值
  VALUE2-TEXT = '东部车间' . "这个是TEXT
  APPEND VALUE2 TO LIST2.

**调用下拉框赋值函数
  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      ID     = 'P_ZQMCJ' "对应选择屏幕上定义的名称
      VALUES = LIST2.


START-OF-SELECTION.
  PERFORM FRM_GET_DATA.
  PERFORM FRM_DIS_DATA.
END-OF-SELECTION.

FORM FRM_GET_DATA.

ENDFORM.

FORM FRM_DIS_DATA.

ENDFORM.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值