Selasa, 26 April 2011

Create Abap Simple Report

1. Untuk membuat abap report masuk ke t-code se38. Pada kolom program isikan nama program, misal ZREPORT1. Untuk nama program harus berawalan dengan huruf Z atau Y. Lalu tekan Create.




2. Isi Title dengan "Latihan Report 1" dan Type dengan "1 Executable program" lalu Save.


3. Pilih Local object.


4. Ketikkan source code berikut:

  REPORT zreport1 no standard page heading.
TABLES : zappmm_kecamatan, zappmm_kabupaten.
DEFINE macro_data_possition.
  if &1 = 'HEADER'.
    write :  /'|' no-gap,(12)  &2 centered,
              '|' no-gap,(30) &3 centered,
              '|' no-gap,(12) &4 centered,
              '|' no-gap,(30) &5 centered,
              '|' no-gap,(10)  &6 centered,
              '|' no-gap,(10) &7 centered,
              '|' no-gap.
  else.
    write :  /'|' no-gap,(12)  &2 centered,
              '|' no-gap,(30) &3 ,
              '|' no-gap,(12) &4 centered,
              '|' no-gap,(30) &5 ,
              '|' no-gap,(10)  &6 centered,
              '|' no-gap,(10) &7 ,
              '|' no-gap.
  endif.
END-OF-DEFINITION.

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.

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 INTO CORRESPONDING FIELDS OF TABLE gi_gab
    FROM zappmm_kecamatan
    WHERE kd_kec IN so_kec AND
         kd_kab IN so_kab.

  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 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.
  ULINE AT (gv_width).                    " Upper frame border
  FORMAT COLOR COL_HEADING INTENSIFIED.   " Title color
  macro_data_possition : 'HEADER' 'KD Kecamatan' 'Nama Kecamatan'
'KD Kabupaten' 'Nama Kabupaten' 'Creaed On' 'Created By'.
  WRITE: AT gv_width sy-vline.            " Right border
  ULINE AT (gv_width).                    " Line below titles
  FORMAT COLOR OFF.
  LOOP AT gi_gab.
    macro_data_possition : 'CONTENT'
             gi_gab-kd_kec
             gi_gab-nm_kec
             gi_gab-kd_kab
             gi_gab-nm_kab
             gi_gab-ersda
             gi_gab-ernam.
  ENDLOOP.
ULINE AT (gv_width).                    " Line below last data
ENDFORM.


5. Aktifkan program dengan cara tekan shift + f3 atau lalu execute atau tekan f8 .


6. Execute sekali lagi atau tekan f8.

Tidak ada komentar:

Posting Komentar