`

定义新的长文本对象并用cl_gui_textedit编辑

阅读更多
*&---------------------------------------------------------------------*
*& Report  Y_PCITCAO_TEST_TEXTEDIT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  Y_PCITCAO_TEST_TEXTEDIT.
TABLES: sscrfields.
DATA: x_docking TYPE REF TO cl_gui_docking_container,
      x_editor  TYPE REF TO cl_gui_textedit,
      lines TYPE STANDARD TABLE OF tline ,
      header LIKE thead .

TYPES: BEGIN OF textline,
   line(255) TYPE c,
END OF textline .
DATA texttable TYPE TABLE OF textline  .

PARAMETERS:p_name(70) DEFAULT '12345678'.
SELECTION-SCREEN FUNCTION KEY 1.
SELECTION-SCREEN FUNCTION KEY 2.

INITIALIZATION.
  sscrfields-functxt_01 = 'Save'.
  sscrfields-functxt_02 = 'Read'.

AT SELECTION-SCREEN OUTPUT.
  IF x_docking IS INITIAL .
    CREATE OBJECT x_docking
    EXPORTING
        repid                       = sy-repid
        dynnr                       = sy-dynnr
        side                        = 4
        extension                   = '255'
    EXCEPTIONS
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5.

    CREATE OBJECT x_editor
      EXPORTING
          parent                    = x_docking
          wordwrap_mode             = 2
          wordwrap_position         = 72
          max_number_chars          = 100000.
  ENDIF .

AT SELECTION-SCREEN.
  header-tdobject  = 'TEXT'.
  header-tdname    = p_name.
  header-tdid      = 'ST'.
  header-tdspras   = sy-langu.

  CASE sy-ucomm .
    WHEN 'FC01'.
      PERFORM savetext.
    WHEN 'FC02'.
      PERFORM readtext.
  ENDCASE.

*&---------------------------------------------------------------------*
*&      Form  savetext
*&---------------------------------------------------------------------*
FORM savetext.
  CALL METHOD x_editor->get_text_as_stream
    IMPORTING
      text                   = texttable
    EXCEPTIONS
      error_dp               = 1
      error_cntl_call_method = 2
      OTHERS                 = 3.

  CALL FUNCTION 'CONVERT_STREAM_TO_ITF_TEXT'
    EXPORTING
      language    = sy-langu
    TABLES
      text_stream = texttable
      itf_text    = lines.

  CALL FUNCTION 'SAVE_TEXT'
    EXPORTING
      header          = header
      savemode_direct = 'X'
    TABLES
      lines           = lines
    EXCEPTIONS
      id              = 1
      language        = 2
      name            = 3
      object          = 4
      OTHERS          = 5.
  IF sy-subrc = 0.
    MESSAGE s000(oo) WITH '保存成功'.
    COMMIT WORK.
  ELSE.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
ENDFORM.                    "savetext

*&---------------------------------------------------------------------*
*&      Form  readtext
*&---------------------------------------------------------------------*
FORM readtext.
  CLEAR:texttable,texttable[].

  CALL FUNCTION 'READ_TEXT'
    EXPORTING
      id                      = header-tdid
      language                = sy-langu
      name                    = p_name
      object                  = header-tdobject
    TABLES
      lines                   = lines
    EXCEPTIONS
      id                      = 1
      language                = 2
      name                    = 3
      not_found               = 4
      object                  = 5
      reference_check         = 6
      wrong_access_to_archive = 7
      OTHERS                  = 8.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  CALL FUNCTION 'CONVERT_ITF_TO_STREAM_TEXT'
    EXPORTING
      language    = sy-langu
    TABLES
      itf_text    = lines
      text_stream = texttable.

  CALL METHOD x_editor->set_text_as_stream
    EXPORTING
      text            = texttable
    EXCEPTIONS
      error_dp        = 1
      error_dp_create = 2
      OTHERS          = 3.
ENDFORM.                    "readtext

注:本例中长文本object是系统自带的,如本例的tdobject(TEXT)和tdid(ST),也可以在需要在表TTXOB和TTXID中维护(TCODE:SE75)
分享到:
评论

相关推荐

    ABAP 屏幕设计中添加文本编辑器

    ABAP 屏幕设计中添加文本编辑器需要建立屏幕、定义屏幕的 PAI 和 PBO、使用 CL_GUI_TEXTEDIT 编辑器、使用 CONTAINER 和 PICTURE 对象、处理用户输入、输出编辑框内容和使用 REFRESH 语句刷新数据。

    TextEdit文本编辑器

    TextEdit文本编辑器是一款基于C++编写的简单文本编辑软件,对于初学者来说,它是一个很好的学习资源,可以深入了解文本编辑器的基本功能实现和C++编程技术。以下将详细阐述其核心知识点: 1. C++语言基础:TextEdit...

    TextEdit_QT5.zip

    `TextEdit_QT5.zip` 是一个与Qt开源社区相关的压缩包,它包含了一个基于Qt框架的多文档编辑器项目。这个编辑器最初是使用Qt 4开发的,但经过修改,现在可以在更新的Qt 5环境中编译和运行。这个软件包不仅提供了源...

    TEXTEDIT_vb6_源码

    "TEXTEDIT_vb6_源码" 是一个基于Visual Basic 6(VB6)开发的项目,主要目标是实现一个增强型的文本编辑器。这个编辑器不仅具有基础的文本编辑功能,还集成了对RichText的支持,提升了用户体验并扩展了编辑器的功能...

    Delphi TextEdit 仿RTF编辑器

    本项目“Delphi TextEdit 仿RTF编辑器”是一个利用Delphi编写的文本编辑工具,其目标是提供一个类似于RTF(Rich Text Format)编辑器的功能,但相比系统自带的记事本,它提供了更丰富的文本处理能力。 RTF是一种...

    QmlTextEdit带滚动条QmlTextEditScrollBar.7z

    在QML(Qt Quick)中,`QmlTextEdit` 是一个用于显示和编辑文本的组件。这个`QmlTextEditScrollBar`可能是一个自定义实现,它为`QmlTextEdit`添加了滚动条功能,因为默认的`QmlTextEdit`在文本内容过多时可能不会...

    TextEdit

    TextEdit是一款基于C语言开发的文本编辑器,它利用操作系统API来实现基本的文本编辑功能。在编程领域,直接调用API(Application Programming Interface)是一种常见的方法,它允许开发者使用操作系统提供的服务,...

    Qt:textEdit转PDF和打印

    首先,Qt的textEdit是一个富文本编辑器,它允许用户输入、编辑和显示带有格式的文本,如字体、颜色、大小等。要将textEdit中的内容导出为PDF,我们需要利用Qt的QPrinter和QPrintPreviewDialog类。QPrinter提供打印...

    ABAP SQL 语句 动态 操作

    使用`CL_GUI_CUSTOM_CONTAINER`和`CL_GUI_TEXTEDIT`对象创建了多个文本编辑器,分别用于显示输入的SQL语句、执行结果和错误信息。这提供了用户友好的界面,允许直接编辑和查看SQL操作的结果。 5. **数据容器和ALV...

    VC 编写的功能超多的Rich textEdit文本编辑器.rar

    VC 编写的功能超多的Rich textEdit文本编辑器,有兴趣的朋友汉化一下菜单,它可以选择字体,改变字体样式,调整段落结构,下划线,日期时间显示,字体颜色改变,上下角标,编号方式的选择,缩进等,可以像Word一样自动...

    pyqt_text_editor:一个简单的独立PyQt5文本编辑器

    供用户输入不超过140个字符的文本包含用于修改文本样式(例如文本字体或颜色)的控件查看向用户指示已键入多少个字符提供带有一些相关信息的状态栏记住会话之间的GUI状态的至少一个方面(例如几何图形),...

    cpp-ImGuiColorTextEdit为ImGui着色文本编辑器

    cpp-ImGuiColorTextEdit为ImGui着色文本编辑器是一款专为C++编程环境设计的文本编辑器组件,它基于流行的ImGui库扩展而来。ImGui是一个轻量级的、易于集成的库,用于在各种应用中实现即时GUI(图形用户界面)元素。...

    -QT(文本编辑器的开发)

    基于 ARM 系统的文本编辑器开发 本文将详细介绍基于 ARM 系统的文本编辑器开发,包括新建文件、文件保存、文件另存为、打开、关闭、退出、撤销、复制、剪切、粘贴、文本查找等功能的实现。 一、文本编辑器的开发 ...

    matlab开发-TextEdit

    `TextEdit.m`可能定义了回调函数来处理用户的交互事件,比如打开文件、保存文件、复制和粘贴文本等。 1. **GUI设计**:MATLAB的GUIDE(图形用户界面开发环境)允许开发者通过拖放的方式创建界面组件。在这个文本...

    VB程序编写的文本编辑器

    【VB程序编写的文本编辑器】是一个基于Visual Basic(VB)开发的软件工具,用于创建、查看和编辑纯文本文件。在计算机编程领域,文本编辑器是程序员日常工作中不可或缺的一部分,因为它们提供了对代码的高效管理和...

    一个简单的文本编辑器

    GUI文本编辑器通常具有直观的用户界面,如Microsoft记事本、Apple的TextEdit,或者开发人员常用的Sublime Text、Atom和Visual Studio Code等。这些编辑器提供了丰富的功能,如代码高亮、自动完成、多文档查看等,使...

    简单的网页文本编辑器

    网页文本编辑器是一种在线工具,允许用户在网页上创建、编辑和格式化文本。它通常包含各种功能,如改变字体、调整颜色、设置大小以及应用不同的样式,以满足用户多样化的需求。在“简单的网页文本编辑器”中,我们...

Global site tag (gtag.js) - Google Analytics