Note that the SAP HTML viewer uses internet Explorer 4.0 or higher.
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.
Steps:
- Create a screen and place a container named go_html_container for the HTML viewer.
- Create a dynpro button with ethe text GGoto url and functioncode GOTOURL.
- Create a dynpro input/output field named G_SCREEN100_URL_TEXT. This field is used to key in the URLl.
- Create a dynpro input/output field named G_SCREEN100_DISPLAY_URL. This field is used to show the current URL
The screen:
The code
SAPMZ_HF_HTML_CONTROL
REPORT sapmz_hf_html_control . TYPE-POOLS: icon. CLASS cls_event_handler DEFINITION DEFERRED.*--------------------------------------
* G L O B A L V A R I A B L E S
*--------------------------------------
DATA: ok_code LIKE sy-ucomm,
* Container for html vieaer
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. *--------------------------------------
* I N T E R N A L T A B L E S
*--------------------------------------
DATA: * Table for button group
gi_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.
gi_events TYPE cntl_simple_events,
* Workspace for table gi_events
g_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.
* 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.
IF go_html_container IS INITIAL. * Create container for HTML viewer
CREATE OBJECT go_html_container EXPORTING container_name = 'HTML_CONTAINER'. * 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'. * 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 g_event. REFRESH gi_events. g_event-eventid = go_toolbar->m_id_function_selected.
g_event-appl_event = 'X'. "This is an application event
APPEND g_event TO gi_events. g_event-eventid = go_htmlviewer->m_id_navigate_complete.
APPEND g_event TO gi_events. * Use the events table to register events for the control
CALL METHOD go_toolbar->set_registered_events EXPORTING events = gi_events. CALL METHOD go_htmlviewer->set_registered_events EXPORTING events = gi_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. ENDIF. ENDMODULE. " STATUS_0100 OUTPUT
*&----------------------------------------
*& Module USER_COMMAND_0100 INPUT
*&----------------------------------------
MODULE user_command_0100 INPUT. * Handles the pushbutton for goto url
CASE ok_code. 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. * BACK botton
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table EXPORTING fcode = 'BACK'
icon = icon_arrow_left
butn_type = cntb_btype_button
text = ''
quickinfo = 'Go back'
CHANGING data_table = gi_button_group.
* FORWARD botton
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table EXPORTING fcode = 'FORWARD'
icon = icon_arrow_right
butn_type = cntb_btype_button
text = ''
quickinfo = 'Go forward'
CHANGING data_table = gi_button_group.
* STOP button
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table EXPORTING fcode = 'STOP'
icon = icon_breakpoint
butn_type = cntb_btype_button
text = ''
quickinfo = 'Stop'
CHANGING data_table = gi_button_group.
* REFRESH button
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table EXPORTING fcode = 'REFRESH'
icon = icon_refresh
butn_type = cntb_btype_button
text = ''
quickinfo = 'Refresh'
CHANGING data_table = gi_button_group.
* Home button
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table EXPORTING fcode = 'HOME'
icon = ''
butn_type = cntb_btype_button
text = 'Home'
quickinfo = 'Home'
CHANGING data_table = gi_button_group.
* Separator
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table EXPORTING fcode = 'SEP1'
icon = ' '
butn_type = cntb_btype_sep
CHANGING data_table = gi_button_group.
* EXIT button
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table EXPORTING fcode = 'EXIT'
icon = icon_close
butn_type = cntb_btype_button
text = ''
quickinfo = 'Close porgram'
CHANGING data_table = gi_button_group.
* Add button group to toolbar
CALL METHOD go_toolbar->add_button_group EXPORTING data_table = gi_button_group. ENDFORM. " add_button_group
*&------------------------------------------------
*& Form goto_url
*&------------------------------------------------
* Calls method SHOW_URL to navigate to an URL
*--------------------------------------------------
FORM goto_url. CALL METHOD go_htmlviewer->show_url EXPORTING url = g_screen100_url_text. ENDFORM. " goto_url
No comments:
Post a Comment