|
<< Click to Display Table of Contents >> Navigation: All About ABAP Technique > Indonesia > ABAP Report > Display Output > Report (201) - Create Multiple Pages |
Objektif |
|
Kode Transaksi |
|
Tabel |
MARA - General Material Data (Data Material Umum) MAKT - Material Descriptions (Deskripsi Material) T006A - Assign Internal to Language-Dependent Unit |
Support |
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
15.Selesai
▪Seleksi Input

▪Output
