|
<< Click to Display Table of Contents >> Navigation: All About ABAP Technique > Indonesia > ABAP Report > Display Output > Report (203) - Create Asset Report using Template from Report (202) |
Objektif |
|
Kode Transaksi |
AS03 - Display Asset |
Tabel |
ANLA - Asset Master Record Segment (Master Aset.......) ANLZ - Time-Dependent Asset Allocations (waktu yang dipengaruhi alokasi aset) T499S - Location (Lokasi) |
Support |
1.Buka SE38
2.Salin Program "YPRACTICE_202" menjadi "YPRACTICE_203"
3.Ubah Program "YPRACTICE_203"
4.Buka Goto > Attributes, dan ubah "Title" dengan "203 - Display and Print List of Master Asset"
5.Modifikasi Deklarasi Report
Sebelum
REPORT ypractice_202
NO STANDARD PAGE HEADING.
Setelah
REPORT ypractice_203
NO STANDARD PAGE HEADING.
6.Modified "Tables"
Sebelum
*----------------------------------------------------------------------*
* Tables
*----------------------------------------------------------------------*
TABLES : mara, makt, t006a.
Setelah
*----------------------------------------------------------------------*
* Tables
*----------------------------------------------------------------------*
TABLES : anla, anlz, t499s.
7.Modified Define "macro_data_possition" according to field length
Sebelum
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.
Setelah
if &1 = 'HEADER'.
write : /'|' no-gap,(12) &2 no-gap centered,
'|' no-gap,(4) &3 no-gap centered,
'|' no-gap,(50) &4 no-gap centered,
'|' no-gap,(10) &5 no-gap centered,
'|' no-gap,(40) &6 no-gap centered,
'|' no-gap,(12) &7 no-gap centered,
'|' no-gap.
else.
write : /'|' no-gap,(12) &2 no-gap centered,
'|' no-gap,(4) &3 no-gap centered,
'|' no-gap,(50) &4 no-gap,
'|' no-gap,(10) &5 no-gap centered,
'|' no-gap,(40) &6 no-gap,
'|' no-gap,(12) &7 no-gap centered,
'|' no-gap.
endif.
8.Modified Global Variables
Sebelum
TYPES: BEGIN OF ty_header,
matkl LIKE mara-matkl, " Material Group
matnr LIKE mara-matnr, " Material Number
maktx LIKE makt-maktx, " Material Descriptiop
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.
Setelah
TYPES: BEGIN OF ty_header,
anln1 LIKE anla-anln1, " Main Asset Number
anln2 LIKE anla-anln2, " Asset Subnumber
txt50 LIKE anla-txt50, " Asset description
stort LIKE anlz-stort, " Asset location
ktext LIKE t499s-ktext, " Location description
aktiv LIKE anla-aktiv, " Asset capitalization date
END OF ty_header.
DATA: gi_header TYPE STANDARD TABLE OF ty_header WITH HEADER LINE,
gi_anla LIKE STANDARD TABLE OF anla WITH HEADER LINE,
gi_t499s LIKE STANDARD TABLE OF t499s WITH HEADER LINE.
9.Modifikasi "Input Screen/Selection"
Sebelum
SELECTION-SCREEN BEGIN OF BLOCK groupbox1 WITH FRAME TITLE text_101. "Declare Group Box 1
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(14) 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(14) 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
...
PARAMETERS p_mwidth TYPE n DEFAULT 113 LENGTH 4.
...
PARAMETERS p_mline TYPE n DEFAULT 30 LENGTH 4.
...
PARAMETERS p_paart LIKE pri_params-paart DEFAULT 'X_44_120'.
...
Setelah
SELECTION-SCREEN BEGIN OF BLOCK groupbox1 WITH FRAME TITLE text_101. "Declare Group Box 1
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(14) text_102 FOR FIELD so_stort.
SELECT-OPTIONS so_stort FOR anlz-stort.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(14) text_103 FOR FIELD so_anln1.
SELECT-OPTIONS so_anln1 FOR anla-anln1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(14) text_104 FOR FIELD so_anln2.
SELECT-OPTIONS so_anln2 FOR anla-anln2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK groupbox1. "End Group Box 1
...
PARAMETERS p_mwidth TYPE n DEFAULT 135 LENGTH 4.
...
PARAMETERS p_mline TYPE n DEFAULT 65 LENGTH 4.
...
PARAMETERS p_paart LIKE pri_params-paart DEFAULT 'X_65_255'.
...
10.Modifikasi "EVENT"
Sebelum
text_101 = 'Selection Parameter'.
text_102 = 'Material Group'.
text_103 = 'Material Number'.
Setelah
text_101 = 'Selection Parameter'.
text_102 = 'Location ID'.
text_103 = 'Asset Number'.
text_104 = 'Sub Number'.
11.Modifikasi sub routine "fm_collect_data"
Sebelum
...
lv_header_line = 3.
...
* Seleksi data Asset 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 Deskripsi Asset
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.
Setelah
...
lv_header_line = 5.
...
* Seleksi data Asset Master
SELECT anln1 anln2 stort
INTO CORRESPONDING FIELDS OF TABLE gi_header
FROM anlz
WHERE
anln1 IN so_anln1 AND
anln2 IN so_anln2 AND
stort IN so_stort.
* "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 Deskripsi Asset
SELECT anln1 anln2 txt50 aktiv
INTO CORRESPONDING FIELDS OF TABLE gi_anla
FROM anla
FOR ALL ENTRIES IN gi_header
WHERE
anln1 = gi_header-anln1 AND
anln2 = gi_header-anln2.
* Seleksi Standar Pengukuran
SELECT stand ktext
INTO CORRESPONDING FIELDS OF TABLE gi_t499s
FROM t499s
FOR ALL ENTRIES IN gi_header
WHERE
stand = gi_header-stort.
ENDIF.
12.Modifikasi sub routine "fm_process_data"
Sebelum
*Get other requirement information
LOOP AT gi_header.
* Get Material Description
READ TABLE gi_makt WITH KEY matnr = gi_header-matnr.
IF sy-subrc = 0.
gi_header-maktx = gi_makt-maktx.
ENDIF.
* Get Measurement Text
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.
Setelah
*Get other requirement information
LOOP AT gi_header.
* Get Asset Description
READ TABLE gi_anla WITH KEY anln1 = gi_header-anln1
anln2 = gi_header-anln2.
IF sy-subrc = 0.
gi_header-txt50 = gi_anla-txt50.
gi_header-aktiv = gi_anla-aktiv.
ENDIF.
* Get Measurement Text
READ TABLE gi_t499s WITH KEY stand = gi_header-stort.
IF sy-subrc = 0.
gi_header-ktext = gi_t499s-ktext.
ENDIF.
MODIFY gi_header.
ENDLOOP.
13.Modifikasi sub routine "fm_display_data"
Sebelum
* 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.
Setelah
* Menampilkan Data ke Layar
LOOP AT gi_header.
macro_data_possition : 'CONTENT'
gi_header-anln1
gi_header-anln2
gi_header-txt50
gi_header-stort
gi_header-ktext
gi_header-aktiv.
IF sy-linno = lv_max_data.
PERFORM fm_footer USING lv_page_count.
NEW-PAGE.
ENDIF.
ENDLOOP.
14.Modify standard event "TOP-OF-PAGE"
Sebelum
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.
Setelah
* Membuat Teks Header ( 5 Baris )
ULINE AT (p_mwidth). " Upper frame border
FORMAT COLOR COL_HEADING INTENSIFIED. " Title color
"Line 1
write : /'|' no-gap,(12) ' ' no-gap,
'|' no-gap,(4) ' ' no-gap,
'|' no-gap,(50) ' ' no-gap,
'|' no-gap,(51) 'Location' no-gap centered,
'|' no-gap,(12) ' ' no-gap,
'|' no-gap.
"Line 2
macro_data_possition : 'HEADER' 'Asset Number' 'Sub. No' 'Description' SY-ULINE SY-ULINE 'Cap. Date'.
"Line 1
macro_data_possition : 'HEADER' ' ' ' ' ' ' 'ID' 'Description' ' '.
ULINE AT (p_mwidth). " Line below titles
FORMAT COLOR OFF.
15.Aktivasi dan Jalankan Program
17.Selesai
▪Seleksi input

▪Output
