首页 > 其他 > 详细

SAP HTLM Control

时间:2021-04-02 12:31:09      阅读:23      评论:0      收藏:0      [点我收藏+]

HTML 事件

效果

技术分享图片

 

 

代码

*&---------------------------------------------------------------------*
*& Report SAPHTML_EVENTS_DEMO                                          *
*&---------------------------------------------------------------------*
REPORT  saphtml_events_demo.

DATA: html_control TYPE REF TO cl_gui_html_viewer,
          my_container TYPE REF TO cl_gui_custom_container,
      prog_repid LIKE sy-repid,                             "#EC NEEDED
      edurl(2048),
      edframe(255),
      edaction(256),
      edgetdata(2048),
      edpostdataline(1024),
      ok_code LIKE sy-ucomm,
      myevent_tab TYPE cntl_simple_events,
      myevent TYPE cntl_simple_event,
      postdata_tab TYPE cnht_post_data_tab,
      edquery_table TYPE cnht_query_table.                  "#EC NEEDED


*****************************************************
*              CLASS cl_myevent_handler             *
*****************************************************
CLASS cl_myevent_handler DEFINITION.

  PUBLIC SECTION.
    METHODS: on_sapevent
               FOR EVENT sapevent OF cl_gui_html_viewer
                 IMPORTING action frame getdata postdata query_table.

ENDCLASS.

SET SCREEN 100.

DATA: evt_receiver TYPE REF TO cl_myevent_handler.

* CLASS CL_GUI_CFW DEFINITION LOAD.

*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS TESTHTM1.
  SET TITLEBAR 001.

  IF html_control IS INITIAL.
    prog_repid = sy-repid.

    CREATE OBJECT my_container
        EXPORTING
            container_name = HTML_CONTROL.

    CREATE OBJECT html_control
         EXPORTING
              parent    = my_container.
    IF sy-subrc NE 0.
*
    ENDIF.

* register event
    myevent-eventid = html_control->m_id_sapevent.
    myevent-appl_event = x.
    APPEND myevent TO myevent_tab.
    CALL METHOD html_control->set_registered_events
        EXPORTING
           events = myevent_tab.

    CREATE OBJECT evt_receiver.

    SET HANDLER evt_receiver->on_sapevent
                FOR html_control.

    PERFORM load_graphics.
    PERFORM load_home_page.
  ENDIF.
ENDMODULE.                             " STATUS_0100  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  CASE ok_code.
    WHEN BACK.                       "Beenden
      IF NOT html_control IS INITIAL.
        CALL METHOD html_control->free.
        FREE html_control.
      ENDIF.
      LEAVE TO SCREEN 0.

    WHEN HHOM.                       " show the home page
      PERFORM load_home_page.

    WHEN HBAK.
      CALL METHOD html_control->go_back.

    WHEN HFWD.
      CALL METHOD html_control->go_forward.

    WHEN HRFR.
      CALL METHOD html_control->do_refresh.

    WHEN OTHERS.
      CALL METHOD cl_gui_cfw=>dispatch.
  ENDCASE.
  CLEAR ok_code.
ENDMODULE.                             " USER_COMMAND_0100  INPUT


*&---------------------------------------------------------------------*
*&      Form  LOAD_HOME_PAGE
*&---------------------------------------------------------------------*
FORM load_home_page.
  DATA: doc_url(80).

  CALL METHOD html_control->load_html_document
       EXPORTING
            document_id  = SAPHTML_EVENTS_DEMO_HOME
       IMPORTING
            assigned_url = doc_url
       EXCEPTIONS
            OTHERS       = 1.

  IF sy-subrc EQ 0.
    CALL METHOD html_control->show_url
         EXPORTING
              url = doc_url.
  ENDIF.
ENDFORM.                               " LOAD_HOME_PAGE


*&---------------------------------------------------------------------*
*&      Form  LOAD_FRAME_SET
*&---------------------------------------------------------------------*
FORM load_frame_set.
  DATA: doc_url(80).

  CALL METHOD html_control->load_html_document
       EXPORTING
            document_id  = SAPHTML_EVENTS_DEMO_FRAME1
            document_url = HTMLFrame1.htm
       EXCEPTIONS
            OTHERS       = 1.

  CALL METHOD html_control->load_html_document
       EXPORTING
            document_id  = SAPHTML_EVENTS_DEMO_HOME
            document_url = HTMLFrame2.htm
       EXCEPTIONS
            OTHERS       = 1.

  CALL METHOD html_control->load_html_document
       EXPORTING
            document_id  = SAPHTML_EVENTS_DEMO_FRAMESET
       IMPORTING
            assigned_url = doc_url
       EXCEPTIONS
            OTHERS       = 1.

  IF sy-subrc EQ 0.
    CALL METHOD html_control->show_url
         EXPORTING
              url = doc_url.
  ENDIF.
ENDFORM.                               " LOAD_FRAME_SET


*&---------------------------------------------------------------------*
*&      Form  LOAD_GRAPHICS
*&---------------------------------------------------------------------*
FORM load_graphics.
  CALL METHOD html_control->load_mime_object
     EXPORTING
          object_id  = HTMLCNTL_TESTHTM2_SAPLOGO
          object_url = SAPLOGO.GIF
     EXCEPTIONS
          OTHERS     = 1.
  CALL METHOD html_control->load_mime_object
       EXPORTING
            object_id  = HTMLCNTL_TESTHTM2_SAP_AG
            object_url = SAP_AG.GIF
       EXCEPTIONS
            OTHERS     = 1.
  CALL METHOD html_control->load_mime_object
       EXPORTING
            object_id  = HTMLCNTL_TESTHTM2_BACKGROUND
            object_url = HOME_BACKGROUND.GIF
       EXCEPTIONS
            OTHERS     = 1.
ENDFORM.                               " LOAD_GRAPHICS

****************************************************
*    cl_myevent_handler implementation             *
****************************************************
CLASS cl_myevent_handler IMPLEMENTATION.

  METHOD on_sapevent.

    CLEAR edaction.
    CLEAR edframe.
    CLEAR edgetdata.
    CLEAR edpostdataline.

    edaction       = action.
    edframe        = frame.
    edgetdata      = getdata.
    postdata_tab   = postdata.
    IF NOT postdata_tab IS INITIAL.
      READ TABLE postdata_tab INDEX 1 INTO edpostdataline.
    ENDIF.
    edquery_table  = query_table.

    CASE action.
      WHEN SHOW_FRAMESET.
        PERFORM load_frame_set.
      WHEN OTHERS.
    ENDCASE.
  ENDMETHOD.

ENDCLASS.

屏幕

技术分享图片

 

 

PBO

技术分享图片

 

 

*&---------------------------------------------------------------------*
*& Report  RSDEMO_HTML_VIEWER                                          *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  rsdemo_html_viewer            .
DATA container TYPE REF TO cl_gui_custom_container.
DATA html_viewer TYPE REF TO cl_gui_html_viewer.

DATA ok_code TYPE sy-ucomm.
DATA init.
DATA  save_ok TYPE sy-ucomm.
DATA  url(255) VALUE HTTP://WWW.SAP-AG.DE.
DATA frame(255).
DATA  align TYPE i.
DATA  document_id(255) VALUE HTMLCNTL_TESTEVNT_HOME.
DATA  document_textpool TYPE sy-repid.
DATA document_url(255).
DATA assigned_url(255).
DATA merge_table TYPE swww_t_merge_table.
DATA  object_id(255) VALUE HTMLCNTL_TESTHTM2_SAPLOGO.
DATA object_url(255) VALUE SAPLOGO.GIF.
DATA  type(4) VALUE text.
DATA subtype(4) VALUE html.
DATA size TYPE i.
DATA data_table TYPE c OCCURS 0.

SET SCREEN 100.
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS STATUS.
  IF init is initial.
    CREATE OBJECT container
            EXPORTING container_name = CUSTOM.
    CREATE OBJECT html_viewer
            EXPORTING  parent              = container
            EXCEPTIONS cntl_error         = 1
                       cntl_install_error = 2
                       dp_install_error   = 3
                       dp_error           = 4.
    IF sy-subrc ne 0.
* Fehlerbehandlung
    ENDIF.
    CALL METHOD cl_gui_cfw=>flush
         EXCEPTIONS cntl_system_error = 1
                    cntl_error        = 2.
    IF sy-subrc ne 0.
* Fehlerbehandlung
    ENDIF.
    init = X.
  ENDIF.
ENDMODULE.                             " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  save_ok = ok_code.
  CLEAR ok_code.
  CASE save_ok.
    WHEN SHOW_URL.
      CALL METHOD html_viewer->show_url
                EXPORTING url   = url
                          frame = frame
                EXCEPTIONS cntl_error = 1.
    WHEN STOP.
      CALL METHOD html_viewer->stop
                EXCEPTIONS cntl_error = 1.
    WHEN GO_BACK.
      CALL METHOD html_viewer->go_back
                EXCEPTIONS cntl_error = 1.
    WHEN GO_FORWARD.
      CALL METHOD html_viewer->go_forward
                EXCEPTIONS cntl_error = 1.
    WHEN GO_HOME.
      CALL METHOD html_viewer->go_home
                EXCEPTIONS cntl_error = 1.
    WHEN DO_REFRESH.
      CALL METHOD html_viewer->do_refresh
                EXCEPTIONS cntl_error = 1.
    WHEN GET_CURRENT_URL.
      CALL METHOD html_viewer->get_current_url
                IMPORTING url = url
                EXCEPTIONS cntl_error = 1.
      call method cl_gui_cfw=>flush
                exceptions cntl_error = 1
                           cntl_system_error = 2.
    WHEN LOAD_DATABASE.
      CALL METHOD html_viewer->load_html_document
           EXPORTING document_id       = HTMLCNTL_TESTHTM2_FRAME1
*                    document_textpool = document_textpool
                     document_url      = HTMLFrame1.htm
*          IMPORTING assigned_url      = assigned_url
*          CHANGING  merge_table       = merge_table
           EXCEPTIONS document_not_found   = 1
                      dp_error_general     = 2
                      dp_invalid_parameter = 3.
      CALL METHOD html_viewer->load_html_document
           EXPORTING document_id       = HTMLCNTL_TESTEVNT_HOME
*                    document_textpool = document_textpool
                     document_url      = HTMLFrame2.htm
*          IMPORTING assigned_url      = assigned_url
*          CHANGING  merge_table       = merge_table
           EXCEPTIONS document_not_found   = 1
                      dp_error_general     = 2
                      dp_invalid_parameter = 3.
      CALL METHOD html_viewer->load_html_document
           EXPORTING document_id       = HTMLCNTL_TESTHTM2_FRAMESET
*                    document_textpool = document_textpool
*                    document_url      = document_url
           IMPORTING assigned_url      = assigned_url
*          CHANGING  merge_table       = merge_table
           EXCEPTIONS document_not_found   = 1
                      dp_error_general     = 2
                      dp_invalid_parameter = 3.
      CALL METHOD html_viewer->load_mime_object
         EXPORTING
              object_id  = HTMLCNTL_TESTHTM2_SAPLOGO
              object_url = SAPLOGO.GIF
*           IMPORTING assigned_url = assigned_url
                EXCEPTIONS object_not_found     = 1
                           dp_error_general     = 2
                           dp_invalid_parameter = 3.
      CALL METHOD html_viewer->load_mime_object
           EXPORTING
                object_id  = HTMLCNTL_TESTHTM2_SAP_AG
                object_url = SAP_AG.GIF
*           IMPORTING assigned_url = assigned_url
                EXCEPTIONS object_not_found     = 1
                           dp_error_general     = 2
                           dp_invalid_parameter = 3.
      CALL METHOD html_viewer->load_mime_object
           EXPORTING
                object_id  = HTMLCNTL_TESTHTM2_BACKGROUND
                object_url = HOME_BACKGROUND.GIF
*           IMPORTING assigned_url = assigned_url
                EXCEPTIONS object_not_found     = 1
                           dp_error_general     = 2
                           dp_invalid_parameter = 3.

      CALL METHOD html_viewer->show_data
           EXPORTING url   = assigned_url
*                    frame = frame
           EXCEPTIONS cntl_error = 1.

  ENDCASE.
ENDMODULE.                             " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      Module  EXIT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE exit INPUT.
  CALL METHOD html_viewer->free.
  CALL METHOD container->free.
  FREE html_viewer.
  FREE container.
  LEAVE PROGRAM.
ENDMODULE.                             " EXIT  INPUT

 

SAP HTLM Control

原文:https://www.cnblogs.com/JackeyLove/p/14609251.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!