1. Buka t-code se38 dan beri nama ZREPORTGROUP lalu tekan create.
2. Isi Titel dengan 'Latihan Grouping Report' dan pilih Type dengan '1 Executable program' lalu Save di Local object saja.
3. Ketikkan kode program seperti di bawah ini:
REPORT ZREPORTGROUP NO STANDARD PAGE HEADING.
TABLES : zappmm_kecamatan, zappmm_kabupaten.
TYPES : BEGIN OF ty_gab,
kd_kec LIKE zappmm_kecamatan-kd_kec,
nm_kec LIKE zappmm_kecamatan-nm_kec,
kd_kab LIKE zappmm_kecamatan-kd_kab,
nm_kab LIKE zappmm_kabupaten-nm_kab,
ersda LIKE zappmm_kecamatan-ersda,
ernam LIKE zappmm_kecamatan-ernam,
END OF ty_gab.
DATA : gi_kec LIKE STANDARD TABLE OF zappmm_kecamatan WITH HEADER LINE,
gi_kab LIKE STANDARD TABLE OF zappmm_kabupaten WITH HEADER LINE,
gi_gab TYPE STANDARD TABLE OF ty_gab WITH HEADER LINE,
wa_gab TYPE STANDARD TABLE OF ty_gab WITH HEADER LINE,
kab(70) TYPE c,
counter TYPE i.
DATA: gv_width TYPE i. " Width of list
SELECTION-SCREEN: BEGIN OF BLOCK head1 WITH FRAME TITLE text-101.
SELECT-OPTIONS so_kab FOR zappmm_kabupaten-kd_kab.
SELECT-OPTIONS so_kec FOR zappmm_kecamatan-kd_kec.
SELECTION-SCREEN: END OF BLOCK head1.
START-OF-SELECTION.
gv_width = 117.
PERFORM fm_collect_data.
PERFORM fm_process_data.
PERFORM fm_display_data.
END-OF-SELECTION.
FORM : fm_collect_data.
SELECT kd_kab nm_kab INTO CORRESPONDING FIELDS OF TABLE wa_gab
FROM zappmm_kabupaten
WHERE kd_kab IN so_kab.
IF wa_gab NE ''.
SELECT * INTO CORRESPONDING FIELDS OF TABLE gi_gab
FROM zappmm_kecamatan
FOR ALL ENTRIES IN wa_gab
WHERE kd_kec IN so_kec AND
kd_kab = wa_gab-kd_kab.
ENDIF.
IF gi_gab NE ''.
SELECT * INTO CORRESPONDING FIELDS OF TABLE gi_kab
FROM zappmm_kabupaten
FOR ALL ENTRIES IN gi_gab
WHERE kd_kab = gi_gab-kd_kab.
ENDIF.
ENDFORM.
FORM: fm_process_data.
LOOP AT wa_gab.
CONCATENATE 'KABUPATEN: ' wa_gab-kd_kab '-' wa_gab-nm_kab INTO kab
SEPARATED BY ''.
ENDLOOP.
LOOP AT gi_gab.
READ TABLE gi_kab WITH KEY kd_kab = gi_gab-kd_kab.
IF sy-subrc = 0.
gi_gab-nm_kab = gi_kab-nm_kab.
ENDIF.
MODIFY gi_gab.
ENDLOOP.
ENDFORM.
FORM : fm_display_data.
LOOP AT wa_gab.
WRITE : / kab.
FORMAT COLOR COL_HEADING INTENSIFIED.
WRITE : / sy-uline(75).
WRITE: /'|', (12) 'KD Kecamatan' CENTERED,
'|', (30) 'Nama Kecamatan' CENTERED,
'|', (10) 'Created On' CENTERED,
'|', (10) 'Created By' CENTERED,
'|'.
WRITE : / sy-uline(75).
FORMAT COLOR OFF.
CLEAR counter.
LOOP AT gi_gab WHERE kd_kab = wa_gab-kd_kab.
ADD 1 TO counter.
WRITE : / '|' ,(12) gi_gab-kd_kec,
'|' ,(30) gi_gab-nm_kec,
'|' ,(10) gi_gab-ersda,
'|' ,(10) gi_gab-ernam,
'|'.
ENDLOOP.
FORMAT COLOR COL_TOTAL INTENSIFIED.
WRITE : / sy-uline(75).
WRITE : / '| Total : ', (62)counter LEFT-JUSTIFIED,'|'.
WRITE : / sy-uline(75).
format color off.
write: / .
ENDLOOP.
ENDFORM.
4. Kemudian tekan Activiete atau F8

5. Tekan Enter.
Tidak ada komentar:
Posting Komentar