SAP-ABAP-CK40N返回消息标准ALV列表新增字段增强

前言:原始需求是在CK40N的返回消息屏幕添加一个物料描述字段,我觉得这个程序加字段应该是有标准配置的,但是我找不到,只好用增强解决了,本文提供一种给标准报表新增字段的思路,为ALV添加字段不外乎两个步骤,第一步添加fieldcat,使展示时能够展示在屏幕上面,第二部填充新增字段的数据。

1.为ALV添加FIELDCAT

        标准程序ALV展示的结果一般都是取自某个后台结构,我们只要找到这个结构了为这个结构新增字段即可为ALV新增字段,

首先在新增屏幕找到标准程序的程序名和屏幕,双击屏幕就可以进入代码,调用ALV的函数代码一般在PBO的后面部分

 这里找到了ALV的调用函数,同时找到了代码的fieldcat和展示的值

 

找到了最终展示的ALV的fieldcat,里面的参考表主要有两个,通过SE11验证,这两个结构都存在,所以无论对哪个结构新增,应该都可以为ALV新增字段,这里我选择了CMIOBJCK1,因为物料编码参考的是这个结构。

 

 不确定是否成功可以先调试添加行项目验证有没有问题,也可以追根查找fieldcat的赋值,确保万无一失。

2.为展示数据填充新增的字段

第一步找到了程序的展示数据,只需要使用第四代增强找个位置把物料描述字段添加进去即可,我这里追根溯源找到了一开始赋值的位置,参考代码如下


  LOOP AT <T_OUTTAB> ASSIGNING <F_OUTTAB>.
    ASSIGN COMPONENT 'MATNR' OF STRUCTURE <F_OUTTAB> TO FIELD-SYMBOL(<FS_VALUE>) .
    IF <FS_VALUE> IS ASSIGNED.
      SELECT SINGLE MAKTX FROM MAKT WHERE MATNR = @<FS_VALUE> AND SPRAS = '1' INTO @DATA(LV_MAKTX) .
      IF SY-SUBRC = 0.
        ASSIGN COMPONENT 'MAKTX' OF STRUCTURE <F_OUTTAB> TO FIELD-SYMBOL(<FS_VALUEX>) .
        IF <FS_VALUEX> IS ASSIGNED.
          <FS_VALUEX> = LV_MAKTX .
          UNASSIGN <FS_VALUEX> .
        ENDIF.
      ENDIF.
      UNASSIGN <FS_VALUE> .
    ENDIF.
  ENDLOOP.

 

常驻CSDN欢迎评论交流

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值