一
前言
SE16N 是ECC/S4中查看表内容的一个工具,方便实用. 前面写了一系列关于优化SE16N的文章.
详见链接
https://mp.weixin.qq.com/mp/homepage?__biz=Mzg4MjA1MjE4NQ==&hid=29&sn=6ea0f2777b31f2b633c2bcb74940ff4e
最近又找出了两个优化点.
本文主要介绍SE16N的双击跳转及字段描述优化
二
双击跳转
很多报表包括SAP标准报表都有双击跳转功能.
比如 MB51(物料凭证查询),双击查询出来的物料凭证编号,跳转到MIGO 显示物料凭证
SE16N显示表内容的时候,双击单据相关的字段,跳转到相关主数据或单据显示. 岂不是也挺方便的.
找到SE16N 处理双击的方法 LSE16NLCL 287行左右 method handle_double_click.在方法的开头创建隐式增强
隐式增强中获取双击的单元格,调用通用函数跳转. 这里有个奇怪的知识点:
有些时候<all_table_cell>是ALV的内容, ALV排序会调整,而gd_dref->* 内表是初始查询的内容, ALV排序不会调整它.
有些时候<all_table_cell>没有assign. 此时 gd_dref->* 是ALV的内容, ALV排序会调整它.
暂时没有找到原因. 所以通过判断is assigned 来确定获取双击的行的数据内容
实现效果,显示VBAK表内容时, 双击销售凭证,跳转到VA03显示销售订单
三
关于通用跳转
暂时通过函数 Z_BC_REP_CALL_TRANSACTION 中列举出不同的字段名,根据字段名识别对象(单据,主数据)
调用函数 Z_BC_CALL_TRANSACTION 函数中根据传入的对象. 列举出不同对象的调用方式.
这种办法有些欠缺灵活性. 可以作为基础方法,在此基础上可以考虑通过配置表来补充新的跳转方法.(其实代码中的枚举,可以理解为一种静态配置)
四
字段名的优化
定义表的时候,组名称的使用可以方便快速的定义一组重复递进含义的字段
详见链接中的第七章
无峰,公众号:ABAP 技巧与实战ABAP基础知识 数据字典(二 开发篇)
但是几组字段的描述无法分区, SE16N显示时没法区分具体是哪组字段.
优化后
组名称附加在字段描述后,可以区分出这几组字段
当然, 也可以在表ZTBC_ALV中维护字段描述来优化.
详见链接
无峰,公众号:ABAP 技巧与实战SAP小技巧之 改造SE16N(三)
优化方式
五
总结
SE16N作为项目中使用非常多的一个功能. 为了它更加好用. 后面将持续寻找它的改进点.
如果你有好的改进建议,可以留言给我. 一起讨论一下实现的可行性.
THE
END
约定
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
请微信联系管理员:
syjf1976
sharry_xlp
Yannick_Duan
申请进入公众号讨论群提问或者参与话题讨论