SAP HTLM Control
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的更多相关文章
- (网络流 最大流 Dinic || SAP)Control -- hdu --4289
链接: http://acm.hdu.edu.cn/showproblem.php?pid=4289 http://acm.hust.edu.cn/vjudge/contest/view.action ...
- SAP Picture Control(图片加载)
Screen display 效果 源代码 program sap_picture_demo. set screen 200. TYPE-POOLS cndp. ******************* ...
- SAP Table control
REPORT RSDEMO02. * demostrates the use of table controls * unsolved problems: attributes left_col an ...
- SAP Grid control( ALV Grid 列表 自定义 按钮)
ALV 列表和按钮 效果 源代码 PROGRAM bcalvc_tb_menu_with_def_but. *&&&&&&&&& ...
- 屏幕 Dynpro
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- ALV详解:OO ALV
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 烽火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 ...
- SAP ABAP编程 Table Control动态隐藏列
在SAP DIALOG设计中,有时候须要动态的隐藏某些列,以下是方法. ***数据定义 CONTROLS: table_control TYPE TABLEVIEW USING SCREEN 0100 ...
- SAP WM TO Print Control设置里,Movement Type 的优先级更高
SAP WM TO Print Control设置里,Movement Type 的优先级更高 存储类型的配置: 从storage type GRM 搬到任何地方,都不需要打印TO单. 移动类型的配置 ...
随机推荐
- mybatis plus @TableId注解 type属性的含义
首先该注解用在主键id上,它的type属性有8种类型 AUTO(0),NONE(1),INPUT(2),ASSIGN_ID(3),ASSIGN_UUID(4),ID_WORKER(3),ID_WORK ...
- [源码解析] TensorFlow 之 分布式变量
[源码解析] TensorFlow 之 分布式变量 目录 [源码解析] TensorFlow 之 分布式变量 1. MirroredVariable 1.1 定义 1.2 相关类 1.2.1 类体系 ...
- 2021.12.08 平衡树——FHQ Treap
2021.12.08 平衡树--FHQ Treap http://www.yhzq-blog.cc/fhqtreapzongjie/ https://www.cnblogs.com/zwfymqz/p ...
- Attention Mechanism in Computer Vision
前言 本文系统全面地介绍了Attention机制的不同类别,介绍了每个类别的原理.优缺点. 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结.最新技术跟踪.经典论文解读.CV招聘信息. 概 ...
- 使用CreateThreadPool创建线程池
使用Windows API函数来创建线程池,可以极大的方便了自己编写线程池的繁琐步骤. 使用CreateThreadPool来创建一个线程池,需要在创建完成后,初始化线程池的状态,并且在不需要的时候清 ...
- mysql内连接查询之自连接
连接查询: 当查询数据时,通过连接操作查询出存放在多个表中的不同数据,当两个或者多个表中存在相同意义的字段时, 便可以通过这些字段对不同的表进行连接查询. 自连接: 如果在一个连接查询中,涉及的两个表 ...
- SpringData JPA接口总结
1 JPA 1.1 整体概念 JPA:Java Persistence API,就是java持久化api,是SUN公司推出的一套基于ORM的规范. ORM呢:Object-Relational Map ...
- Linux 系统安装 AutoFs 挂载服务
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 作者: Escape 链接: https://escapelife.github.io/pos ...
- 用漫画了解Linux内核到底长啥样
一个执着于技术的公众号 原文链接:http://985.so/hRL6 往期精彩 ◆ 干货 | 给小白的Nginx10分钟入门指南 ◆ 什么是集群?看完这篇你就知道啦! ◆ 干货 | Linux ...
- C#开发PACS医学影像三维重建(十三):基于人体CT值从皮肤渐变到骨骼的梯度透明思路
当我们将CT切片重建为三维体之后,通常会消除一些不必要的外部组织来观察内部病灶, 一般思路是根据人体常见CT值范围来使得部分组织透明来达到效果, 但这是非黑即白的,即,要么显示皮肤,要么显示神经,要么 ...