Report (201) - Create Multiple Pages

<< Click to Display Table of Contents >>

Navigation:  All About ABAP Technique > Indonesia > ABAP Report > Display Output >

Report (201) - Create Multiple Pages

Objektif

Membuat Report

Hasil

Kode Sintak

Kode Transaksi

SE38 - ABAP Editor

Tabel

MARA - General Material Data (Data Material Umum)

MAKT - Material Descriptions (Deskripsi Material)

T006A - Assign Internal to Language-Dependent Unit

Support

Video

 

Membuat Report

1.Buka SE38

2.Salin Program "YPRACTICE_101" menjadi "YPRACTICE_201"

3.Ubah Program "YPRACTICE_201"

4.Buka Goto > Attributes, dan ubah "Title" dengan"201 - Display List of Master Material"

5.Modifikasi Deklarasi Report

Sebelum

REPORT  ypractice_101.

 

Setelah

REPORT  ypractice_201 

        NO STANDARD PAGE HEADING.

 

6.Hapus "DATA: gv_width TYPE i.  " Width of list"

7.Modifikasi "Input Screen/Selection"

Sebelum

*----------------------------------------------------------------------*

*Input Screen/Selection

*----------------------------------------------------------------------*

SELECT-OPTIONS so_matkl FOR mara-matkl.

SELECT-OPTIONS so_matnr FOR mara-matnr.

 

Setelah

*----------------------------------------------------------------------*

*Input Screen/Selection

*----------------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF BLOCK groupbox1 WITH FRAME TITLE text_101. "Declare Group Box 1

 

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(18) text_102 FOR FIELD so_matkl.

SELECT-OPTIONS so_matkl FOR mara-matkl.

SELECTION-SCREEN END OF LINE.

 

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(18) text_103 FOR FIELD so_matnr.

SELECT-OPTIONS so_matnr FOR mara-matnr.

SELECTION-SCREEN END OF LINE.

 

SELECTION-SCREEN END OF BLOCK groupbox1.                              "End Group Box 1

 

SELECTION-SCREEN BEGIN OF BLOCK groupbox2 WITH FRAME TITLE text_201. "Declare Group Box 2

 

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(18) text_202 FOR FIELD p_mwidth.

PARAMETERS p_mwidth TYPE n DEFAULT 113 LENGTH 4.

SELECTION-SCREEN END OF LINE.

 

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(18) text_203 FOR FIELD p_mline .

PARAMETERS p_mline TYPE n DEFAULT 30 LENGTH 4.

SELECTION-SCREEN END OF LINE.

 

SELECTION-SCREEN END OF BLOCK groupbox2.                              "End Group Box 2

 

8.Buat kode Event dan Initialization, tuliskan setelah Input Screen Block

 

*----------------------------------------------------------------------*

*EVENT

*----------------------------------------------------------------------*

AT SELECTION-SCREEN OUTPUT.

  text_101 = 'Selection Parameter'.

  text_102 = 'Material Group'.

  text_103 = 'Material Number'.

 

  text_201 = 'Page Setup'.

  text_202 = 'Max. Width'.

  text_203 = 'Max. Line per Page'.

 

*----------------------------------------------------------------------*

*INITIALIZATION

*----------------------------------------------------------------------*

INITIALIZATION.

 

 

9.Modifikasi "MAIN PROGRAM"

Sebelum

*======================================================================*

*MAIN PROGRAM

*Execute after Input Screen

*======================================================================*

START-OF-SELECTION.

  gv_width = 113.

  PERFORM fm_collect_data.

  PERFORM fm_process_data.

  PERFORM fm_display_data.

 

END-OF-SELECTION.

 

Sesudah

*======================================================================*

*MAIN PROGRAM

*Execute after Input Screen

*======================================================================*

START-OF-SELECTION.

  NEW-PAGE LINE-SIZE  p_mwidth.

  NEW-PAGE LINE-COUNT p_mline.

 

  PERFORM fm_collect_data.

  PERFORM fm_process_data.

  PERFORM fm_display_data.

 

END-OF-SELECTION.

 

10.Modifikasi sub routine "fm_display_data"

Sebelum

*&--------------------------------------------------------------------*

*&      Form  fm_display_data

*&--------------------------------------------------------------------*

*       text

*---------------------------------------------------------------------*

FORM fm_display_data.

*  Membuat Teks header

  ULINE AT (gv_width).                    " Upper frame border

  FORMAT COLOR COL_HEADING INTENSIFIED.   " Title color

  macro_data_possition : 'HEADER' 'Mat. Group' 'Mat. No.' 'Description' 'Old Mat. No.' 'Base Unit' 'Measure'.

  WRITE: AT gv_width sy-vline.            " Right border

  ULINE AT (gv_width).                    " Line below titles

  FORMAT COLOR OFF.

 

*  Menampilkan Data ke Screen

  LOOP AT gi_header.

    macro_data_possition : 'CONTENT'

                           gi_header-matkl

                           gi_header-matnr

                           gi_header-maktx

                           gi_header-bismt

                           gi_header-meins

                           gi_header-mseht.

  ENDLOOP.

 

*  Akhir dari Line

  ULINE AT (gv_width).                    " Line below last data

 

ENDFORM.                    "fm_display_data

 

Setelah

*&--------------------------------------------------------------------*

*&      Form  fm_display_data

*&--------------------------------------------------------------------*

*       text

*---------------------------------------------------------------------*

FORM fm_display_data.

  DATA: lv_total_data TYPE i,

        lv_header_line TYPE i,

        lv_footer_line TYPE i,

        lv_max_content TYPE i,

        lv_max_data TYPE i,

        lv_page_count TYPE i.                               " LENGTH 4.

 

*  Menghitung Total Halaman

  lv_total_data = LINES( gi_header ).

*  DESCRIBE TABLE gi_header LINES lv_total_data. " For SAP 4.6C

 

  lv_header_line = 3. "Change the value if you add a new header line

  lv_footer_line = 3.

  lv_max_content = p_mline - lv_header_line - lv_footer_line.

  lv_max_data    = p_mline - lv_footer_line.

  lv_page_count = ( lv_total_data DIV lv_max_content ) + 1.

 

  lv_max_content = lv_max_content + ( lv_header_line - 2 ).

 

*  Menampilkan Data ke Layar

  LOOP AT gi_header.

    macro_data_possition : 'CONTENT'

                           gi_header-matkl

                           gi_header-matnr

                           gi_header-maktx

                           gi_header-bismt

                           gi_header-meins

                           gi_header-mseht.

    IF sy-linno = lv_max_data.

      PERFORM fm_footer USING lv_page_count.

 

      NEW-PAGE.

    ENDIF.

  ENDLOOP.

 

*  Membuat Footer Akhir

  IF ( sy-linno < lv_max_content ) or ( sy-linno > lv_footer_line  ).

    PERFORM fm_footer USING lv_page_count.

  ENDIF.

 

ENDFORM.                    "fm_display_data

 

11.Buat sub routine baru "fm_footer"

*&--------------------------------------------------------------------*

*&      Form  fm_footer

*&--------------------------------------------------------------------*

*       text

*---------------------------------------------------------------------*

*      -->FV_PAGE_COUtext

*---------------------------------------------------------------------*

FORM fm_footer USING fv_page_count.

*      Membuat Teks Footer ( 3 Baris )

  ULINE AT (p_mwidth).                    " Upper frame border

  FORMAT COLOR COL_TOTAL  INTENSIFIED.    " Footer color

  WRITE :  /'|' NO-GAP, 'Page : ' NO-GAP, (4) sy-pagno NO-GAP, '/', (4) fv_page_count NO-GAP.

  WRITE: AT p_mwidth sy-vline.            " Right border

  ULINE AT (p_mwidth).                    " Line below titles

  FORMAT COLOR OFF.

ENDFORM.                    "fm_footer

 

12.Buat 1 event standar, dengan "TOP-OF-PAGE"

*======================================================================*

*STANDARD EVENT

*======================================================================*

 

*----------------------------------------------------------------------*

*Page Header

*----------------------------------------------------------------------*

TOP-OF-PAGE.

*  Membuat Teks Header ( 3 Baris )

  ULINE AT (p_mwidth).                    " Upper frame border

  FORMAT COLOR COL_HEADING INTENSIFIED.   " Title color

  macro_data_possition : 'HEADER' 'Mat. Group' 'Mat. No.' 'Description' 'Old Mat. No.' 'Base Unit' 'Measure'.

  ULINE AT (p_mwidth).                    " Line below titles

  FORMAT COLOR OFF.

 

13.Aktivasi dan Jalankan Program

14.Menbuat T-Code "YP201"

15.Selesai

 

Hasil

Seleksi Input

ar0008

Output

ar0009