原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)
**点击蓝字** 关注我们
前言
SE16N是SAP
ERP软件提供的一个表内容浏览/编辑器的事务代码.一般情况下,用于查看单表的数据内容.也可以用于编辑表内容.改造SE16N系列就是尝试对SE16N增强一些功能.让它变得更加好用.
**本文介绍了怎么通过增强去调整SE16N的选择屏幕和清单抬头字段描述**
为什么要调整字段描述
原因很多,最主要的一个: 我高兴.
• 不想增强或修改数据元素的描述(因为会影响其他输入屏幕),只想在SE16N中改变描述.
• 部分CDS视图字段显示不了描述
部分CDS视图无法显示描述
大部分CDS视图在SE16N中显示时,都能够显示字段的描述,但是如果视图中使用了函数或其它语句重定义字段时. 就无法显示字段描述了,比如下图中的使用
SUBSTRING(b.objkey, 1, 10) as ordnr,
定义的字段无法在SE16N中显示字段描述.尝试给字段添加标签,也无法解决这个问题.(也可能是我标记字段描述的方式有误,如果你有可用的方法,请微信392077指正一下)
包括SE16N选择屏幕中也没有字段描述. (吐槽一下SAP,这也能忍?)
题外话
部分CDS视图用SE16N显示时会报如下的错误. 原因是CDS视图比较复杂. 导致系统无法自动为CDS视图设置关键字 .
SE16N在显示无关键字的视图时会报这个错误. 可以通过SE11显示视图中的主键来验证.
解决办法是给CDS视图人工标记关键字段(这个标记并不会影响数据的唯一性识别)
**一个好习惯是创建CDS视图时,标记业务主键**
标记后,视图显示就不会报错了.
解决方案的思路与实现
SE16N从界面看,就是一个面向对象的ALV. 找到这个ALV的FIELDCAT 就能修改字段描述.是不是很简单? 接下来就跟着我一起去调整吧.
_**01** _
**自定义配置表**
创建一个配置表 ZTBC_ALV_READ(允许配置表/字段的三个简单属性:输出列顺序,字段描述,字段属性(输入,显示,隐藏))
_**02** _
**调整选择屏幕的字段描述**
_增强点的查找过程就不赘述了.只说结果._
程序: LSE16NF10 FORM FILL_TC_0100 末尾(ENDFORM 之前)添加隐式增强. 读取配置表ZTBC_ALV中的字段描述,调整内表
GT_SELFIELDS 中的描述字段
_**03** _
**调整ALV抬头描述**
**alv_grid- >set_table_for_first_display **
所在的程序: LSE16NF20
FORM SET_TABLE_FOR_DISPLAY .在FORM的开头用隐式增强读取配置表内容,调整内表 gt_fieldcat中的相关字段值即可.
_**04** _
**看一下效果吧**
先配置字段属性
再次显示时.选择字段描述改变了
进入ALV清单显示后, 字段的位置和描述都修改了
关于源代码
因为源代码逻辑比较简单,就不贴出来了. 建议你自行编写代码. 如果需要,也可以在公众号交流群中向我索要(前提是分享文章哦)
总结
通过配置表调整SE16N的字段描述不光解决CDS视图的字段描述问题, 也可以调整任意表字段的描述显示.
**扩展这个思路:如果你在函数**
**LVC_FIELDCATALOG_MERGE**
**中增强同样的逻辑,理论上可以调整所有ALV的字段描述**
(前提是自定义开发的习惯要调整为通过结构定义ALV的输出,然后调用上述函数获取字段描述).
** THE **
** END **
**约定**
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.
越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )
**公众号 : syjf1976_abap**
**ABAP开发技巧**
**微信号 : 392077**
**公众号主群加入受限, 请扫码加入副群后,向管理员申请加入主群**