ABAP 显示长文本
业务背景:目前项目上 采购订单打印输出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 显示长文本相关推荐
- 【转载】ABAP自定义长文本的处理
SAP中所有的长文本都存在如下两张表中: STXH 长文本的抬头信息 STXL 长文本的明细信息 长文本在使用前,需要先进行配置,如果不配置是不可能往表STXH和STXL中写入文本值的. 配置在视图V ...
- android基础知识学习(1) TextView属性大全+单行显示长文本
android:autoLink 设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/phone/map/all) androi ...
- android ExpandableTextView-自定义可以动态展开/收缩显示长文本的TextView
前言: 为了保持界面UI的整洁以及将尽可能多的内容显示在有限的空间中,往往需要将长度过长的TextView进行内容截取.本控件满足了TextView可在"完整内容"与"截 ...
- 砖垛之ExpandableTextView-自定义可以动态展开/收缩显示长文本的TextView
一.实现效果 二.项目地址: https://github.com/Carbs0126/ExpandableTextView 三.集成 app的build.gradle文件里添加依赖 compile ...
- 在notebook中如何能完整的显示长文本内容
print(eth_sample.iloc[0:1,0]) 输出结果: to the recent break=\r... Name: content, dtype: object 内容无法显示完全. ...
- TextView 单行显示长文本
android:singleLine="true"//单行显示 android:ellipsize="end"//省略号出现在末尾 http://blog.cs ...
- BAPI_EQUI_CREATE(IE01/IE02)创建设备后,创建长文本问题总结
设备创建长文本问题总结 问题描述 在开发实施中,当我们通过BAPI_EQUI_CREATE创建设备后,我们希望创建"附件数据 1"页签中的长文本: 其中,创建设备使用:BAPI_E ...
- css截断长文本显示
实现 截断长文本显示处理,以前是通过后台的截取,但这种方法容易丢失数据,不利于SEO. 而通过前端css的截断,则灵活多变,可统一运用与整个网站. 这项技术主要运用了text-overflow属性,这 ...
- ABAP 长文本内容数据迁移 SAP
SAP 长文本的内容具体存在 STXL STXH两张表.STXH 主要存长文本抬头明细信息. STXL 存长文本的具体内容. 值得注意的是长文本内容在STXL进行存储的内容是转换成其他格式存储,导致不 ...
最新文章
- Python爬虫入门教程 54-100 博客园等博客网站自动评论器
- 一个古老的问题HashMap与Hashtable区别
- mysql布隆过滤器源码_布隆过滤器(Bloom Filter)的原理和实现
- 【ES6】 let与const详解
- 理解C#值类型与引用类型(收藏)
- IPv6系列(一)—快速入门
- js 手机端触发事事件、javascript手机端/移动端触发事件
- 快速搞懂 SQL Server 的锁定和阻塞
- [转]“Ceph浅析”系列之(—)—Ceph概况
- python 模糊匹配_很冷门,但非常实用的 Python 库
- UVA-10817- Headmaster's Headache(状压DP)
- 灰色系统理论与灰色关联分析模型
- Pytorch中的forward的理解
- CTF 关于linux 7z解压的一点trick
- 企业微信添加微信好友失败怎么办?
- 决策规划算法相关知识之 POMDP模型
- mac在使用zsh后各种问题解决
- iftop相关参数及说明
- 【pythonCAN】基于Kvaser开发CAN总线分析工具
- 我的世界神奇宝贝服务器修改神兽刷新率,我的世界神奇宝贝1period;12怎么调神兽刷新率 | 手游网游页游攻略大全...
热门文章
- Android Studio Chipmunk 发布
- linux 内核 输出,Linux基础命令---dmeg显示内核输出
- 单元测试mock框架——jmockit实战
- openwrt 打印 APP_HP Smart Tank 511/518/519利用安卓手机设置无线局域网打印方法之二...
- 校园WiFi软件-无为WiFi-正式启航了
- python集合是什么意思_Python集合是什么,为什么应该使用以及如何使用?
- Bia布刷题日记2022/2/17
- Linux 学习笔记(六):Linux
- Word2019输入(码字)或删除操作出现卡顿问题
- 晚睡原来是一种病——拖延症