如何在屏幕上显示编辑器,退出时讲内容输出-abap

来源:互联网 发布:opensuse 知乎 编辑:程序博客网 时间:2024/04/29 04:30

在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(256TYPE 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.