业务背景:目前项目上  采购订单打印输出EXCEL的需求:允许客户进行长文本编辑、更改后保存到采购订单抬头,并且打印输出到EXCEL,且下次进入到相同的采购订单打印时,能取出相应的长文本进行excel输出。

一般来讲,这种类型于这种编辑后输出的需求直接在ALV上对应的列设置为可编辑即可,但是这次需求不太一样,它是一个长文本输出, 而ALV的列显示最大128位(这里的意思是:如果ALV的列里存了1000位长度的文本,但是它只会显示128位,但是如果输出成EXCEL时候是可以正常把1000位全都输出的)。为了解决alv不能显示长文本的问题,稍微研究了下长文本的形式。

长文本:在SAP内,我是用一个容器来实现的,或者应该不用容器也是可以的(比如docking),在屏幕上画一个容器,然后显示出来。

效果展示

其中保存按钮是当用户在点击后会把当前的文本更新回ALV,取消按钮则不做任何操作直接返回

主要代码

*&---------------------------------------------------------------------*
*& Module STATUS_9100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE STATUS_9100 OUTPUT.SET PF-STATUS 'STATUS_9100'.SET TITLEBAR 'TITLEBAR_9100'.IF LCL_EDITOR IS INITIAL."实例化容器CREATE OBJECT LCL_CONTAINEREXPORTINGCONTAINER_NAME = 'ZCON'."实例化texteditor控制器CREATE OBJECT LCL_EDITOREXPORTING
*       MAX_NUMBER_CHARS           =STYLE                      = 0
*        WORDWRAP_MODE              = CL_GUI_TEXTEDIT=>WORDWRAP_AT_FIXED_POSITION "固定位置显示WORDWRAP_POSITION          = -1WORDWRAP_TO_LINEBREAK_MODE = CL_GUI_TEXTEDIT=>TRUE "可以回车换行
*       FILEDROP_MODE              = DROPFILE_EVENT_OFFPARENT                     = LCL_CONTAINER
*       LIFETIME                   =
*       NAME                       =EXCEPTIONSERROR_CNTL_CREATE          = 1ERROR_CNTL_INIT            = 2ERROR_CNTL_LINK            = 3ERROR_DP_CREATE            = 4GUI_TYPE_NOT_SUPPORTED     = 5OTHERS                     = 6.CALL METHOD LCL_EDITOR->SET_TEXT_AS_R3TABLEEXPORTINGTABLE           = GT_LINESEXCEPTIONSERROR_DP        = 1ERROR_DP_CREATE = 2."隐藏TOOLBARCALL METHOD LCL_EDITOR->SET_TOOLBAR_MODEEXPORTINGTOOLBAR_MODE           = 0EXCEPTIONSERROR_CNTL_CALL_METHOD = 1INVALID_PARAMETER      = 2OTHERS                 = 3.IF SY-SUBRC <> 0.
*     Implement suitable error handling hereENDIF.ENDIF.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9100 INPUT.CLEAR SAVE_CODE.SAVE_CODE = OK_CODE.CLEAR OK_CODE.REFRESH GT_LINES.CASE SAVE_CODE.WHEN 'BACK' OR 'EXIT' OR 'ZCANCEL' OR 'CANCEL'.IF LCL_EDITOR IS NOT INITIAL.CLEAR:LCL_EDITOR.
*        CALL METHOD LCL_EDITOR->FREE.ENDIF.IF LCL_CONTAINER IS NOT INITIAL.CLEAR:LCL_CONTAINER.
*        CALL METHOD LCL_CONTAINER->FREE.ENDIF.LEAVE TO SCREEN 0.WHEN 'ZSAVE'."读取textedictor中的内容并输出CLEAR:GT_LINES.CALL METHOD LCL_EDITOR->GET_TEXT_AS_R3TABLE
*      EXPORTING
*        ONLY_WHEN_MODIFIED     = FALSEIMPORTINGTABLE                  = GT_LINES
*         IS_MODIFIED            =EXCEPTIONSERROR_DP               = 1ERROR_CNTL_CALL_METHOD = 2ERROR_DP_CREATE        = 3POTENTIAL_DATA_LOSS    = 4OTHERS                 = 5.IF G_CG_TYPE EQ 'CGDD'.CLEAR:GS_OUTPUT-ZTEXT_CGDD.APPEND LINES OF GT_LINES TO GS_OUTPUT-ZTEXT_CGDD.ELSEIF G_CG_TYPE EQ 'CGHT'.CLEAR:GS_OUTPUT-ZTEXT_CGDD.APPEND LINES OF GT_LINES TO GS_OUTPUT-ZTEXT_CGHT.ENDIF.IF LCL_EDITOR IS NOT INITIAL.CLEAR:LCL_EDITOR.
*        CALL METHOD LCL_EDITOR->FREE.ENDIF.IF LCL_CONTAINER IS NOT INITIAL.CLEAR:LCL_CONTAINER.
*        CALL METHOD LCL_CONTAINER->FREE.ENDIF.LEAVE TO SCREEN 0.ENDCASE.
ENDMODULE.

ABAP 显示长文本相关推荐

  1. 【转载】ABAP自定义长文本的处理

    SAP中所有的长文本都存在如下两张表中: STXH 长文本的抬头信息 STXL 长文本的明细信息 长文本在使用前,需要先进行配置,如果不配置是不可能往表STXH和STXL中写入文本值的. 配置在视图V ...

  2. android基础知识学习(1) TextView属性大全+单行显示长文本

    android:autoLink 设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/phone/map/all)  androi ...

  3. android ExpandableTextView-自定义可以动态展开/收缩显示长文本的TextView

    前言: 为了保持界面UI的整洁以及将尽可能多的内容显示在有限的空间中,往往需要将长度过长的TextView进行内容截取.本控件满足了TextView可在"完整内容"与"截 ...

  4. 砖垛之ExpandableTextView-自定义可以动态展开/收缩显示长文本的TextView

    一.实现效果 二.项目地址: https://github.com/Carbs0126/ExpandableTextView 三.集成 app的build.gradle文件里添加依赖 compile ...

  5. 在notebook中如何能完整的显示长文本内容

    print(eth_sample.iloc[0:1,0]) 输出结果: to the recent break=\r... Name: content, dtype: object 内容无法显示完全. ...

  6. TextView 单行显示长文本

    android:singleLine="true"//单行显示 android:ellipsize="end"//省略号出现在末尾 http://blog.cs ...

  7. BAPI_EQUI_CREATE(IE01/IE02)创建设备后,创建长文本问题总结

    设备创建长文本问题总结 问题描述 在开发实施中,当我们通过BAPI_EQUI_CREATE创建设备后,我们希望创建"附件数据 1"页签中的长文本: 其中,创建设备使用:BAPI_E ...

  8. css截断长文本显示

    实现 截断长文本显示处理,以前是通过后台的截取,但这种方法容易丢失数据,不利于SEO. 而通过前端css的截断,则灵活多变,可统一运用与整个网站. 这项技术主要运用了text-overflow属性,这 ...

  9. ABAP 长文本内容数据迁移 SAP

    SAP 长文本的内容具体存在 STXL STXH两张表.STXH 主要存长文本抬头明细信息. STXL 存长文本的具体内容. 值得注意的是长文本内容在STXL进行存储的内容是转换成其他格式存储,导致不 ...

最新文章

  1. Python爬虫入门教程 54-100 博客园等博客网站自动评论器
  2. 一个古老的问题HashMap与Hashtable区别
  3. mysql布隆过滤器源码_布隆过滤器(Bloom Filter)的原理和实现
  4. 【ES6】 let与const详解
  5. 理解C#值类型与引用类型(收藏)
  6. IPv6系列(一)—快速入门
  7. js 手机端触发事事件、javascript手机端/移动端触发事件
  8. 快速搞懂 SQL Server 的锁定和阻塞
  9. [转]“Ceph浅析”系列之(—)—Ceph概况
  10. python 模糊匹配_很冷门,但非常实用的 Python 库
  11. UVA-10817- Headmaster's Headache(状压DP)
  12. 灰色系统理论与灰色关联分析模型
  13. Pytorch中的forward的理解
  14. CTF 关于linux 7z解压的一点trick
  15. 企业微信添加微信好友失败怎么办?
  16. 决策规划算法相关知识之 POMDP模型
  17. mac在使用zsh后各种问题解决
  18. iftop相关参数及说明
  19. 【pythonCAN】基于Kvaser开发CAN总线分析工具
  20. 我的世界神奇宝贝服务器修改神兽刷新率,我的世界神奇宝贝1period;12怎么调神兽刷新率 | 手游网游页游攻略大全...

热门文章

  1. Android Studio Chipmunk 发布
  2. linux 内核 输出,Linux基础命令---dmeg显示内核输出
  3. 单元测试mock框架——jmockit实战
  4. openwrt 打印 APP_HP Smart Tank 511/518/519利用安卓手机设置无线局域网打印方法之二...
  5. 校园WiFi软件-无为WiFi-正式启航了
  6. python集合是什么意思_Python集合是什么,为什么应该使用以及如何使用?
  7. Bia布刷题日记2022/2/17
  8. Linux 学习笔记(六):Linux
  9. Word2019输入(码字)或删除操作出现卡顿问题
  10. 晚睡原来是一种病——拖延症