原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)
一
前言
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基础知识 数据字典(二 开发篇)
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247487066&idx=1&sn=2d64ba9d14edaf3556f53638418f26af&chksm=cf5dd36cf82a5a7aab1697d78e90f1bb3c08dd86176d31da052d4405d9046ef4e5540b83fef5&token=1100521467&lang=zh_CN#rd)
但是几组字段的描述无法分区, SE16N显示时没法区分具体是哪组字段.
优化后
组名称附加在字段描述后,可以区分出这几组字段
当然, 也可以在表ZTBC_ALV中维护字段描述来优化.
> 详见链接 无峰,公众号:ABAP 技巧与实战 [ SAP小技巧之 改造SE16N(三)
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247485310&idx=1&sn=553de71b38de7b5ced176b766ccb67ad&chksm=cf5dda48f82a535eb1a46435f08ec10410d7a0c8a0357117442a5e363f56e27894b464003307&token=1100521467&lang=zh_CN#rd)
优化方式
五
总结
SE16N作为项目中使用非常多的一个功能. 为了它更加好用. 后面将持续寻找它的改进点.
如果你有好的改进建议,可以留言给我. 一起讨论一下实现的可行性.
** THE **
** END **
**约定**
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
syjf1976
sharry_xlp
Yannick_Duan
申请进入公众号讨论群提问或者参与话题讨论