二维码

[Smart] Smart Forms循环中控制control-break状态

Twilight发表于 2015-02-02 16:12zhongguomao 最后回复于 2017-08-09 11:44 [复制链接] 5241 1

场景:一个销售订单对应多个行项目,现在我们需要按照订单号累计净价
1、T-code SMARTForms

2、Global Definitions
TYPES:
  1. TYPES:BEGIN OF ty_vbeln,
  2.         vbeln TYPE vbap-vbeln,
  3.       END OF ty_vbeln.

  4. TYPES:BEGIN OF ty_vbap,
  5.         vbeln TYPE vbeln_va,
  6.         posnr TYPE posnr_va,
  7.         matnr TYPE matnr,
  8.         matkl TYPE matkl,
  9.         meins TYPE meins,
  10.         netwr TYPE netwr_ap,
  11.         waerk TYPE waerk,
  12.       END OF ty_vbap.
复制代码

Global Data:
  1. GT_VBAP        TYPE TABLE OF        TY_VBAP
  2. WA_VBAP        TYPE        TY_VBAP
  3. W_SUM        TYPE        TY_VBAP-NETWR
复制代码

Initialization:
  1. DATA:lt_vbeln TYPE TABLE OF ty_vbeln.

  2. SELECT  vbeln
  3.   UP TO 10 ROWS
  4.   INTO TABLE lt_vbeln
  5.   FROM vbap
  6.   WHERE posnr = '20'.

  7. SELECT  vbeln
  8.         posnr
  9.         matnr
  10.         matkl
  11.         meins
  12.         netwr
  13.         waerk
  14.   INTO TABLE gt_vbap
  15.   FROM vbap
  16.   FOR ALL ENTRIES IN lt_vbeln
  17.   WHERE vbeln = lt_vbeln-vbeln.
复制代码


3、创建loop、TXT
control-break 1.jpg
创建一个txt命名OUTPUT,输入需要输出的字段
  1. &WA_VBAP-VBELN& &WA_VBAP-POSNR& &WA_VBAP-MATNR& &WA_VBAP-MATKL& &WA_VBAP-MEINS& &WA_VBAP-NETWR(C)&
复制代码

这些字段不是手工输入的,点击"+",在对话框中输入字段或者拖拽的方式; 金额字段后面加(C),否则长度过长可能跳行

4、执行查看效果
control-break 2.jpg
一个销售订单对应多个行项目,现在我们需要按照订单号累计净价

5、排序分类
control-break 3.jpg
返回到loop中,输入排序条件,勾选Event on sort begin,激活左侧导航会生成开始event,然后再下面创建一个文本,用来输入排序条件
control-break 4.jpg
改变一下输出字段,调整显示格式
control-break 5.jpg

6、测试效果
control-break 6.jpg

7、SUM小计净价
添加一个program lines
input parameter:WA_VBAP-NETWR
output parameter:W_SUM
代码:W_SUM = W_SUM + WA_VBAP-NETWR.

8、再添加一个txt,显示sum累计的结果
control-break 7.jpg

9、清空sum
需要在loop的结束event下,添加一个program lines
control-break 8.jpg

10、测试结果
control-break 9.jpg
回复

使用道具 举报

zhongguomao
实例运用,学习。
回复

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表