zoukankan      html  css  js  c++  java
  • ABAP Control Framework(2): HTML Viewer

    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.

     

  • 相关阅读:
    【前端】用 npm 安装 yarn
    【前端】HTML复习巩固
    【前端】JS-删除绑定事件
    【前端】CSS3--动画animation的基本使用,3分钟快速实现一个小动画
    【GitHub】一文入门GitHub的使用,抓紧区交友吧!!
    【git】一文让你入门git的使用
    【前端】外边距合并问题 -- 嵌套盒子
    【前端】height 和 line-height的区别
    前端各种高度宽度视图
    关于 super() , 和 this , bind(this)的粗俗理解
  • 原文地址:https://www.cnblogs.com/tangToms/p/14736933.html
Copyright © 2011-2022 走看看