ABAP 双击输入框弹出长文本框

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.
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值