Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101966
  • 博文数量: 16
  • 博客积分: 536
  • 博客等级: 中士
  • 技术积分: 190
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-02 11:37
个人简介

SAP 爱好者,记录一些知识点吧

文章分类

全部博文(16)

文章存档

2014年(1)

2012年(1)

2011年(3)

2010年(7)

2009年(4)

我的朋友

分类: 数据库开发技术

2014-06-16 21:47:55

项目中碰到这样的一个需求, 大致是销售订单10行是有delivery , 20 行没有delivery , 发票10 行是基于delivery 的, 20 行是基于销售订单的, 现在要求将这订单上的两个行项目,在delivery 后再一张发票上实现combine.

这个可以通过在billing 的copying control 里面的基于航项目的 data vbrk/vbrp 里面添加代码。 

那么我们先要理解标准的SAP 对于invoice 的Combine 还是Split 的原理有个清醒的了解。

标准程序里面会有一个内表XVBRK , 这个数据用来表示invoice 的表头记录, 这个内表里面有几条数据, 那么,就会split成几张发票, 所以, 对于每一个发票的行项目,会去比较对于的VBRK 的数据是否与XVBRK 里面的一行完全一致。如果不一致, 则会APPEND 到XVBRK , 这就是split , 完全一致, 则不会append , 即实现了 combine , 所以, 我们能做的就是, 为了combine  我们就在DATA VBRK/VBRP 里面赋值, 使其想要合并的行项目对于的XVBRK一致。否则, 就自己增加字段组, 使其不一致, VBRK-zukri 该字段有40个字符, 就是为了满足这一条件。

FORM DATEN_KOPIEREN_001.

* Header data
* VBRK-xxxxx = ............

* Item data
* VBRP-xxxxx = ............

* Additional split criteria
  DATABEGIN OF ZUK,
          MODUL(3VALUE '001',
          VTWEG LIKE VBAK-VTWEG,
          SPART LIKE VBAK-SPART,
        END OF ZUK.
  ZUK-SPART VBAK-SPART.
  ZUK-VTWEG VBAK-VTWEG.
  VBRK-ZUKRI ZUK.

ENDFORM.

阅读(1434) | 评论(0) | 转发(0) |
0

上一篇:Event of the program

下一篇:没有了

给主人留下些什么吧!~~