2.HTML Viewer
通过cl_gui_html_viewer类显示url链接或者显示HTML页面。
1.创建cl_gui_html_viewer类对象,调用show_url显示url对应网页;
2.调用load_html_document方法加载Tcode:SMW0的html;
上传html文檔:
<HTML> <HEAD> <TITLE>SAP HTML Page</TITLE> </HEAD> <BODY> <H1> <IMG SRC=SAPLOGO.GIF ALIGN=MIDDLE> SAP HTML Header </H1> <P> <H2>SAP HTML Post Form</H2> <FORM method=post action=SAPEVENT:POST> <INPUT TYPE=text NAME=FirstName VALUE=John> <INPUT TYPE=submit VALUE="Submit input using POST method"> </FORM> </P> <P> <H2>SAP HTML Get Form</H2> <FORM method=get action="SAPEVENT:GET"> <INPUT TYPE=text NAME=FirstName VALUE=king> <INPUT TYPE=submit VALUE="Submit input using GET method"> </FORM> </P> </BODY> </HTML>
Tcode:SMW0,上传html文件
示例:
"html viewer事件 CLASS c1_event DEFINITION. PUBLIC SECTION. CLASS-METHODS:m_sapevent FOR EVENT sapevent OF cl_gui_html_viewer IMPORTING action frame getdata postdata query_table. ENDCLASS. CLASS c1_event IMPLEMENTATION. METHOD m_sapevent. DATA:lv_str TYPE string. DATA:lt_postdata TYPE cnht_post_data_tab. DATA:ls_postdata LIKE LINE OF lt_postdata. DATA:lt_edquery TYPE cnht_query_table. DATA:ls_edquery LIKE LINE OF lt_edquery. lv_str = 'action:' && action && ';frame' && frame && ';getdata' && getdata. lt_postdata = postdata. lt_edquery = query_table. IF lt_postdata IS NOT INITIAL. READ TABLE lt_postdata INTO ls_postdata INDEX 1. ENDIF. lv_str = lv_str && ';' && ls_postdata. LOOP AT lt_edquery INTO ls_edquery. lv_str = lv_str && ';name=' && ls_edquery-name && '-' && ls_edquery-value. ENDLOOP. MESSAGE lv_str TYPE 'I'. ENDMETHOD. ENDCLASS. "cl_gui_html_viewer "html显示 CLASS c1 DEFINITION. PUBLIC SECTION. DATA:lo_html_viewer TYPE REF TO cl_gui_html_viewer. METHODS:m_html_init. METHODS:m_html_viewer IMPORTING iv_url TYPE string. METHODS:m_html_load. ENDCLASS. CLASS c1 IMPLEMENTATION. METHOD m_html_init. DATA:lt_events TYPE cntl_simple_events. DATA:ls_events LIKE LINE OF lt_events. CREATE OBJECT lo_html_viewer EXPORTING parent = cl_gui_container=>default_screen. "设置event ls_events-eventid = lo_html_viewer->m_id_sapevent. ls_events-appl_event = 'X'. APPEND ls_events TO lt_events. lo_html_viewer->set_registered_events( events = lt_events ). SET HANDLER c1_event=>m_sapevent FOR lo_html_viewer. ENDMETHOD. METHOD m_html_viewer. DATA:lv_url TYPE C LENGTH 200. lv_url = iv_url. CREATE OBJECT lo_html_viewer EXPORTING parent = cl_gui_container=>default_screen. "使用GUI显示html lo_html_viewer->show_url( url = lv_url ). "使用默认浏览器打开url "lo_html_viewer->detach_url_in_browser( url = lv_url ). "lo_html_viewer->show_url_in_browser( url = lv_url ). ENDMETHOD. "加载html,Tcode:smw0,文檔 METHOD m_html_load. DATA:lv_url TYPE C LENGTH 200. "加载图片 lo_html_viewer->load_mime_object( EXPORTING object_id = 'HTMLCNTL_TESTHTM2_SAPLOGO' object_url = 'SAPLOGO.GIF' ). "加载html lo_html_viewer->load_html_document( EXPORTING document_id = 'ZTOM_HTML' IMPORTING assigned_url = lv_url ). lo_html_viewer->show_url( url = lv_url ). ENDMETHOD. ENDCLASS. START-OF-SELECTION. PERFORM f_show_html. FORM f_show_html. DATA:lv_url TYPE string VALUE 'https://www.runoob.com/'. DATA:lo_c1 TYPE REF TO c1. "生成一个默认屏幕 WRITE:/ '1'. CREATE OBJECT lo_c1. lo_c1->m_html_init( ). "lo_c1->m_html_viewer( iv_url = lv_url ). lo_c1->m_html_load( ). ENDFORM.