Example of SAP HTML viewer to
browse the internet
REPORT z_html_viewer. *---------------------------------------------------------------------* * This example uses the SAP HTML viewer to browse the internet. The * * navigation buttons are placed on a SAP Toolbar control. The Goto * * URL button and field are normal dynpro elements, and so is the * * Show URL field. * *---------------------------------------------------------------------* * - Create the screen 0100 and place a container named * * HTML_CONTAINER for the HTML viewer. * * - Create a container named TOOLBAR_CONTAINER for the toolbar. * * - Create a dynpro button named GOTO_URL and functioncode GOTOURL. * * - Create a dynpro output field named G_SCREEN100_URL_TEXT. * * This field is used to key in the url. * * - Create a dynpro input/output field named G_SCREEN100_DISPLAY_URL. * * This field is used to show the current url * * - Flow logic of screen 100 * * * PROCESS BEFORE OUTPUT. * * MODULE status_0100. * * * PROCESS AFTER INPUT. * * MODULE user_command_0100. * *---------------------------------------------------------------------* * The Dynpro 0100 can be uploaded * * (SE51/Change/utilities/More utilities/Upload-Download/Upload) * * at this URL : Z_HTML_VIEWER_DYN_0100.html * *---------------------------------------------------------------------* TYPE-POOLS: icon. CLASS cls_event_handler DEFINITION DEFERRED. DATA: * Push button goto_url(20) VALUE 'Go To Url', okcode LIKE sy-ucomm, * Container for html viewer go_html_container TYPE REF TO cl_gui_custom_container, * HTML viewer go_htmlviewer TYPE REF TO cl_gui_html_viewer, * Container for toolbar go_toolbar_container TYPE REF TO cl_gui_custom_container, * SAP Toolbar go_toolbar TYPE REF TO cl_gui_toolbar, * Event handler for toolbar go_event_handler TYPE REF TO cls_event_handler, * Variable for URL text field on screen 100 g_screen100_url_text(255) TYPE c, g_screen100_display_url(255) TYPE c, * Table for button group gt_button_group TYPE ttb_button, * Table for registration of events. Note that a TYPE REF * to cls_event_handler must be created before you can * reference types cntl_simple_events and cntl_simple_event. gt_events TYPE cntl_simple_events, * Workspace for table gt_events gs_event TYPE cntl_simple_event. *---------------------------------------------------------------------* START-OF-SELECTION. SET SCREEN '100'. *---------------------------------------------------------------------* * CLASS cls_event_handler DEFINITION *---------------------------------------------------------------------* * Handles events for the toolbar an the HTML viewer *---------------------------------------------------------------------* CLASS cls_event_handler DEFINITION. PUBLIC SECTION. METHODS: * Handles method function_selected for the toolbar control on_function_selected FOR EVENT function_selected OF cl_gui_toolbar IMPORTING fcode, * Handles method navigate_complete for the HTML viewer control on_navigate_complete FOR EVENT navigate_complete OF cl_gui_html_viewer IMPORTING url. ENDCLASS. *---------------------------------------------------------------------* * CLASS cls_event_handler IMPLEMENTATION *---------------------------------------------------------------------* CLASS cls_event_handler IMPLEMENTATION. * Handles method function_selected for the toolbar control METHOD on_function_selected. CASE fcode. WHEN 'BACK'. CALL METHOD go_htmlviewer->go_back EXCEPTIONS cntl_error = 1. WHEN 'FORWARD'. CALL METHOD go_htmlviewer->go_forward EXCEPTIONS cntl_error = 1. WHEN 'STOP'. CALL METHOD go_htmlviewer->stop EXCEPTIONS cntl_error = 1. WHEN 'REFRESH'. CALL METHOD go_htmlviewer->do_refresh EXCEPTIONS cntl_error = 1. WHEN 'HOME'. CALL METHOD go_htmlviewer->go_home EXCEPTIONS cntl_error = 1. WHEN 'EXIT'. LEAVE TO SCREEN 0. ENDCASE. ENDMETHOD. * Handles method navigate_complete for the HTML viewer control METHOD on_navigate_complete. * Display current URL in a textfield on the screen g_screen100_display_url = url. ENDMETHOD. ENDCLASS. *---------------------------------------------------------------------* * Module STATUS_0100 OUTPUT *---------------------------------------------------------------------* MODULE status_0100 OUTPUT. CHECK go_html_container IS INITIAL. * Create container for HTML viewer CREATE OBJECT go_html_container EXPORTING container_name = 'HTML_CONTAINER' EXCEPTIONS cntl_error = 1 cntl_system_error = 2 create_error = 3 lifetime_error = 4 lifetime_dynpro_dynpro_link = 5. IF sy-subrc NE 0. MESSAGE e208(00) WITH 'The control HTML_CONTAINER could not be created'. ENDIF. * Create HTML viewer CREATE OBJECT go_htmlviewer EXPORTING parent = go_html_container. * Create container for toolbar CREATE OBJECT go_toolbar_container EXPORTING container_name = 'TOOLBAR_CONTAINER' EXCEPTIONS cntl_error = 1 cntl_system_error = 2 create_error = 3 lifetime_error = 4 lifetime_dynpro_dynpro_link = 5. IF sy-subrc NE 0. MESSAGE e208(00) WITH 'The control TOOLBAR_CONTAINER could not be created'. ENDIF. * Create toolbar CREATE OBJECT go_toolbar EXPORTING parent = go_toolbar_container. * Add buttons to the toolbar PERFORM add_button_group. * Create event table. The event ID must be found in the * documentation of the specific control CLEAR gs_event. REFRESH gt_events. gs_event-eventid = go_toolbar->m_id_function_selected. gs_event-appl_event = 'X'. " This is an application event APPEND gs_event TO gt_events. gs_event-eventid = go_htmlviewer->m_id_navigate_complete. APPEND gs_event TO gt_events. * Use the events table to register events for the control CALL METHOD go_toolbar->set_registered_events EXPORTING events = gt_events. CALL METHOD go_htmlviewer->set_registered_events EXPORTING events = gt_events. * Create event handlers CREATE OBJECT go_event_handler. SET HANDLER go_event_handler->on_function_selected FOR go_toolbar. SET HANDLER go_event_handler->on_navigate_complete FOR go_htmlviewer. g_screen100_url_text = 'www.google.com'. PERFORM goto_url. ENDMODULE. " STATUS_0100 OUTPUT *---------------------------------------------------------------------* * Module USER_COMMAND_0100 INPUT *---------------------------------------------------------------------* MODULE user_command_0100 INPUT. * Handles the pushbutton for goto url CASE okcode. WHEN 'GOTOURL'. PERFORM goto_url. ENDCASE. ENDMODULE. " USER_COMMAND_0100 INPUT *---------------------------------------------------------------------* * Form add_button_group *---------------------------------------------------------------------* * Adds a button group to the toolbar *---------------------------------------------------------------------* FORM add_button_group. DEFINE m_add_button. call method cl_gui_toolbar=>fill_buttons_data_table exporting fcode = &1 icon = &2 butn_type = cntb_btype_button text = &3 quickinfo = &4 changing data_table = gt_button_group. END-OF-DEFINITION. m_add_button 'BACK' icon_arrow_left '' 'Go back'. m_add_button 'FORWARD' icon_arrow_right '' 'Go forward'. m_add_button 'STOP' icon_breakpoint '' 'Stop'. m_add_button 'REFRESH' icon_Refresh '' 'Refresh'. m_add_button 'HOME' '' 'Home' 'Home'. m_add_button 'EXIT' icon_close '' 'Close program'. * Add button group to toolbar CALL METHOD go_toolbar->add_button_group EXPORTING data_table = gt_button_group. ENDFORM. " ADD_BUTTON_GROUP *---------------------------------------------------------------------* * Form goto_url *---------------------------------------------------------------------* * Calls method SHOW_URL to navigate to an URL *---------------------------------------------------------------------* FORM goto_url. CHECK NOT g_screen100_url_text IS INITIAL. CALL METHOD go_htmlviewer->show_url EXPORTING url = g_screen100_url_text. ENDFORM. " GOTO_URL **************** END OF PROGRAM Z_HTML_VIEWER ************************* More Function Module
Tables
ABAP Books List
Smart Forms
ABAP Menu:
Return to Index:-
(c) www.gotothings.com All material on this site is Copyright.
|