ABAP 长文本编辑器

news2025/3/22 3:33:03

加个屏幕
在这里插入图片描述

*&---------------------------------------------------------------------*
*& Report YDEMO2
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ydemo2.

" 长文本对象容器
DATA: gr_ctn_text TYPE REF TO cl_gui_custom_container,
      gr_textedit TYPE REF TO cl_gui_textedit,
      gt_tline    TYPE STANDARD TABLE OF tline,
      gs_tline    TYPE tline,
      gs_thead    TYPE thead,
      gt_textline TYPE TABLE OF textline,
      gv_edit     TYPE c.

CALL SCREEN 9001.

*&---------------------------------------------------------------------*
*& Module STATUS_9001 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_9001 OUTPUT.

  gs_thead = VALUE #( tdid     = 'Z001'
                      tdname   = '10000001'
                      tdspras  = '1'
                      tdobject = 'ZGTS01' ).

  PERFORM frm_set_ltext.

ENDMODULE.


*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9001  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_9001 INPUT.

  PERFORM frm_save_ltext.

ENDMODULE.

*&---------------------------------------------------------------------*
*& Form frm_set_ltext
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_set_ltext .

*&-- 构建容器和文本框
  IF gr_ctn_text IS INITIAL.

    gr_ctn_text = NEW #( container_name = 'CC_BZ' ).
    gr_textedit = NEW #( wordwrap_mode              = cl_gui_textedit=>wordwrap_at_fixed_position
                         wordwrap_to_linebreak_mode = cl_gui_textedit=>true
                         parent                     = gr_ctn_text ).

    " 去掉状态栏和工具栏
    gr_textedit->set_statusbar_mode( statusbar_mode = cl_gui_textedit=>false ).
    gr_textedit->set_toolbar_mode( toolbar_mode  = cl_gui_textedit=>false ).

    " 显示/编辑
    gr_textedit->set_readonly_mode( readonly_mode = COND #( WHEN gv_edit = 'X' THEN '0'
                                                            ELSE '1' ) ).

  ENDIF.

*&-- 全局文本
  IF gt_tline IS INITIAL.

    " 读取初始长文本
    CALL FUNCTION 'READ_TEXT'
      EXPORTING
        id       = gs_thead-tdid
        language = gs_thead-tdspras
        name     = gs_thead-tdname
        object   = gs_thead-tdobject
      TABLES
        lines    = gt_tline
      EXCEPTIONS
        OTHERS   = 1.

    IF gt_tline IS NOT INITIAL.

      " 转换流文本
      CALL FUNCTION 'CONVERT_ITF_TO_STREAM_TEXT'
        EXPORTING
          language    = '1'
        TABLES
          itf_text    = gt_tline
          text_stream = gt_textline
        EXCEPTIONS
          OTHERS      = 1.

      " 回显编辑框
      gr_textedit->set_text_as_stream( text = gt_textline ).

    ENDIF.

  ENDIF.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form frm_save_ltext
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_save_ltext .

  DATA: lv_input_check TYPE c,
        lv_subrc       TYPE i,
        lt_table       TYPE STANDARD TABLE OF tdline,
        lv_modify      TYPE i.

*&-- 写入长文本
  CALL METHOD gr_textedit->get_text_as_r3table(
    IMPORTING
      table       = lt_table
      is_modified = lv_modify
  ).
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    EXIT.
  ELSEIF lv_modify = 1.
    CLEAR gt_tline[].
    LOOP AT lt_table INTO gs_tline-tdline.
      APPEND gs_tline TO gt_tline.
    ENDLOOP.
*&-- 调用方法创建保存文本对象
    CALL FUNCTION 'CREATE_TEXT'
      EXPORTING
        fid       = gs_thead-tdid
        flanguage = gs_thead-tdspras
        fname     = gs_thead-tdname
        fobject   = gs_thead-tdobject
      TABLES
        flines    = gt_tline
      EXCEPTIONS
        no_init   = 1
        no_save   = 2
        OTHERS    = 3.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      EXIT.
    ENDIF.
  ENDIF.

ENDFORM.

效果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2319308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MATLAB 调用arduino uno

为了授课&#xff0c;必须重新把arduino用上。 采用MATLAB编码&#xff0c;可以简化相关程序授课部分 1 安装包 MATLAB Support Package for Arduino Hardware - File Exchange - MATLAB Central (mathworks.com) 需要这个插件。 当然也可下载simulink的模块&#xff0c;但…

Git——分布式版本控制工具使用教程

本文主要介绍两种版本控制工具——SVN和Git的概念&#xff0c;接着会讲到Git的安装&#xff0c;Git常用的命令&#xff0c;以及怎么在Vscode中使用Git。帮助新手小白快速上手Git。如果想直接上手用Vscode操作远程仓库则直接看7和9即可&#xff01; 目录 1. SVN和Git介绍 1.1 …

【数据分析】数据筛选与访问行列元素3

访问元素 .loc属性可以通过传入index的值访问行数据。 .loc属性允许传入两个参数&#xff0c;分别是index的值和columns的值&#xff0c;参数间用“逗号”隔开&#xff0c;这样便可以访问数据中的元素。 1. 访问单个元素 访问单个元素比较简单&#xff0c;只需要通过它的in…

爬虫——playwright获取亚马逊数据

目录 playwright简介使用playwright初窥亚马逊安装playwright打开亚马逊页面 搞数据搜索修改bug数据获取翻页优化结构 简单保存 playwright简介 playwright是微软新出的一个测试工具&#xff0c;与selenium类似&#xff0c;不过与selenium比起来还是有其自身的优势的&#xff…

大数据学习(77)-Hive详解

&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一…

汽车一键启动PKE无钥匙系统

移动管家汽车一键启动PKE舒适无钥匙遥控远程系统是一种集成了多项先进功能的汽车电子系统&#xff0c;主要目的是提高驾驶便利性和安全性。 以下是该系统的具体功能&#xff1a; 功能类别 功能描述 无钥匙进入 感应无钥匙进入&#xff08;自动感应开关门&#xff09; 一…

Postman 新手入门指南:从零开始掌握 API 测试

Postman 新手入门指南&#xff1a;从零开始掌握 API 测试 一、Postman 是什么&#xff1f; Postman 是一款功能强大的 API 开发与测试工具&#xff0c;支持 HTTP 请求调试、自动化测试、团队协作等功能。无论是开发人员还是测试工程师&#xff0c;都可以用它快速验证接口的正确…

猿大师中间件:如何在最新Chrome浏览器Web网页内嵌本地OCX控件?

OCX控件是ActiveX控件的一种&#xff0c;主要用于在网页中嵌入复杂的功能&#xff0c;如图形渲染、多媒体播放等&#xff0c;可是随着谷歌Chrome等主流浏览器升级&#xff0c;目前已经不支持微软调用ActiveX控件了&#xff0c;如果想调用OCX控件用IE浏览器或者国产双擎浏览器&a…

[数据结构]排序之 归并排序(有详细的递归图解)

一、非递归 基本思想&#xff1a; 归并排序&#xff08; MERGE-SORT &#xff09;是建立在归并操作上的一种有效的排序算法 , 该算法是采用分治法&#xff08; Divide andConquer&#xff09;的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#x…

构建第二个Django的应用程序

构建第二个应用程序 文章目录 构建第二个应用程序1.打开Visual Studio code 左上角 点击fike 点击open folder2.打开上次的Django项目 并按图示点击进入终端3.在下方终端输入创建app01项目的命令 接着在左上方会出现一个app01的项目4.接着在Hellodjango的项目里settings.py中定…

图像分割的mask有空洞怎么修补

分享一个对实例分割mask修补的方法&#xff0c;希望对大家有所帮助。 1. 这是我准备分割的图片 2 分割结果 可以看到衣服部分有一些没分割出来&#xff0c;二值化图片能清晰看到衣服部分有些黑色未分出的地方。 3 补全mask区域 import cv2 import numpy as npdef fill_mask_h…

HarmonyOS NEXT 组件状态管理的对比

在HarmonyOS NEXT开发中&#xff0c;组件状态管理是构建动态用户界面的核心。本文将深入探讨State、Prop、Link和ObjectLink这四种常见的状态管理装饰器&#xff0c;并通过示例代码进行对比分析&#xff0c;以帮助同学们更好地理解和选择合适的状态管理方式。 一、装饰器概述 …

C#通过API接口返回流式响应内容---SignalR方式

1、背景 在上两篇《C#通过API接口返回流式响应内容—分块编码方式》和《C#通过API接口返回流式响应内容—SSE方式》实现了流式响应的内容。 上面的这两个主要是通过HTTP的一些功能&#xff0c;除了这些之外&#xff0c;还有WebSocket的方式。C#中的WebSocket的有比较多的方案&…

vulhub靶机----基于docker的初探索,环境搭建

环境搭建 首先就是搭建docker环境&#xff0c;这里暂且写一下 #在kali apt update apt install docker.io配置docker源&#xff0c;位置在/etc/docker/daemon.json {"registry-mirrors": ["https://5tqw56kt.mirror.aliyuncs.com","https://docker…

AI对话框实现

请注意&#xff0c;功能正在开发中&#xff0c;代码和注释不全 场景&#xff1a;AI对话框实现&#xff0c;后端调用AI大模型。前端发送请求后端返回流式数据&#xff0c;进行一问一答的对话功能&#xff08;场景和现在市面上多个AI模型差不多&#xff0c;但是没人家功能健全&a…

可视化图解算法:删除链表中倒数第n个节点

1. 题目 描述 给定一个链表&#xff0c;删除链表的倒数第 n 个节点并返回链表的头指针 例如&#xff0c; 给出的链表为: 1→2→3→4→5, n 2. 删除了链表的倒数第 n 个节点之后,链表变为1→2→3→5. 数据范围&#xff1a; 链表长度 0≤n≤1000&#xff0c;链表中任意节点的…

智能汽车图像及视频处理方案,支持视频智能拍摄能力

美摄科技&#xff0c;作为智能汽车图像及视频处理领域的先行者&#xff0c;凭借其卓越的技术实力和前瞻性的设计理念&#xff0c;为全球智能汽车制造商带来了一场视觉盛宴的革新。我们自豪地推出——美摄科技智能汽车图像及视频处理方案&#xff0c;一个集高效性、智能化、画质…

微信小程序的业务域名配置(通过ingress网关的注解)

一、背景 微信小程序的业务域名配置&#xff08;通过kong网关的pre-function配置&#xff09;是依靠kong实现&#xff0c;本文将通过ingress网关实现。 而我们的服务是部署于阿里云K8S容器&#xff0c;当然内核与ingress无异。 找到k8s–>网络–>路由 二、ingress注解 …

Matlab 舰载机自动着舰控制系统研究

1、内容简介 Matlab 188-舰载机自动着舰控制系统研究 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略

WindowsAD域服务权限提升漏洞

WindowsAD 域服务权限提升漏洞&#xff08;CVE-2021-42287, CVE-2021-42278&#xff09; 1.漏洞描述 Windows域服务权限提升漏洞&#xff08;CVE-2021-42287, CVE-2021-42278&#xff09;是由于Active Directory 域服务没有进行适当的安全限制&#xff0c;导致可绕过安…