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. Ubu18开机自启动

    Ubu开机自启动 简单示例 在/etc/init.d/目录下新建启动脚本Test #!/bin/bash ### BEGIN INIT INFO # Provides: Test # Required ...

  2. Intellij IDEA 2022 正式发布,这些功能真不错

    Intellij IDEA 2022 正式发布了,作为正版用户,胖哥赶紧更新了一波,好家伙!这几个功能确实很香啊.新版更新的东西真不少,不愧是一个大版本更新. 依赖分析 IDEA的依赖检查.依赖冲突解 ...

  3. ArcGIS使用技巧(七)——批量导出

    新手,若有错误还请指正! 在ArcGIS中如何将栅格数据批量导出?用到"复制栅格这个工具",这里我用的例子是:将ArcGIS默认输出的DEM文件夹批量导出为tif格式.(如果是文件 ...

  4. (2020行人再识别综述)Person Re-Identification using Deep Learning Networks: A Systematic Review

    目录 1.引言 2.研究方法 2.1本次综述的贡献 2.2综述方法 2.3与现有综述的比较 3.行人再识别基准数据集 3.1基于图像的再识别数据集 3.2基于视频的再识别数据集 4.基于图像的深度再识 ...

  5. 看看JDK1.7与1.8的内存模型差异

    JDK1.7与1.8的区别的内存模型差异? jsk1.7的内存模型: 堆分为初生代和老年代,大小比例为1:2,初生代又分为eden.from.to三个区域,大小比例为8:1:1 方法区:有代码区.常量 ...

  6. GO语言学习——切片一

    切片(slice) 数组的长度的固定的.是声明之后不能变的.是类型的一部分 切片是一个引用类型 切片的定义 声明切片类型的基本语法如下: var name []T 其中, name:表示变量名 T:表 ...

  7. [AcWing 800] 数组元素的目标和

    点击查看代码 #include<iostream> using namespace std; const int N = 1e5 + 10; int a[N], b[N]; int mai ...

  8. K8s 如何提供更高效稳定的编排能力?K8s Watch 实现机制浅析

    关于我们 更多关于云原生的案例和知识,可关注同名[腾讯云原生]公众号~ 福利: ①公众号后台回复[手册],可获得<腾讯云原生路线图手册>&<腾讯云原生最佳实践>~ ②公 ...

  9. 从 jQuery 到 Vue3 的快捷通道

    当初使用 jQuery 做了几个简单的项目,算是有一点点了解,现在学习Vue3,发现了一个可以快速转换思维的通道 -- 使用CDN的方式模拟 Vite 建立的项目! CDN方式 jQuery的使用非常 ...

  10. MySQL 高频面试题,都在这了

    点击上方"开源Linux",选择"设为星标"回复"学习"获取独家整理的学习资料! 前言 本文主要受众为开发人员,所以不涉及到MySQL的服务 ...