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的更多相关文章

  1. (网络流 最大流 Dinic || SAP)Control -- hdu --4289

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4289 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  2. SAP Picture Control(图片加载)

    Screen display 效果 源代码 program sap_picture_demo. set screen 200. TYPE-POOLS cndp. ******************* ...

  3. SAP Table control

    REPORT RSDEMO02. * demostrates the use of table controls * unsolved problems: attributes left_col an ...

  4. SAP Grid control( ALV Grid 列表 自定义 按钮)

    ALV 列表和按钮 效果 源代码 PROGRAM bcalvc_tb_menu_with_def_but. *&&&&&&&&& ...

  5. 屏幕 Dynpro

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  6. ALV详解:OO ALV

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  7. 烽火2640路由器命令行手册-12-IBM网络配置命令

    IBM网络配置命令 目  录 第1章 DLSW配置命令... 1 1.1 DLSW配置命令... 1 1.1.1 dlsw local-peer 1 1.1.2 dlsw remote-peer 3 ...

  8. SAP ABAP编程 Table Control动态隐藏列

    在SAP DIALOG设计中,有时候须要动态的隐藏某些列,以下是方法. ***数据定义 CONTROLS: table_control TYPE TABLEVIEW USING SCREEN 0100 ...

  9. SAP WM TO Print Control设置里,Movement Type 的优先级更高

    SAP WM TO Print Control设置里,Movement Type 的优先级更高 存储类型的配置: 从storage type GRM 搬到任何地方,都不需要打印TO单. 移动类型的配置 ...

随机推荐

  1. 两数之和_LeetCode_1

    LeetCode_1原题链接:https://leetcode-cn.com/problems/two-sum/ 剑指 Offer 57原题链接: https://leetcode-cn.com/pr ...

  2. 利用js获取不同页面间跳转需要传递的参数

    获取参数的js函数如下: function GetQueryValue(queryName) { var query = decodeURI(window.location.search.substr ...

  3. java基础知识-序列化/反序列化-gson基础知识

    以下内容来之官网翻译,地址 1.Gson依赖 1.1.Gradle/Android dependencies { implementation 'com.google.code.gson:gson:2 ...

  4. Spring-Mybatis使用到的依赖及配置

    日志(log4j) log4j.rootLogger=DEBUG,console,file log4j.appender.console = org.apache.log4j.ConsoleAppen ...

  5. js 修改页面样式的两种方式

    1.  element.style       行内样式操作 代码示例 : <!DOCTYPE html> <html lang="en"> <hea ...

  6. 基于pgrouting的路径规划处理

    对于GIS业务来说,路径规划是非常基础的一个业务,一般公司如果处理,都会直接选择调用已经成熟的第三方的接口,比如高德.百度等.当然其实路径规划的算法非常多,像比较著名的Dijkstra.A*算法等.当 ...

  7. KTL 一个支持C++14编辑公式的K线技术工具平台 - 第五版,支持sqlite3,全新sqlite3zz语法超简单使用sqlite3; 添加方差等统计函数。

    K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...

  8. Effective HPA:预测未来的弹性伸缩产品

    作者 胡启明,腾讯云专家工程师,专注 Kubernetes.降本增效等云原生领域,Crane 核心开发工程师,现负责成本优化开源项目 Crane 开源治理和弹性能力落地工作. 余宇飞,腾讯云专家工程师 ...

  9. C/C++指针、函数、结构体、共用体

    指针 变量与地址 变量给谁用的? 变量是对某一块空间的抽象命名. 变量名就是你抽象出来的某块空间的别名. 指针就是地址.指向某个地址. 指针与指针变量 指针是指向某块地址.指针(地址)是常量. 指针变 ...

  10. come on! 基于LinkedHashMap实现LRU缓存

    /** * @Description 基于LinkedHashMap实现一个基于'LRU最近最少使用'算法的缓存,并且最多存MAX个值 * @Author afei * @date:2021/4/25 ...