2. Buat program baru dengan nama ZSMFORMS lalu Create.
2.Double klick pada Form Interface ( Global Setting ).
3.Pada Tab Tables Isi Parameter Name dengan "GI_HEADER" Type Assigment "Like" dan Associated Type dengan "YST_VBAP". YSTR_VBAP adalah nama Structure Table.
4. Double klik Global definition.
5. Pada tab Global Data isikan Variable seperti berikut:
GW_VBAP - LIKE - YSTR_VBAP
NETW - TYPE - I.
6. Pada Tree MAIN Main Window klik kanan lalu buat Loop.
7. Pada Tab data isikan Internal Table dengan "GW_VBAP" INTO "GT_VBAP"
8.Create Text dengan cara klik kanan pada LOOP
9. Klik Menu

10. Pada Tree menu Klik Global Data -> GW_VBAP.
11. Drag semua ke dalam Text seperti pada Gambar kecuali Netwr dan Nepr.
12. Drag NETW.
13. Create Program Lines pada Menu LOOP1.
14. Ketikkan kode berikut ke Program Lines tersebut.
16. Buka t-code se38 lalu buat program baru dengan nama "ZREPORT".
17. Ketikkan kode program seperti di bawah ini:
*&-------------------------------------------*
*& Report ZREPORT*&
*&---------------------------------------------*
*&
*&
*&---------------------------------------------*
REPORT ZREPORT.
tables : vbap.
types : begin of ty_vbap,
vbeln type vbeln_va,
posnr type posnr_va,
matnr type matnr,
matkl type matkl,
meins type meins,
netwr type netwr_ap,
netpr type netpr,
waerk type waerk,
end of ty_vbap.
data : gi_vbap type standard table of ty_vbap with header line.
selection-screen : begin of block head1 with frame title text-101.
select-options so_vbeln for vbap-vbeln.
selection-screen : end of block head1.
start-of-selection.
perform fm_collect_data.
perform fm_display_data.
end-of-selection.
form : fm_collect_data.
select vbeln posnr matnr matkl meins netwr waerk netpr
from vbap
into corresponding fields of table gi_vbap
where vbeln in so_vbeln.
IF gi_vbap[] IS INITIAL.
MESSAGE 'Data tidak ditemukan..!!' TYPE 'S' DISPLAY LIKE 'E'.
STOP.
ENDIF.
endform.
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 = 'ZSMFORMS'.
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
TABLES
gt_vbap = gi_vbap "--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.
18. Aktifkan lalu Execute program.
Lalu bagaimana jika kita ingin membuat group berdasarkan VBELN?
1. Double klik pada LOOP lalu isi Field Name dengan VBELN dan centang Event on Short Begin seperti pada gambar.
2. Buat Text baru dari menu Vbeln Event on Sort Begin.
3. Drag VBELN ke dalam Text seperti pada gambar.
5. Aktifkan program lalu jalankan program "ZREPORT" melalui t-code se38.
Sekarang kita akan buat total NETWR per VBELN, langkah-langkahnya adalah sebagai berikut:
1. Buat variable baru dengan nama W_SUM dengan type I di Global Deffinitions.
2. Double klik pada LOOP1 New Loop1 lalu isi Field Name lagi dengan VBELN lalu centang Event on Sort End..
3. Double klik pada %CODE1 New Program Lines 1 lalu tambah Output Parameters dengan W_SUM.
4. Tambahkan source code "w_sum = w_sum + gw_vbap-netwr".
5. Create Text pada VBELN Event on Sort End.
6. Drag W_SUM ke dalam Text.
7. Buat Program Line pada VBELN Event on Sort End dan letakkan di bawah %TEXT2.
8.Tambahkan W_SUM pada Input Paremeters dan Output Parameters.
9.Ketikkan source code "clear w_sum".
10. Aktifkan program lalu jalankan program "ZREPORT" di se38.
Tidak ada komentar:
Posting Komentar