SAP ABAP/4学习---报表分析分组显示

*描述:定义一个报表,通过用户输入的物料凭证号码的范围
*      一条物料号对应多条记录,用物料号来进行分组输出。
*      每一组下面输出一条横线。把不同的组隔开。
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.

你可能感兴趣的:(report,header,SAP,query,input,报表)