* 一条物料号对应多条记录,用物料号来进行分组输出。
* 每一组下面输出一条横线。把不同的组隔开。[@more@]
REPORT ZTEST_LEANRED8233 .
TABLES: MSEG ,
SPFLI.
DATA: ITAB LIKE SPFLI OCCURS 0 WITH HEADER LINE,
JTAB LIKE MSEG OCCURS 0 WITH HEADER LINE.
*定义画面输入对象.
SELECTION-SCREEN BEGIN OF BLOCK QUERY_CAR WITH FRAME TITLE
TEXT-000.
SELECT-OPTIONS INPUT FOR MSEG-MBLNR OBLIGATORY.
SELECTION-SCREEN END OF BLOCK QUERY_CAR.
*
INITIALIZATION.
******************************
*AT SELECTION-SCREEN
******************************
AT SELECTION-SCREEN.
******************************
*START-OF-SELECTION.
******************************
START-OF-SELECTION.
* 调用读取数据的子函数.
PERFORM FILL TABLES JTAB.
* 调用显示数据的子函数.
PERFORM OUT TABLES JTAB.
******************************
* 从数据表中抽出符合条件的的数据
* 然后插如内表。
* 以CARRID为分组对象,然后选择出
* 这些分组中的CONNID最小的数据.
******************************
FORM FILL TABLES JTAB_TMP LIKE JTAB[].
SELECT MBLNR MJAHR
FROM MSEG
INTO CORRESPONDING FIELDS OF TABLE JTAB_TMP
WHERE MBLNR IN INPUT
ORDER BY MBLNR.
ENDFORM.
******************************
* 显示内表中的数据.
******************************
FORM OUT TABLES JTAB_TMP LIKE JTAB[].
* 打印报表头
PERFORM PRINT_REPORT_HEADER.
*开始打印内表的数据.
LOOP AT JTAB_TMP.
WRITE: /0 SY-VLINE, JTAB_TMP-MBLNR,
30 SY-VLINE, JTAB_TMP-MJAHR,
80 SY-VLINE.
*打印出一条横线,并且下跳一行.
AT END OF MJAHR.
SKIP.
WRITE:/ SY-ULINE(80).
ENDAT.
ENDLOOP.
ENDFORM.
******************************
* 输出表头
******************************
FORM PRINT_REPORT_HEADER.
WRITE:/ SY-ULINE(80),
/0 SY-VLINE, '物料凭证编号' COLOR COL_POSITIVE,
30 SY-VLINE, '物料IDOC 年' COLOR COL_POSITIVE,
80 SY-VLINE,
/ SY-ULINE(80).
ENDFORM.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/581999/viewspace-899580/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/581999/viewspace-899580/