文本编辑器程序 测试程序:ZLITEST_006,ZLITEST007.
*&---------------------------------------------------------------------*
*& Report ZLITEST_006 *&
*&---------------------------------------------------------------------* *& *&
*&---------------------------------------------------------------------*
REPORT ZLITEST_006.
DATA:OK_CODE TYPE SY-UCOMM. DATA:SAVE_OK TYPE SY-UCOMM.
DATA:INIT.
DATA:CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER. DATA:EDITOR TYPE REF TO CL_GUI_TEXTEDIT.
DATA:M1(256) TYPE C OCCURS 0, LINE(256) TYPE C.
LINE = 'PLEASE INPUT'.
APPEND LINE TO M1. CALL SCREEN 100. REFRESH M1.
CALL METHOD EDITOR->GET_TEXT_AS_R3TABLE * EXPORTING
* ONLY_WHEN_MODIFIED = FALSE IMPORTING
TABLE = M1 * IS_MODIFIED = * EXCEPTIONS
* ERROR_DP = 1 * ERROR_CNTL_CALL_METHOD = 2 * ERROR_DP_CREATE = 3 * POTENTIAL_DATA_LOSS = 4 * OTHERS = 5 .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
LOOP AT M1 INTO LINE. WRITE / LINE. ENDLOOP.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT. SAVE_OK = OK_CODE. CLEAR OK_CODE. CASE SAVE_OK. WHEN 'EXIT'.
LEAVE TO SCREEN 0. ENDCASE.
ENDMODULE. \
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT. * SET PF-STATUS 'xxxxxxxx'. * SET TITLEBAR 'xxx'. IF INIT IS INITIAL. INIT = 'X'.
CREATE OBJECT CONTAINER EXPORTING
* PARENT = CONTAINER_NAME = 'P1' * STYLE =
* LIFETIME = LIFETIME_DEFAULT * REPID = * DYNNR =
* NO_AUTODEF_PROGID_DYNNR = * EXCEPTIONS
* CNTL_ERROR = 1 * CNTL_SYSTEM_ERROR = 2 * CREATE_ERROR = 3 * LIFETIME_ERROR = 4 * LIFETIME_DYNPRO_DYNPRO_LINK = 5 * OTHERS = 6 .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
CREATE OBJECT EDITOR EXPORTING
* MAX_NUMBER_CHARS = * STYLE = 0
WORDWRAP_MODE = CL_GUI_TEXTEDIT=>WORDWRAP_AT_FIXED_POSITION
WORDWRAP_POSITION = 256
WORDWRAP_TO_LINEBREAK_MODE = CL_GUI_TEXTEDIT=>TRUE * FILEDROP_MODE = DROPFILE_EVENT_OFF PARENT = CONTAINER * LIFETIME = * NAME = * EXCEPTIONS
* ERROR_CNTL_CREATE = 1 * ERROR_CNTL_INIT = 2 * ERROR_CNTL_LINK = 3 * ERROR_DP_CREATE = 4 * GUI_TYPE_NOT_SUPPORTED = 5 * OTHERS = 6 .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
ENDIF.
CALL METHOD EDITOR->SET_TEXT_AS_R3TABLE EXPORTING
TABLE = M1 * EXCEPTIONS
* ERROR_DP = 1
* ERROR_DP_CREATE = 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.
ENDMODULE. \
列表和屏幕相互调用 测试程序:ZLITEST_008, ZLITEST_009.
*&---------------------------------------------------------------------*
*& Report ZLITEST_008 *&
*&---------------------------------------------------------------------* *& *&
*&---------------------------------------------------------------------*
REPORT ZLITEST_008.
TABLES: SPFLI.
DATA:OK_CODE TYPE SY-UCOMM. DATA:SAVE_OK TYPE SY-UCOMM. DATA:IO1(20) TYPE C.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'STATUS1'. * SET TITLEBAR 'xxx'.
ENDMODULE. \
*&---------------------------------------------------------------------*
*& Module CANCEL INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CANCEL INPUT. LEAVE PROGRAM.
ENDMODULE. \
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT. SAVE_OK = OK_CODE. CLEAR:OK_CODE. CASE SAVE_OK. WHEN 'BI1'.
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
SUPPRESS DIALOG. SELECT * INTO SPFLI
FROM SPFLI WHERE CARRID = IO1. WRITE: / SPFLI-CARRID, SPFLI-CONNID, SPFLI-CITYFROM, SPFLI-CITYTO. ENDSELECT.
WRITE : / 'DONE'. WHEN 'BI2'. IO1 = ''. ENDCASE.
ENDMODULE. \
*&---------------------------------------------------------------------*