blog
akp mersin
emo
rock
mp3 dinle

Attention: open in a new window. PDFPrintE-mail

2007
19
Sep

HTML Viewer Control

User Rating: / 1
PoorBest 

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
Last Updated (Wednesday, 19 September 2007 23:39)
Please register or login to add your comments to this article.
blog
akp mersin
emo
rock
mp3 dinle
Banner