参考文章:https://blog.csdn.net/SAPmatinal/article/details/130882962
先看效果,在输入框先来一段《赤壁赋》
然后点击 ‘保存输出’按钮,就能把输入内容从表里读取并输出来
源代码:
*&---------------------------------------------------------------------*
*& Report ZCYCLE060
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zcycle060.DATA: ok_code TYPE sy-ucomm.CONSTANTS: gc_text_line_length TYPE i VALUE 72.
TYPES: text_table_type(gc_text_line_length) TYPE c OCCURS 0.
DATA: gv_splitter TYPE REF TO cl_gui_easy_splitter_container.
DATA: gv_custom_container TYPE REF TO cl_gui_custom_container.
DATA: gv_text_editor TYPE REF TO cl_gui_textedit.
DATA: lt_text_table TYPE text_table_type,ls_text_table_wa(gc_text_line_length) TYPE c,gv_xthead_updkz TYPE i.
CALL SCREEN 100.MODULE splitter_control_vorbereiten OUTPUT.IF gv_splitter IS INITIAL.CREATE OBJECT gv_custom_containerEXPORTINGcontainer_name = 'SPLITTER_CONTAINER'.CREATE OBJECT gv_splitterEXPORTINGparent = gv_custom_containerorientation = 1 "方向: 0 = 垂直 , 1 = 水平sash_position = 39.ENDIF.IF gv_text_editor IS INITIAL.CREATE OBJECT gv_text_editorEXPORTINGparent = gv_splitter->bottom_right_container
* wordwrap_mode = cl_gui_textedit=>wordwrap_at_windowborderwordwrap_to_linebreak_mode = cl_gui_textedit=>false "自动换行模式关闭"wordwrap_to_linebreak_mode = cl_gui_textedit=>trueEXCEPTIONSerror_cntl_create = 1error_cntl_init = 2error_cntl_link = 3error_dp_create = 4gui_type_not_supported = 5."CALL METHOD gv_text_editor->set_readonly_mode EXPORTING readonly_mode = cl_gui_textedit=>true. "输入框只读模式开启CALL METHOD gv_text_editor->set_readonly_mode EXPORTING readonly_mode = cl_gui_textedit=>false. "输入框只读模式关闭ENDIF.ENDMODULE. " SPLITTER_CONTROL_VORBEREITEN OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.SET PF-STATUS 'ZCYCLE'.* SET TITLEBAR 'xxx'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module EXIT INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE exit INPUT.LEAVE TO SCREEN 0.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.DATA t_tdline1 TYPE TABLE OF standard .
* Texttabelle aus Control abholenCASE ok_code.WHEN 'ZSAVE'.CALL METHOD gv_text_editor->get_text_as_stream "取屏幕上输入的文本存到 lt_text_tableIMPORTINGtext = lt_text_tableis_modified = gv_xthead_updkzEXCEPTIONSerror_dp = 1error_cntl_call_method = 2OTHERS = 3.IF sy-subrc = 0.cl_demo_output=>write( lt_text_table[] ). "定义哪些东西需要输出,可以是表,也可以是字段cl_demo_output=>display( ). "一次性把 write进来的元素 输出ENDIF.* CALL METHOD gv_text_editor->get_text_as_r3table
* IMPORTING
* table = t_tdline1.
* IF sy-subrc = 0.
*
* ENDIF.ENDCASE.
ENDMODULE.
100屏幕设计
去SE80输入函数组 SLVC_FULLSCREEN 拉取标准ALV图标过来
做一丢丢改造
这里主要是用于程序退出功能
到这里就完成了。
程序会把屏幕上输入的文字传到内表 lt_text_table 里去
所以就是获取到屏幕上输入的文本框内容了,如果要做其它功能,就可以往下继续做了