|
<< Click to Display Table of Contents >> Navigation: All About ABAP Technique > Indonesia > ABAP Report > SmartForms > Report (601) |
Objektif |
|
Kode Transaksi |
|
Tabel |
MARA - General Material Data (Data Material Umum) |
Support |
|
Kontributor |
Nama Form : YFO_PRACTICE_101
Meaning : Form List of Master Material
2. Klik dua kali pada menu "Form Interface"
3. Buka Tab "Import" dan tambahkan parameter import seperti gambar dibawah

4. Buka Tab "Tables" dan tambahkan parameter tables seperti gambar dibawah

Cara membuat : YST_HEADER_101, YST_RANGE_MATKL, YST_RANGE_MATNR
5. Klik dua kali pada menu "Global Definition"
6. Buka Tab "Global Data" dan tambahkan parameter seperti gambar dibawah

7. Klik dua kali pada menu "Main"
8. Buka Tab "Output Options" dan atur nilai "Possition and Size" seperti gambar dibawah

9. Klik kanan pada menu "Main" dan klik "Create > Table" untuk membuat Table (List Data)

10. Klik tombol "
" pada Tab "Table" untuk mendefinisikan kolom-kolom yang akan ditampilkan
11. Isi value seperti gambar dibawah

Catatan : Total nilai pada semua kolom tidak boleh lebih dari "Table Width"
12. Tekan tombol "
" untuk menambahkan kolom
13. Tambahkan nilai pada kolom nomer 6 dengan nilai seperti gambar dibawah

14. Tekan tombol "
" untuk kembali ke menu awal
15. Tekan tombol "
" untuk mengatur pola garis pada List Data

16. Tekan tombol "
"

17. Pilih pattern ke dua dari kiri atas, agar semua kotak terisi pada setiap baris

18. Klik Tab "Data" dan masukkan nilai seperti gambar dibawah

19. Klik kanan pada menu "Header" dan klik "Create > Table Line" untuk membuat header pada List Data

20. Pilih Line Type "%LTYPE1" dan otomatis kolom (Cell) akan terbentuk

Catatan : 1 CELL mewakili 1 kolom
21. Klik kanan pada menu "%CELL1" dan klik "Create > Text" untuk membuat title header pada kolom

22. Buka Tab "General Attribute" dan isi text "Mat. Group" seperti gambar dibawah

23. Lakukan ulang langkah 15 dan 16 untuk "%CELL2" hingga "%CELL6" dengan text dibawah ini
"%CELL2" = Mat. No.
"%CELL3" = Description
"%CELL4" = Old Mat. No.
"%CELL5" = Base Unit of Measure
"%CELL6" = Measure
Catatan : Jangan lupa tekan tombol "
" setiap satu proses panjang
24. Klik kanan pada menu "Main Area" dan klik "Create > Table Line" untuk membuat Baris Data

25. Pilih Line Type "%LTYPE1" dan otomatis kolom (Cell) akan terbentuk

26. Klik kanan pada menu "%CELL7" dan klik "Create > Text" untuk membuat baris data pada kolom

27. Buka Tab "General Attribute"
28. Klik menu " Utilities > Field List on/off" atau tekan "Ctrl + Shift + F4" untuk membuka List dari parameter-parameter yang di deklarasi pada langkah 3-7

29. Buka Field "Global Data > GW_HEADER"

30. Drag and Drop "MATKL" kedalam Tab "General Attributes"

31. Lakukan ulang langkah 21 dan 25 untuk "%CELL8" hingga "%CELL12" dengan text dibawah ini
"%CELL8" = MATNR
"%CELL9" = MAKTX
"%CELL10" = BISMT
"%CELL11" = MEINS
"%CELL12" = MSEHT
Catatan : Jangan lupa tekan tombol "
" setiap satu proses panjang
32. Tekan tombol "
" untuk melakukan Check sekaligus aktivasi Form
33. Tekan tombol "
" untuk melakukan test running Form
34. Selesai
1.Buka SE38
2.Salin Program "YPRACTICE_101" menjadi "YPRACTICE_601"
3.Ubah Program "YPRACTICE_601"
4.Buka Goto > Attributes, dan ubah "Title" dengan"601 - Display List of Master Material"
5.Modifikasi Deklarasi Report
Sebelum
REPORT ypractice_101.
Setelah
REPORT ypractice_601.
6.Modifikasi "GLOBAL VARIABLE DECRALATION"
Sebelum
*----------------------------------------------------------------------*
*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
Setelah
*----------------------------------------------------------------------*
*GLOBAL VARIABLE DECRALATION
*----------------------------------------------------------------------*
DATA: gi_header LIKE STANDARD TABLE OF yst_header_101 WITH HEADER LINE,
gi_makt LIKE STANDARD TABLE OF makt WITH HEADER LINE,
gi_t006a LIKE STANDARD TABLE OF t006a WITH HEADER LINE.
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_mrow.
PARAMETERS p_mrow TYPE i DEFAULT 1000 LENGTH 5.
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. Row'.
*----------------------------------------------------------------------*
*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.
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_fmname TYPE rs38l_fnam,
lw_options TYPE ssfcompop,
lw_control TYPE ssfctrlop,
lw_tdbool TYPE tdbool.
* Get Function Module name base on SmartForms name
lv_fmname = 'YFO_PRACTICE_101'.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = lv_fmname
IMPORTING
fm_name = lv_fmname
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* Set Properties of Printer
lw_tdbool = space.
lw_control-no_dialog = ''.
lw_control-preview = 'X'.
* lw_options-tddest = nast-ldest.
lw_options-tdimmed = 'X'.
lw_options-tddelete = 'X'.
* Call and Run SmartForms
CALL FUNCTION lv_fmname
EXPORTING
control_parameters = lw_control
output_options = lw_options
user_settings = lw_tdbool
gv_max_row = p_mrow "--User Define Form Interface
TABLES
gi_header = gi_header "--User Define Form Interface
gr_matkl = so_matkl "--User Define Form Interface
gr_matnr = so_matnr "--User Define Form Interface
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. "fm_display_data
11.Aktivasi dan Jalankan Program
13.Selesai
▪Seleksi Input

▪Output
