在sap业务系统中,大量用到文本编辑器,用文本编辑器处理内表,本案例主要介绍
如何在屏幕上显示编辑器,退出时将内容输出。
步骤
1 建立屏幕200,在屏幕上拖入控制对象(customcontrol)以及退出按钮,并定义ok_code等操作。
2 定义屏幕的pai ,pbo,代码如下
PROCESS BEFORE OUTPUT.
MODULE STATUS_0200.
*
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0200.
3 分别编辑pai ,pbo,
首先在主程序中定义所需变量和数据对象
DATA:SAVE_CODE TYPE SY-UCOMM,
OK_CODE TYPE SY-UCOMM.
DATA CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA PICTURE TYPE REF TO CL_GUI_PICTURE.
DATA EDITOR TYPE REF TO CL_GUI_TEXTEDIT.
DATA INIT.
DATA M1(256) TYPE C OCCURS 0.
pai模块
MODULE USER_COMMAND_0200 INPUT.
SAVE_CODE = OK_CODE.
CASE SAVE_CODE .
WHEN 'EXIT'.
LEAVE TO SCREEN 0 .
* LEAVE PROGRAM .
ENDCASE.
ENDMODULE. " USER_COMMAND_0200 INPUT
pbo模块
MODULE STATUS_0200 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
IF INIT IS INITIAL.
INIT = 'X'.
CREATE OBJECT CONTAINER EXPORTING CONTAINER_NAME = 'EDIT'.
CREATE OBJECT EDITOR
EXPORTING
PARENT = CONTAINER
WORDWRAP_MODE = CL_GUI_TEXTEDIT=>WORDWRAP_AT_FIXED_POSITION
WORDWRAP_POSITION = 256
WORDWRAP_TO_LINEBREAK_MODE = CL_GUI_TEXTEDIT=>TRUE.
ENDIF.
CALL METHOD EDITOR->SET_TEXT_AS_R3TABLE
EXPORTING
TABLE = M1.
ENDMODULE. " STATUS_0200 OUTPUT
最后在 START-OF-SELECTION中调用屏幕200,并输出编辑框内容
START-OF-SELECTION.
CALL SCREEN 200.
REFRESH M1.
CALL METHOD EDITOR->GET_TEXT_AS_R3TABLE
IMPORTING TABLE = M1.
LOOP AT M1 INTO LINE.
WRITE:/ LINE.
ENDLOOP.