VL06I/VL06O报表增强

1、文档说明

1.1、VL06I增强非交货单字段

需要在VL06I展示的交货单行报表中增加采购订单的数量和交货日期

项目视图

增强字段

1.2、VL06O增强选择屏幕及交货单字段

需要在VL06O选择屏幕增加提单号筛选条件,

并在表头视图和项目视图中新增展示LIKP和LIPS的标准字段

2、增强实现

2.1、VL06I增强

在报表对应的结构LIPOV中增加字段,表头视图和项目视图都是增强该结构。

在LV50QF1W的子例程list_display_basic_list中增加隐式增强

参考代码如下:

复制代码
"--------------------@斌将军--------------------
ENHANCEMENT 1  ZEMM_VL06I_APPEND.    "active version

  DATA(lt_outtab) = gt_outtab[].

  WITH +tab AS ( SELECT DISTINCT vgbel,vgpos FROM @lt_outtab AS outtab )
  SELECT
    ekpo~ebeln,
    ekpo~ebelp,
    ekpo~menge,

    eket~etenr,
    eket~eindt
  FROM ekpo
  INNER JOIN ekko ON ekpo~ebeln = ekko~ebeln
  INNER JOIN +tab AS outtab ON ekpo~ebeln = outtab~vgbel AND ekpo~ebelp = RIGHT( outtab~vgpos ,5 )
  LEFT OUTER JOIN eket ON ekpo~ebeln = eket~ebeln AND ekpo~ebelp = eket~ebelp
  WHERE ekko~bsart <> 'ZSA'"排除计划协议
  INTO TABLE @DATA(lt_ekpo).
  IF lt_ekpo IS NOT INITIAL.
    SORT lt_ekpo BY ebeln ebelp eindt DESCENDING."取交货时间最晚的日期

    LOOP AT gt_outtab ASSIGNING FIELD-SYMBOL(<fs_outtab>).
      READ TABLE lt_ekpo INTO DATA(ls_ekpo) WITH KEY ebeln = <fs_outtab>-vgbel
                                                      ebelp = <fs_outtab>-vgpos+1(5) BINARY SEARCH.
      IF sy-subrc EQ 0.
        <fs_outtab>-menge_cg = ls_ekpo-menge."数量
        <fs_outtab>-eindt_cg = ls_ekpo-eindt."交货日期
      ENDIF.
    ENDLOOP.
  ENDIF.

ENDENHANCEMENT.
"--------------------@斌将军--------------------
复制代码

2.2、VL06O增强

同理,将需要展示的LIKP和LIPS中的字段,添加到LIPOV结构中

与VL06I中做的增强不同,这些字段都是LIKP和LIPS中的标准字段。

所以猜想是不是系统在查询的时候,把LIKP的所有数据一并查出来,赋值的时候,直接把LIKP的值用move-corresponding赋值给了输出结构LIPOV,这样不需要专门写查询语句,只用增强字段到LIPOV中,接收数据即可。

断点调试,证实了这个猜想:

比如查询LIKP的数据时,是用SELECT*

并且表lt_likpuk包含LIKP的所有字段

所以赋值的时候,直接传给了LIPOV

 同理,LIPS也一样

 所以增强的是LIKP和LIPS标准字段的话,查询语句就可以省掉了

选择屏幕增加筛选条件

此处没有找到类似MB51通过配置增加筛选条件的方法,如果读者有更好办法,望不吝赐教

将筛选条件抛内存

在报表展示前,将不符合条件的数据过滤掉即可

 至此,两个增强就完成了

定期更文,欢迎关注

posted @   斌将军  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示