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通过配置增加筛选条件的方法,如果读者有更好办法,望不吝赐教
将筛选条件抛内存
在报表展示前,将不符合条件的数据过滤掉即可
至此,两个增强就完成了
TRANSLATE with x English TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back 标签:VL06O,VL06I,报表,outtab,LIKP,lt,ebeln,ekpo From: https://www.cnblogs.com/BinGeneral/p/18628084