* Demoprogramme:
* SAPHTML_EVENTS_DEMO
* SAPHTML_SCRIPT_DEMO
* DEMO_TABLE_EXPRESSIONS
TYPES: ty_it_events TYPE STANDARD TABLE OF cntl_simple_event WITH DEFAULT KEY.
PARAMETERS: p_url TYPE string.
CLASS lcl_events DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
on_navigate_complete FOR EVENT navigate_complete OF cl_gui_html_viewer
IMPORTING
url
sender.
CLASS-METHODS:
on_sapevent FOR EVENT sapevent OF cl_gui_html_viewer
IMPORTING
action
frame
getdata
postdata
query_table
sender.
ENDCLASS.
CLASS lcl_events IMPLEMENTATION.
* nach Aufbau des Dokuments
METHOD on_navigate_complete.
p_url = url.
ENDMETHOD.
* Link- oder Button-Klick
METHOD on_sapevent.
MESSAGE |Action: { action }, get: { getdata }| TYPE 'S'.
ENDMETHOD.
ENDCLASS.
INITIALIZATION.
DATA(o_dock) = NEW cl_gui_docking_container( ratio = 50
side = cl_gui_docking_container=>dock_at_bottom
no_autodef_progid_dynnr = 'X' ).
* HTML-Viewer
DATA(o_html) = NEW cl_gui_html_viewer( parent = o_dock ).
* Eventtypten müssen gesondert registriert werden
DATA(it_events) = VALUE ty_it_events( ( eventid = cl_gui_html_viewer=>m_id_navigate_complete
appl_event = abap_true )
( eventid = cl_gui_html_viewer=>m_id_sapevent
appl_event = abap_true ) ).
o_html->set_registered_events( events = it_events ).
* Eventhandler registrieren
SET HANDLER lcl_events=>on_navigate_complete FOR o_html.
SET HANDLER lcl_events=>on_sapevent FOR o_html.
* HTML-Code mit Buttons und Forms
DATA(it_html) = VALUE html_table( ( |<html>| )
( | <head>| )
( | <title>Drag & Drop Test</title>| )
( | </head>| )
( | <script type="text/javascript">| )
( | function mouse_click(element)| )
( | \{| )
( | location.href = "SAPEVENT:" + element;| )
( | \}| )
( | </script>| )
( | <body bgcolor="#AABBCC">| )
( | <p><font size=30>Dateien mit der Maus hierher ziehen!</font></p>| )
( | <form method="post" action="SAPEVENT:SHOW_INFO?PARAMETER1">| )
( | <p><input type="submit" value="Klick!"></p>| )
( | </form>| )
( | <form method="post" action="">| )
( | <a href="SAPEVENT:LINK_KLICK?PARAMETER2">Link</a>| )
( | </form>| )
( | <button onclick="mouse_click('BTN_CLICK')">Show</button>| )
( | </body>| )
( |</html>| ) ).
* URL zu HTML holen
DATA: lv_url TYPE swk_url.
o_html->load_data( IMPORTING
assigned_url = lv_url
CHANGING
data_table = it_html ).
* HTML anzeigen
o_html->show_url( url = lv_url ).