原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)
一
前言
书接上文(内表输出使用字段描述)
> 详见链接 无峰,公众号:ABAP 技巧与实战 [ SAP小技巧 优化CL_DEMO_OUTPUT
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247488661&idx=1&sn=93a4cb03456d8d22e01172cac58b0755&chksm=cf5dc9a3f82a40b56aab114d0abcdb6043cedda87a9d3dddd4f927714f37fecad24346a8c1c4&token=106557665&lang=zh_CN#rd)
标准的CL_DEMO_OUTPUT输出固定了窗口输出,并且窗口大小不可调整.这就导致了如果内表字段过多,查看窗口输出内容会比较麻烦
**本文主要介绍CL_DEMO_OUTPUT的优化:调整输出窗口方式及大小**
二
前文实现效果
允许输出工作区,内表时,显示字段描述.
因为输出字段名时,基于HTML特性(CL_DEMO_OUTPUT的内表输出实际是HTML输出及调用内嵌浏览器显示),英文字段名被识别成一个单词,所以显示不换行.
替换成中文后,基于字段的宽度换行.如果一个字段长度为1. 抬头的中文描述就会出现下图的效果. 这个暂时没有优化(涉及到HTML输出表格的调整,比较麻烦)
三
新功能实现
允许控制屏幕输出方式及大小
全屏输出
更大的对话窗口输出
四
实现方式
通过增强实现.
添加结构,整合所有允许的控制参数
基于前文,详见前言中的链接.在类ZCL_DEMO_OUTPUT中添加输入参数
增强 cl_demo_output_html=>handle_output 增强中重写该方法的代码,添加参数传递给
cl_abap_browser=>show_html . 实现对输出窗口的控制.
五
总结
CL_DEMO_OUTPUT针对变量,工作区,内表的输出,实际是生成HTML,然后使用内嵌浏览器cl_abap_browser=>show_html
显示XML内容. 通过调整这个方法的输入参数达成控制输出屏幕方式及大小.
后续考虑了一个优化方向: 多内表输出时, 在前面先输出每个内表的总体信息(内表,描述,条目数). 后面输出每个单独内表的所有内容.
然后通过HTML的超链通过点击内表条目数,跳转到内表内容的显示区域,通过返回链接回到内表清单.
后续有机会了去完成这个功能.
** THE **
** END **
**约定**
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
syjf1976
sharry_xlp
Yannick_Duan
申请进入公众号讨论群提问或者参与话题讨论