Views 280
Visitors 157

Report (301)

Home 
| Top Page | Threads |
Previous  Next

Objektif

Kode Transaksi

SE38 - ABAP Editor

Tabel

MARA - General Material Data

MAKT - Material Descriptions

T006A - Assign Internal to Language-Dependent Unit

Support

Video

 

Membuat Report

1.Buka SE38
2.Salin Program "YPRACTICE_101" menjadi "YPRACTICE_301"
3.Ubah Program "YPRACTICE_301"
4.Buka Goto > Attributes, dan ubah "Title" dengan "301 - Display List of Master Material"
5.Modifikasi Deklarasi Report

Sebelum

REPORT  ypractice_101.

 

Setelah

REPORT  ypractice_301.

 

6.Tambahkan Screen Baru untuk menampilkan Report HTML

Tampilkan Langkah-langkahnya

Klik "ar0015" untuk menampilkan semua objek
Klik kanan pada Object Tree

ar0016

Masukkan 'Screen number' "2000" dan kemudian tekan "abap_tutorial0025"

ar0017

Isikan short description "Html Report"
Klik "ar0018" untuk memulai design layout(desain Tampilan)
Klik "ar0020" untuk menambahkan komponen "Custom Control" ke screen and isi 'Custom Control name'(Nama) dengan "CC_REPORT_DISPLAY"
Seleksi  "CC_REPORT_DISPLAY", lalu klik "ar0021" (Attribute Windows)
Atur komponen seperti screen dibawah

ar0022   ar0023

Klik "abap_tutorial0019" untuk menyimpan design layout
Tutup design layout and kembali ke screen sebelumnya
Klik tab "Element List"
Isi pada cell (kolom) kosong dengan "OK_CODE"

ar0031

Klik ganda "ar0024" dan kembali ke kode sintak
7.Hapus DEFINE macro_data_possition.
8.Tambahkan variabel Global Baru

DATA: ok_code LIKE sy-ucomm,

      save_ok TYPE sy-ucomm.

 

* Dibutuhkan Report HTML

TYPES: BEGIN OF gy_html_code,

         line_code(1000),

       END OF gy_html_code.

DATA: gi_html_code TYPE TABLE OF gy_html_code WITH HEADER LINE.

 

DATA: cc_report_display TYPE REF TO cl_gui_html_viewer,

      web_container TYPE REF TO cl_gui_custom_container.

 

DEFINE write_code1.

  clear gi_html_code.

  gi_html_code-line_code = &1.

  append gi_html_code.

END-OF-DEFINITION.

 

DEFINE write_code2.

  clear gi_html_code.

  concatenate &1 &2 into gi_html_code-line_code.

  append gi_html_code.

END-OF-DEFINITION.

 

DEFINE write_code3.

  clear gi_html_code.

  concatenate &1 &2 &3 into gi_html_code-line_code.

  append gi_html_code.

END-OF-DEFINITION.

 

9.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(14) text_102 FOR FIELD so_matkl.

SELECT-OPTIONS so_matkl FOR mara-matkl OBLIGATORY DEFAULT '001'.

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

 

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(18) text_202 FOR FIELD p_fname.

PARAMETERS p_fname LIKE rlgrap-filename OBLIGATORY DEFAULT 'C:\abap_report_01.html'.

SELECTION-SCREEN END OF LINE.

 

SELECTION-SCREEN END OF BLOCK groupbox2.                              "End Group Box 2

 

10.Buat subroutine baru "fm_initialization"

*&--------------------------------------------------------------------*

*&      Form  fm_initialization

*&--------------------------------------------------------------------*

*       text

*---------------------------------------------------------------------*

FORM fm_initialization.

  IF cc_report_display IS INITIAL.

 

    CREATE OBJECT web_container

        EXPORTING

            container_name = 'CC_REPORT_DISPLAY'.

 

    CREATE OBJECT cc_report_display

         EXPORTING

              parent    = web_container.

    IF sy-subrc NE 0.

*

    ENDIF.

  ENDIF.

ENDFORM.                    "fm_initialization

 

11.Buat inisiasi kode, Tuliskan setelah Input Screen Block

*----------------------------------------------------------------------*

*INITIALIZATION

*----------------------------------------------------------------------*

INITIALIZATION.

  text_101 = 'Selection Parameter'.

  text_102 = 'Material Group'.

  text_103 = 'Material Number'.

 

  text_201 = 'Save Html File'.

  text_202 = 'File Location'.

 

  PERFORM fm_initialization.

 

12.Buat subroutine baru "fm_create_css"

*&--------------------------------------------------------------------*

*&      Form  fm_create_css

*&--------------------------------------------------------------------*

*       text

*---------------------------------------------------------------------*

*      -->FV_CSS     text

*---------------------------------------------------------------------*

FORM fm_create_css.

  write_code1 '<style type="text/css">'.

  write_code1 '<!--'.

  write_code1 '.styleHeader {'.

  write_code1 '        font-family: Arial, Helvetica, sans-serif;'.

  write_code1 '        font-size: 12px;'.

  write_code1 '        font-weight: bold;'.

  write_code1 '        text-align: center;'.

  write_code1 '                                  }'.

  write_code1 '.style1 {'.

  write_code1 '        font-family: Arial, Helvetica, sans-serif;'.

  write_code1 '        font-size: 12px;'.

  write_code1 '        text-align: center;'.

  write_code1 '                                  }'.                                        

  write_code1 '.style2 {'.

  write_code1 '        font-family: Arial, Helvetica, sans-serif;'.

  write_code1 '        font-size: 12px;'.

  write_code1 '        text-align: left;'.

  write_code1 '                                  }'.                                                

  write_code1 '-->'.

  write_code1 '</style>'.

 

ENDFORM.                    "fm_create_css

 

13.Buat subroutine baru "fm_create_html_file"

*&--------------------------------------------------------------------*

*&      Form  fm_create_temp_html

*&--------------------------------------------------------------------*

*       text

*---------------------------------------------------------------------*

*      -->FI_FILE    text

*      -->FV_URL     text

*---------------------------------------------------------------------*

FORM fm_create_html_file TABLES fi_file STRUCTURE gi_html_code USING fv_url.

  CONDENSE fv_url NO-GAPS.

 

  CALL FUNCTION 'WS_DOWNLOAD'

    EXPORTING

      filename            = fv_url

      filetype            = 'ASC'

    TABLES

      data_tab            = fi_file

    EXCEPTIONS

      file_open_error     = 1

      file_write_error    = 2

      invalid_filesize    = 3

      invalid_table_width = 4

      invalid_type        = 5

      no_batch            = 6

      unknown_error       = 7

      OTHERS              = 8.

 

ENDFORM.                    "fm_create_temp_html

 

14.Buat subroutine baru "fm_load_html"

*&--------------------------------------------------------------------*

*&      Form  fm_load_html

*&--------------------------------------------------------------------*

*       text

*---------------------------------------------------------------------*

*      -->URL        text

*---------------------------------------------------------------------*

FORM fm_load_html USING fv_url.

  CALL METHOD cc_report_display->show_url

    EXPORTING

      url = fv_url.

ENDFORM.                    "fm_load_html

 

15.Modifikasi subroutine "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 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.

  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.

 

  REFRESH gi_html_code.

 

  PERFORM fm_create_css.

  write_code1 '<body>'.

  write_code1 '<table width="100%" border="0" cellspacing="2" cellpadding="0">'.

 

*  Membuat Teks Header

  write_code1 '  <tr bgcolor="#999999" class="styleHeader">'.

  write_code1 '    <td>Mat. Group</td>'.

  write_code1 '    <td>Mat. No.</td>'.

  write_code1 '    <td>Description</td>'.

  write_code1 '    <td>Old Mat. No.</td>'.

  write_code1 '    <td>Base Unit of Measure</td>'.

  write_code1 '    <td>Measure</td>'.

  write_code1 '  </tr>'.

 

*  Memnampilkan Data Ke Layar

  LOOP AT gi_header.

    write_code1 '  <tr bgcolor="#EBEBEB">'.

    write_code3 '    <td class="style1">' gi_header-matkl '</td>'.

    write_code3 '    <td class="style1">' gi_header-matnr '</td>'.

    write_code3 '    <td class="style2">' gi_header-maktx '</td>'.

    write_code3 '    <td class="style2">' gi_header-bismt '</td>'.

    write_code3 '    <td class="style1">' gi_header-meins '</td>'.

    write_code3 '    <td class="style2">' gi_header-mseht '</td>'.

    write_code1 '  </tr>'.

 

  ENDLOOP.

 

*  Akhir Dari Line

  write_code1 '</table>'.

  write_code1 '</body>'.

 

 

  PERFORM fm_create_html_file TABLES gi_html_code USING p_fname.

  PERFORM fm_load_html USING p_fname.

 

  CALL SCREEN 2000.

 

ENDFORM.                    "fm_display_data

 

16.Tambahkan GUI Status Baru untuk Screen 2000

Tampilkan Langkah-langkahnya

Klik kanan pada on Objek Tree

ar0025

Isi Status dengan "ST_2000" dan Short Text dengan "GUI Status for Screen 2000"

ar0026

Klik "abap_tutorial0025"
Buka Function Key
Pilih Standard Toolbar dan Masukkan BACK pada icon nomer 3dari sebelah kiri

ar0027

Klik "abap_tutorial0019" Untuk Menyimpan GUI Status
Klik Ganda "ar0024" dan kembali ke Source Code (Kode sintak)
17.Klik Ganda Screen 2000 pada Objek Tree

ar0028

18.Modifikasi Screen 2000 Flow Logic

Sebelum

PROCESS BEFORE OUTPUT.

* MODULE STATUS_2000.

*

PROCESS AFTER INPUT.

* MODULE USER_COMMAND_2000.

 

Setelah

PROCESS BEFORE OUTPUT.

MODULE STATUS_2000.

*

PROCESS AFTER INPUT.

MODULE USER_COMMAND_2000.

 

 

19.Klik "abap_tutorial0019" untuk menyimpan Screen 2000
20.Klik ganda pada text "STATUS_2000"
21.Seleksi "YPRACTICE_301" dan klik "abap_tutorial0025" untuk membuat modul baru STATUS_2000

ar0029

22.Modifikasi Modul "STATUS_2000 output"

Sebelum

*&---------------------------------------------------------------------*

*&      Module  STATUS_2000  OUTPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

module STATUS_2000 output.

*  SET PF-STATUS 'xxxxxxxx'.

*  SET TITLEBAR 'xxx'.

 

endmodule.                 " STATUS_2000  OUTPUT

 

Setelah

*&---------------------------------------------------------------------*

*&      Module  STATUS_2000  OUTPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

module STATUS_2000 output.

  SET PF-STATUS 'ST_2000'.

*  SET TITLEBAR 'xxx'.

 

endmodule.                 " STATUS_2000  OUTPUT

 

23.Kembali ke Screen 2000 Flow Logic
24.Klik Ganda pada text "USER_COMMAND_2000"
25.Seleksi "YPRACTICE_301" dan Klik "abap_tutorial0025" untuk membuat modul baru USER_COMMAND_2000

ar0030

26.Modifikasi modul "USER_COMMAND_2000 input"

Sebelum

*&---------------------------------------------------------------------*

*&      Module  USER_COMMAND_2000  INPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

module USER_COMMAND_2000 input.

 

endmodule.                 " USER_COMMAND_2000  INPUT

 

Setelah

*&---------------------------------------------------------------------*

*&      Module  USER_COMMAND_2000  INPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE user_command_2000 INPUT.

  save_ok = ok_code.

  CLEAR ok_code.

 

  CASE save_ok.

    WHEN 'BACK'.

      LEAVE TO SCREEN 0.

    WHEN OTHERS.

 

  ENDCASE.

 

  CLEAR ok_code.

ENDMODULE.                 " USER_COMMAND_2000  INPUT

 

27.Klik "abap_tutorial0019" dan Klik "abap_tutorial0031"
28.Seleksi "REPS", "CUAD" and "DYNP"

ar0032

29.Klik "abap_tutorial0025" untuk mengaktivasi program
30.Test dan Jalankan Program
32.Selesai

 

Hasil

Seleksi Input

ar0033

Output

ar0034

 

User Threads | New Thread ( Only for Donators )

Threads Last Post Replies Views