|
<< Click to Display Table of Contents >> Navigation: All About ABAP Technique > Indonesia > ABAP Report > Basic Knowledge > Report (101) - Membuat Report Sederhana |
Objektif |
|
Kode Transaksi |
MM03 - Display Material (Menampilkan Material) |
Tabel |
MARA - General Material Data (Data Material Umum) MAKT - Material Descriptions (Deskripsi Material) T006A - Assign Internal to Language-Dependent Unit |
Support |
Nama Program : YPRACTICE_101 ( Spesifikasi Functional II-2 )
Judul : 101 - Display List of Master Material (Menampilkan Daftar Material Master)
2.Pelajari tentang standar program Material Master di SAP. Tanyakan ke functional tentang kebutuhannnya.
▪Buka t-Code MM03 pada sesi baru (/oMM03) ▪Seleksi Material contoh : 100-251
▪Tekan enter dan Seleksi "Basic Data 1" dan "Basic Data 2". Kemudian tekan
▪Tampilkan Material
Sekarang, anda lihat semua data amster dari standar program SAP |
3.Kita mulai menulis kode abap. Pertama, deklarasikan Tabel ( Functional Specification III-3 )
*----------------------------------------------------------------------*
* Tables
*----------------------------------------------------------------------*
TABLES : mara, makt, t006a.
4.Deklarasikan Variabel Global
*----------------------------------------------------------------------*
*GLOBAL VARIABLE DECRALATION
*----------------------------------------------------------------------*
DEFINE macro_data_possition.
if &1 = 'HEADER'.
write : /'|' no-gap,(9) &2 centered,
'|' no-gap,(18) &3 centered,
'|' no-gap,(40) &4 centered,
'|' no-gap,(18) &5 centered,
'|' no-gap,(5) &6 centered,
'|' no-gap,(10) &7 centered,
'|' no-gap.
else.
write : /'|' no-gap,(9) &2 centered,
'|' no-gap,(18) &3 ,
'|' no-gap,(40) &4 ,
'|' no-gap,(18) &5 ,
'|' no-gap,(5) &6 ,
'|' no-gap,(10) &7 ,
'|' no-gap.
endif.
END-OF-DEFINITION.
TYPES: BEGIN OF ty_header,
matkl LIKE mara-matkl, " Material Group
matnr LIKE mara-matnr, " Material Number
maktx LIKE makt-maktx, " Material Description
bismt LIKE mara-bismt, " Old material number
meins LIKE mara-meins, " Base Unit of Measure
mseht LIKE t006a-mseht, " Unit of Measurement Text
END OF ty_header.
DATA: gi_header TYPE STANDARD TABLE OF ty_header WITH HEADER LINE,
gi_makt LIKE STANDARD TABLE OF makt WITH HEADER LINE,
gi_t006a LIKE STANDARD TABLE OF t006a WITH HEADER LINE.
DATA: gv_width TYPE i. " Width of list
5.Buat input Screen/Selection ( Functional Specification III-4 )
*----------------------------------------------------------------------*
*Input Screen/Selection
*----------------------------------------------------------------------*
SELECT-OPTIONS so_matkl FOR mara-matkl.
SELECT-OPTIONS so_matnr FOR mara-matnr.
6.Buat Program Utama
*======================================================================*
*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.
7.Buat Sub Program dengan 3 sub routine( fm_collect_data, fm_process_data dan fm_display_data )
Aliran Proses : Select Material Data -> Display
*======================================================================*
*SUB PROGRAM / SUB ROUTINE
*======================================================================*
FORM fm_collect_data.
ENDFORM.
FORM fm_process_data.
ENDFORM.
FORM fm_display_data.
ENDFORM.
8.Tulis kode untuk subrutine fm_collect_data
FORM fm_collect_data.
* Seleksi data Material Master
SELECT matnr matkl bismt meins
INTO CORRESPONDING FIELDS OF TABLE gi_header
FROM mara
WHERE
matkl IN so_matkl AND
matnr IN so_matnr.
* Seleksi Diskripsi Material
SELECT matnr maktx
INTO CORRESPONDING FIELDS OF TABLE gi_makt
FROM makt
FOR ALL ENTRIES IN gi_header
WHERE
matnr = gi_header-matnr AND
spras = sy-langu.
* "Untuk SAP 4.6C
* DATA : lv_total_data type i.
* DESCRIBE TABLE gi_header LINES lv_total_data.
* IF lv_total_data > 0.
IF LINES( gi_header ) > 0." Untuk SAP 4.7 Keatas
* Seleksi Diskripsi Material
SELECT matnr maktx
INTO CORRESPONDING FIELDS OF TABLE gi_makt
FROM makt
FOR ALL ENTRIES IN gi_header
WHERE
matnr = gi_header-matnr AND
spras = sy-langu.
* Seleksi Standar Pengukuran
SELECT msehi mseht
INTO CORRESPONDING FIELDS OF TABLE gi_t006a
FROM t006a
FOR ALL ENTRIES IN gi_header
WHERE
msehi = gi_header-meins AND
spras = sy-langu.
ENDIF.
* Ctt :
* Hindari menggunakan Inner join
ENDFORM.
9.Tulis kode untuk sub routine fm_process_data
FORM fm_process_data.
*Mendapatkan informasi lain yang dibutuhkan
LOOP AT gi_header.
* Mendapatkan Deskripsi Material
READ TABLE gi_makt WITH KEY matnr = gi_header-matnr.
IF sy-subrc = 0.
gi_header-maktx = gi_makt-maktx.
ENDIF.
* Mendapatkan Standar teks pengukuran
READ TABLE gi_t006a WITH KEY msehi = gi_header-meins.
IF sy-subrc = 0.
gi_header-mseht = gi_t006a-mseht.
ENDIF.
MODIFY gi_header.
ENDLOOP.
ENDFORM.
10.Tulis kode untuk sub routine fm_display_data ( Functional Specification III-5 )
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.
11.Aktivasi dan Jalankan Program
13.Selesai
▪Seleksi Input

▪Output
