ABAP 初级的listbox使用,高手不要嘲笑哟

方式一,利用选择屏:

REPORT ZNEIL_TEST MESSAGE-ID HB.

*VRM:Value Request Manager

*VRM_VALUES 的结构
**-- Single Value in Value Set
*       BEGIN OF VRM_VALUE,
*         KEY(40) TYPE C,
*         TEXT(80) TYPE C,
*       END OF VRM_VALUE,
* VRM_VALUES TYPE VRM_VALUE OCCURS 0,

TYPE-POOLS: VRM.

DATA: LNAME TYPE VRM_ID,
      ILIST TYPE VRM_VALUES,  "ITAB
      LILIST LIKE LINE OF ILIST.
DATA: PS_T(10) TYPE C.

PARAMETERS: PS_PARM(10) AS LISTBOX VISIBLE LENGTH 10,
            PS(10) AS LISTBOX VISIBLE LENGTH 10.

AT SELECTION-SCREEN OUTPUT.
  REFRESH ILIST.
  CLEAR ILIST.
**********PS

  LNAME = 'PS'.
  LILIST-KEY = '1'.
  LILIST-TEXT = 'LINE 1'.
  APPEND LILIST TO ILIST.

  LILIST-KEY = '2'.
  LILIST-TEXT = 'LINE 2'.
  APPEND LILIST TO ILIST.

  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
           ID     = LNAME
           VALUES = ILIST.

START-OF-SELECTION.
 CASE PS.
   WHEN '1'.
     PS_T = 'LINE 1'.
   WHEN '2'.
     PS_T = 'LINE 2'.
 ENDCASE.

 WRITE PS_T. 

 

方式二,在事务中使用

1.在screen上建立Output/Input控件,将属性设置成listbox

2.用下列代码操作

REPORT YALVTEST3 .

DATA : OK_CODE LIKE SY-UCOMM,
       SAVE_OK TYPE SY-UCOMM.
*VRM类型定义接口
type-pools: vrm.

DATA: FLD1(20) TYPE C.
DATA: FNAME TYPE VRM_ID,
  VVA TYPE VRM_VALUES,
  LVVA LIKE LINE OF VVA.

CALL SCREEN 100.
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module STATUS_0100 output.
   SET PF-STATUS 'STATUS1'.
*  SET TITLEBAR 'xxx'.
FNAME = 'FIELD'.
LVVA-KEY = '1'.
LVVA-TEXT = '广州'.
APPEND LVVA TO VVA.
CLEAR LVVA.
FNAME = 'FIELD'.
LVVA-KEY = '2'.
LVVA-TEXT = '上海'.
APPEND LVVA TO VVA.
CALL FUNCTION 'VRM_SET_VALUES'
  EXPORTING
    id                    = FNAME
    values                = VVA
* EXCEPTIONS
*   ID_ILLEGAL_NAME       = 1
*   OTHERS                = 2
          .
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

endmodule.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module USER_COMMAND_0100 input.
  SAVE_OK = OK_CODE.
  CLEAR OK_CODE.
  CASE SAVE_OK.
    WHEN 'CANCEL'.
      LEAVE PROGRAM.
  ENDCASE.
endmodule.                 " USER_COMMAND_0100  INPUT

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值