用ABAP实现下拉菜单



用DIALOG才能实现LISTBOX

往LISTBOX填值有多种方式

一 SELECT XXX INTO LISTBOX控件名称

二 手动追加数据到LISTBOX,要调用函数,代码如下:

*&---------------------------------------------------------------------*
*& Report Z_TESTYM01 *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*

REPORT Z_TESTYM01 .
CALL SCREEN 1000.

*&---------------------------------------------------------------------*
*& Module STATUS_1000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_1000 OUTPUT.
SET PF-STATUS 'STATUS_1000'.
ENDMODULE. " STATUS_1000 OUTPUT

*&---------------------------------------------------------------------*
*& Module CANCEL INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CANCEL INPUT.
LEAVE TO SCREEN 0.
ENDMODULE. " CANCEL INPUT

*&---------------------------------------------------------------------*
*& Module LSTBOX_DISPLAY OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE LSTBOX_DISPLAY OUTPUT.
TYPE-POOLS VRM.
DATA: LIST TYPE VRM_VALUES,
NAME TYPE VRM_ID.
DATA VALUES LIKE LINE OF LIST.

CLEAR LIST.
CLEAR LIST[].

NAME = 'TEST'. "LISTBOX控件名称

VALUES-KEY = '1'. "LISTBOX 索引
VALUES-TEXT = 'A'."LISTBOX 显示的值
APPEND VALUES TO LIST.

VALUES-KEY = '2'.
VALUES-TEXT = 'B'.
APPEND VALUES TO LIST.

CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
ID = NAME
VALUES = LIST
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. " LSTBOX_DISPLAY OUTPUT

*&---------------------------------------------------------------------*
*& Module USER_COMMAND_1000 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_1000 INPUT.
DATA: TEST(40),
TEST2(40).
DATA: OK_CODE LIKE SY-UCOMM,
SAVE_OK LIKE OK_

CODE.

SAVE_OK = OK_CODE.
CLEAR OK_CODE.
CASE SAVE_OK.
WHEN 'TEST'.
TEST2 = TEST.
ENDCASE.
ENDMODULE. " USER_COMMAND_1000 INPUT



相关主题
相关文档
最新文档