SAP-MRKO显示界面怎么增加字段

起因

同事找我,说MRKO的显示界面里,只能看到物料号,看不到物料描述,只能看到供应商号,看不到供应商名称。问我能不能给处理一下。于是我学习了操作增强。

经过

先看找到MRKO对应的程序RMVKON00,我猜测一定是在这里做增强了。

读了一下代码,发现了一个叫alv_list的方法,是负责生成ALV的。它有一个参数叫t_alv_list,它是负责存ALV里的内容的。

没走通的想法:第一想法是搞它。在alv_list里,根据物料号取物料描述、根据供应商号了供应商名称。但由于它的类型是mrm_tab_con_alv,这个类型是在MRM类型组里定义的,这里虽然有增强点,但本人才疏学浅不会在这种位置写增强,外加群里大顾说不建议在类型组里做增强,于是果断放弃这个办法。

TYPES: BEGIN OF mrm_con_alv.
        INCLUDE STRUCTURE rkwa.
TYPES:   box     TYPE c,
         colinfo TYPE slis_t_specialcol_alv,
         msgty LIKE mesg-msgty,
         text  LIKE mesg-text,
         arbgb LIKE mesg-arbgb,
         txtnr LIKE mesg-txtnr,
         msgv1 LIKE mesg-msgv1,
         msgv2 LIKE mesg-msgv2,
         msgv3 LIKE mesg-msgv3,
         msgv4 LIKE mesg-msgv4,

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(52) Typ MRM_CON_ALV, End   
       END OF mrm_con_alv.

经大顾们的指点。最终是去透明表里做的手脚 。激活系统提供的这个CI_RKWA结构,并加入以下两个字段。

到这儿呢,就可以回到alv_list方法去创建增强写取数逻辑了。再到field_catalog_build方法里创建增强写物料描述和供应商名称对应的列名称了。

做完以上这一切,执行程序后发现,并没有显示我想要的物料描述和供应商名称这两列。于是两条腿走路,一面看代码,一面问大顾。

找到了方法field_catalog_build方法里,这里有一个叫,REUSE_ALV_FIELDCATALOG_MERGE的方法,根据参数里的内表或者结构,传回来其所有的字段用的。值得注意的,在这程序里,它即传了透明表,又传了一个叫CONALV的结构。

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_program_name     = c_repid
      i_internal_tabname = 'RKWA'
      i_structure_name   = 'CONALV'
    CHANGING
      ct_fieldcat        = t_fieldcat[].

所以,这里还涉及到了修改CONALV的结构。改成这样式儿的就可以了。

以上就是关于表和结构的修改,至于增强部份就更简单了。

结果

到这里呢,我的开发就满足了需求,体量不大,但是也让没写过这种增强的我足足研究了好几天。于是我决定把这个过程记录下来,给自己留 着备查,更希望能帮助到遇到同样需求的小伙伴。

好了,今天分享的内容就到这里了。用那句老掉牙的话收个尾吧,希望这篇文章对已经看到这儿的小伙伴们有帮助。还是那句话,喜欢的小伙伴们请关注、点赞、评论。大家的鼓励是我持续创作的动力。感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rarenmen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值