通过定制控制设计文本编辑器

1、创建屏幕100,

2、在屏幕上添加自定义控制对象元素和退出、输出按钮

3、代码实现部分:

*&---------------------------------------------------------------------*
*& Report  YTEST020
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ytest020.

*功能码返回值
DATA:ok_code TYPE sy-ucomm,
      save_ok TYPE sy-ucomm.

**初始化标识字段定义*定制控制和编辑器
DATA:init,
      container TYPE REF TO cl_gui_custom_container,
      editor TYPE REF TO cl_gui_textedit.

*定义编辑器读出内部

DATA:m1(256TYPE OCCURS 0,
      line(256TYPE c.

*m1 like standard table of line .

*输出初始数据
line '请输入:'.
APPEND line TO m1.


*直接调用窗口
CALL SCREEN 100.

*清空内表重新从编辑器读入
REFRESH m1.
CALL METHOD editor->get_text_as_r3table
  IMPORTING
    table m1.
*逐行输出
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 'WRITE'.
      LEAVE TO SCREEN 0.       “离开屏幕

    WHEN 'EXIT'.
      LEAVE PROGRAM.            “离开程序


  ENDCASE.

ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
*  SET PF-STATUS 'xxxxxxxx'.
*  SET TITLEBAR 'xxx'.
  IF init IS INITIAL.
    CREATE OBJECT:container EXPORTING container_name 'P1'.

    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_0100  OUTPUT

INCLUDE ytest020_exiti01.

原文地址:https://www.cnblogs.com/caizjian/p/3333047.html