1.1在屏幕中创建多行文本输入框
在日常业务中,有时需要录入一些较长的文本信息(如产品的介绍信息)。SAP中的标准文本输入对象基本都是单行的,在字数录入上有很大的限制。下面将介绍如何创建多行文本录入。
STEP | 01 首先需要创建一个屏幕1001,增加GUI的状态,方便系统功能操作控制。
STEP | 02 在屏幕中加入一个容器对象,用于存放自定义的文本控制组件。
STEP | 03 在主程序中需要定义一个容器对象和文本编辑器对象,在调用屏幕时再对容器对象及编辑器进行初始化。
*&---------------------------------------------------------------------*
*& Report ZSCREEN08
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zscreen08.
*&---------------------------------------------------------------------*
*& Module STATUS_1001 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
DATA : editor_container TYPE REF TO cl_gui_custom_container, "定义容器对象
editor TYPE REF TO cl_gui_textedit. "定义一个文本编辑对象
CALL SCREEN 1001.
MODULE status_1001 OUTPUT.
SET PF-STATUS 'T001'.
PERFORM create_container_object USING editor_container 'EDITOR'.
PERFORM create_editor_object USING editor editor_container.
* SET TITLEBAR 'xxx'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_1001 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_1001 INPUT.
CASE sy-ucomm.
WHEN '&EXIT'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Form CREATE_CONTAINER_OBJECT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_EDITOR_CONTAINER text
* -->P_0028 text
*----------------------------------------------------------------------*
FORM create_container_object USING p_container TYPE REF TO cl_gui_custom_container
p_container_name.
CHECK p_container IS INITIAL.
CREATE OBJECT p_container "初始化容器对象
EXPORTING
container_name = p_container_name
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CREATE_EDITOR_OBJECT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_EDITOR text
* -->P_EDITOR_CONTAINER text
*----------------------------------------------------------------------*
FORM create_editor_object USING p_editor TYPE REF TO cl_gui_textedit
p_container TYPE REF TO cl_gui_custom_container.
CHECK p_editor IS INITIAL.
CREATE OBJECT p_editor "初始化文本编辑器
EXPORTING
parent = p_container
wordwrap_mode = cl_gui_textedit=>wordwrap_at_fixed_position
* wordwrap_position = c_line_length
wordwrap_to_linebreak_mode = cl_gui_textedit=>false
max_number_chars = 100000
EXCEPTIONS
OTHERS = 1.
ENDFORM.