ABAP 报表求和统计功能实现方法

在写abap 的过程中,可能需要统计,求和等

那么如何实现呢?

其实在loop ... endloop 中间,有个AT ,<…>,ENDAT循环. 其中的包括: FRIST, LAST, NEW , END OF.这些可以用来进行内表中按某个字段进行分组统计.

FIRST 内 表的第一行

LAST 内 表的最后一 行NEW 行组 的开头,与 字段 和 剩余字段中 的内容相同

END Of 行组 的结尾,与 字段 和 剩余字段中 的内容相同

AT - ENDAT 块中的语句 块使用这些 行条件代表 预定义的控 制结构。用 户可以使用 它们处理内 表中的控制 断点,而不 必使用 编程分支和循环 中所述的控 制语句自己 编程。在 AT - ENDAT 语句块中, 工作区域没 有用当前表 格行进行填 充。初始化 所有不是标 准关键字部 件的字段( 参见 标识表格行 )。对于行 条件 FIRST 和 LAST, 系统用星号 (*) 改写所有标 准关键字段 。对于行条 件 NEW 和 END OF ,系 统用星号 (*) 改写所有出 现在工作区 域中指定字 段 右边的标准 关键字段。 用户可根据 自己的需求 在 AT - ENDAT 语句块中填 充工作区域 。

DATA: BEGIN OF LINE,

COL1 TYPE C,

COL2 TYPE I,

COL3 TYPE I,

END OF LINE.

DATA ITAB LIKE LINE OCCURS 10.

LINE-COL1 = 'A'.

DO 3 TIMES.

LINE-COL2 = SY-INDEX.

LINE-COL3 = SY-INDEX ** 2.

APPEND LINE TO ITAB.

ENDDO.

LINE-COL1 = 'B'.

DO 3 TIMES.

LINE-COL2 = 2 * SY-INDEX.

LINE-COL3 = ( 2 * SY-INDEX ) ** 2.

APPEND LINE TO ITAB.

ENDDO.

LOOP AT ITAB INTO LINE.

WRITE: / LINE-COL1, LINE-COL2, LINE-COL3.

AT END OF COL1.

SUM."按Col1 求和.

ULINE.

WRITE: / LINE-COL1, LINE-COL2, LINE-COL3.

SKIP.

ENDAT.

AT LAST.

SUM."总求和.

ULINE.

WRITE: / LINE-COL1, LINE-COL2, LINE-COL3.

ENDAT.

ENDLOOP.

其输出为:

A 1 1

A 2 4

A 3 9

________________________________

A 6 14

B 2 4

B 4 16

B 6 36

________________________________

B 12 56

________________________________

* 18 70

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChampaignWolf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值