ABAP中如何用ALV输出collect求和
时间: 2024-03-15 15:45:54 浏览: 12
在 ABAP 中,如果使用 `COLLECT` 和 `AT END OF` 语句来求和,可以将求和结果放到一个内部表中,然后使用 ALV 技术来输出结果。以下是一个示例代码:
```
DATA: lt_data TYPE STANDARD TABLE OF t_data,
ls_data TYPE t_data,
lt_sum TYPE STANDARD TABLE OF t_sum,
ls_sum TYPE t_sum.
" 使用 COLLECT 和 AT END OF 语句来求和
LOOP AT itab INTO ls_data.
COLLECT ls_data INTO lt_data.
AT END OF foo.
ls_sum-field1 = foo.
READ TABLE lt_data INTO ls_data INDEX 1.
ls_sum-field2 = ls_data-field2.
APPEND ls_sum TO lt_sum.
ENDAT.
ENDLOOP.
" 使用 ALV 技术来输出结果
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
TABLES
t_outtab = lt_sum
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
```
在上述代码中,`t_data` 是原始数据的类型,`t_sum` 是求和结果的类型。首先,使用 `COLLECT` 和 `AT END OF` 语句将数据进行求和,并将求和结果放到 `lt_sum` 中。然后,使用 `REUSE_ALV_GRID_DISPLAY` 函数来输出 `lt_sum` 中的数据。在这个例子中,使用了 ALV Grid 控件来输出结果,但也可以使用其他类型的 ALV 控件来输出结果。