ABAP 双击输入框弹出长文本框
开发的时候会碰到输入内容过长,导致看起来很不方便,这个时候就需要用到长文本框了
设置输入框
选中 回应双击 事件
定义 GUI-STATSUS
设置输入框 双击事件 按钮
设置按钮功能
调用函数 TERM_CONTROL_EDIT
DATA: ls_table TYPE textlines.
ls_table-line1 = gv_input .
APPEND ls_table TO gt_table.
CALL FUNCTION 'TERM_CONTROL_EDIT'
EXPORTING
titel = '请输入长文本:'
langu = sy-langu
TABLES
textlines = gt_table
EXCEPTIONS
user_cancelled = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
CLEAR gv_input.
LOOP AT gt_table INTO DATA(ls_line).
gv_input = gv_input && ls_line-line1 && ls_line-line2 && ls_line-line3 && ls_line-line4.
ENDLOOP.
REFRESH gt_table.
* 强制触发PBO
CALL METHOD cl_gui_cfw=>set_new_ok_code( 'RELOAD' ).
完整代码
*&---------------------------------------------------------------------*
*& Report ZTEST
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ztest.
DATA gv_input TYPE char255.
DATA: g_container TYPE REF TO cl_gui_custom_container,
g_editor TYPE REF TO cl_gui_textedit.
DATA gt_table TYPE TABLE OF textlines.
CALL SCREEN 9000.
*&---------------------------------------------------------------------*
*& Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_9000 OUTPUT.
SET PF-STATUS 'STATUS'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_9000 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'CLICK'.
DATA: ls_table TYPE textlines.
ls_table-line1 = gv_input .
APPEND ls_table TO gt_table.
CALL FUNCTION 'TERM_CONTROL_EDIT'
EXPORTING
titel = '请输入长文本:'
langu = sy-langu
TABLES
textlines = gt_table
EXCEPTIONS
user_cancelled = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
CLEAR gv_input.
LOOP AT gt_table INTO DATA(ls_line).
gv_input = gv_input && ls_line-line1 && ls_line-line2 && ls_line-line3 && ls_line-line4.
ENDLOOP.
REFRESH gt_table.
* 强制触发PBO
CALL METHOD cl_gui_cfw=>set_new_ok_code( 'RELOAD' ).
WHEN OTHERS.
ENDCASE.
ENDMODULE.