|
Report (302) |
Home | ||||
|
Previous Next | |||||
Sebelum REPORT ypractice_301.
Setelah REPORT ypractice_302.
*----------------------------------------------------------------------* *GLOBAL VARIABLE DECRALATION *----------------------------------------------------------------------* DATA : gv_html_event_tab TYPE cntl_simple_events, gv_html_event TYPE cntl_simple_event, gv_repid LIKE sy-repid, gv_frame(255), gv_action(256), gv_getdata(2048), gv_postdataline(1024), gi_postdata_tab TYPE cnht_post_data_tab, gi_query_table TYPE TABLE OF w3query WITH HEADER LINE.
*---------------------------------------------------------------------* * CLASS cl_html_event_handler DEFINITION *---------------------------------------------------------------------* * *---------------------------------------------------------------------* CLASS cl_html_event_handler DEFINITION.
PUBLIC SECTION. * Event yg aktif METHODS: on_sapevent FOR EVENT sapevent OF cl_gui_html_viewer IMPORTING action frame getdata postdata query_table.
ENDCLASS. "cl_html_event_handler DEFINITION
Data: gv_evt_receiver TYPE REF TO cl_html_event_handler.
*---------------------------------------------------------------------* * CLASS cl_html_event_handler IMPLEMENTATION *---------------------------------------------------------------------* * *---------------------------------------------------------------------* CLASS cl_html_event_handler IMPLEMENTATION.
* Prsedur Event METHOD on_sapevent.
CLEAR gv_action. CLEAR gv_frame. CLEAR gv_getdata. CLEAR gv_postdataline.
gv_action = action. gv_frame = frame. gv_getdata = getdata. gi_postdata_tab = postdata. IF NOT gi_postdata_tab IS INITIAL. READ TABLE gi_postdata_tab INDEX 1 INTO gv_postdataline. ENDIF. gi_query_table[] = query_table[].
CASE action. * Aksi "BUKA HALAMAN" Ketika menekan tombol di Halaman HTML WHEN 'SUBMIT_PAGE_NO'. PERFORM fm_display_data.
WHEN OTHERS. ENDCASE. ENDMETHOD. "on_sapevent
ENDCLASS. "cl_html_event_handler IMPLEMENTATION
... concatenate &1 &2 &3 into gi_html_code-line_code. append gi_html_code. END-OF-DEFINITION.
*----------------------------------------------------------------------* *INCLUDE PROGRAM *----------------------------------------------------------------------* *Anda dapat menaruh Program include pada halaman di bawah
INCLUDE ypractice_302_classes.
*----------------------------------------------------------------------* *Input Screen/Selection *----------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK groupbox1 WITH FRAME TITLE text_101. "Declare Group Box 1 ...
Sebelum ... 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. ...
Setelah ... 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 BEGIN OF LINE. SELECTION-SCREEN COMMENT 1(18) text_203 FOR FIELD p_mline . PARAMETERS p_mline TYPE n DEFAULT 20 LENGTH 4. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK groupbox2. "End Group Box 2 ...
text_203 = 'Max. Line per Page'.
*&--------------------------------------------------------------------* *& Form fm_create_paging_menu *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* * -->FV_TOTAL_PAtext * -->FV_ACTIVE_PtextNO *---------------------------------------------------------------------* FORM fm_create_paging_menu USING fv_total_page fv_active_page_no. DATA : lv_counter TYPE n LENGTH 4, lv_item(256). lv_counter = 0.
write_code1 ' <form name="form1" method="post" action="SAPEVENT:SUBMIT_PAGE_NO">'. write_code1 ' <tr colspan="6" class="style2">'. write_code1 ' <td>Page : '. write_code1 ' <select name="PAGE_NO" id="PAGE_NO">'.
WHILE fv_total_page > lv_counter. lv_counter = lv_counter + 1. IF lv_counter = fv_active_page_no. CONCATENATE '<option value="' lv_counter '" selected>' lv_counter '</option>' INTO lv_item. ELSE. CONCATENATE '<option value="' lv_counter '" >' lv_counter '</option>' INTO lv_item. ENDIF. write_code1 lv_item.
ENDWHILE.
write_code3 ' </select> / ' fv_total_page ' '. write_code1 ' <input name="Open_Submit" type="submit" id="Open_Submit" value="Open"></td>'. write_code1 ' </tr>'. write_code1 ' </form>'.
ENDFORM. "fm_create_paging_menu
Sebelum *&--------------------------------------------------------------------* *& 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>'.
* Menampilkan 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 Baris 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
Setelah *&--------------------------------------------------------------------* *& Form fm_display_data *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* FORM fm_display_data. DATA : lv_active_page_no TYPE n LENGTH 4, lv_limit_top TYPE i, lv_limit_bottom TYPE i, lv_total_page LIKE lv_active_page_no, lv_remainder LIKE lv_active_page_no.
* Menghitung Total Halaman lv_total_page = ( LINES( gi_header ) DIV p_mline ). lv_remainder = LINES( gi_header ) MOD p_mline.
IF lv_remainder > 0. lv_total_page = lv_total_page+1. ENDIF.
* Memnghitung Batas Halaman IF LINES( gi_query_table ) > 0 AND gv_action = 'SUBMIT_PAGE_NO'. READ TABLE gi_query_table WITH KEY name = 'PAGE_NO'. IF sy-subrc = 0. lv_active_page_no = gi_query_table-value.
lv_limit_top = lv_active_page_no * p_mline. ENDIF. ELSE. lv_active_page_no = 1. lv_limit_top = 1. ENDIF.
lv_limit_bottom = lv_limit_top + p_mline.
REFRESH gi_html_code. PERFORM fm_create_css.
write_code1 '<body>'.
write_code1 '<table width="100%" border="0" cellspacing="2" cellpadding="0">'. PERFORM fm_create_paging_menu USING lv_total_page lv_active_page_no.
* 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>'.
* Menampilkan Data Ke layar LOOP AT gi_header FROM lv_limit_top TO lv_limit_bottom. 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 Baris Line write_code1 ' <td bgcolor="#999999" class="styleHeader" colspan="6"> </td>'. PERFORM fm_create_paging_menu USING lv_total_page lv_active_page_no. 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
Sebelum *&--------------------------------------------------------------------* *& 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
Setelah *&--------------------------------------------------------------------* *& Form fm_load_html *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* * -->URL text *---------------------------------------------------------------------* FORM fm_load_html USING fv_url. TRY. CALL METHOD cc_report_display->show_url EXPORTING url = fv_url. CATCH cx_sy_ref_is_initial. LEAVE TO SCREEN 0. ENDTRY. ENDFORM. "fm_load_html
Sebelum *&---------------------------------------------------------------------* *& Module STATUS_2000 OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE status_2000 OUTPUT. SET PF-STATUS 'ST_2000'. * 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'.
* Meregrister Event IF NOT cc_report_display IS INITIAL. gv_html_event-eventid = cc_report_display->m_id_sapevent. gv_html_event-appl_event = 'x'. APPEND gv_html_event TO gv_html_event_tab.
CALL METHOD cc_report_display->set_registered_events EXPORTING events = gv_html_event_tab.
CREATE OBJECT gv_evt_receiver.
SET HANDLER gv_evt_receiver->on_sapevent FOR cc_report_display. ELSE. LEAVE TO SCREEN 0. ENDIF. ENDMODULE. " STATUS_2000 OUTPUT
Sebelum *&---------------------------------------------------------------------* *& 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
Setelah *&---------------------------------------------------------------------* *& Module USER_COMMAND_2000 INPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE user_command_2000 INPUT. save_ok = ok_code. CLEAR ok_code.
CASE save_ok. WHEN 'BACK'. REFRESH gi_query_table. IF NOT cc_report_display IS INITIAL. CALL METHOD cc_report_display->free. FREE cc_report_display. ENDIF. LEAVE TO SCREEN 0. WHEN OTHERS. CALL METHOD cl_gui_cfw=>dispatch.
ENDCASE.
CLEAR ok_code. ENDMODULE. " USER_COMMAND_2000 INPUT
|
| User Threads | New Thread ( Only for Donators ) |
|
|
|||
| Threads | Last Post | Replies | Views |
|
|
|||