CFW_DEMO 屏幕上添加 图片、按钮、文本编辑、HTML
来源:互联网 发布:c语言中随机函数 编辑:程序博客网 时间:2024/06/05 18:49
本DEMO程序参考了部分系统标准DEMO功能,在PBO的module中可看到相关程序。
相关类和方法的说明资料在下面的链接中可以看到
http://help.sap.com/saphelp_nw73/helpdata/en/4d/78622691c1262ae10000000a42189b/content.htm?frameset=/en/49/17345ea2e314d3e10000000a42189b/frameset.htm¤t_toc=/en/e8/87b8200b8c4915bdd2c89ef55caedb/plain.htm&node_id=236&show_children=false
点击打开链接
1.屏幕按钮
2.源码
REPORT y_lyh_test_013.TYPE-POOLS: abap,cntl.DATA: gcl_picture TYPE REF TO cl_gui_picture, gcl_textedit TYPE REF TO cl_gui_textedit, gcl_toolbar TYPE REF TO cl_gui_toolbar, gcl_html TYPE REF TO cl_gui_html_viewer, gcl_tree TYPE REF TO cl_gui_simple_tree.DATA: gcl_ctmenu TYPE REF TO cl_ctmenu.DATA: gcl_container TYPE REF TO cl_gui_container, gcl_custom_container TYPE REF TO cl_gui_custom_container, gcl_splitter TYPE REF TO cl_gui_splitter_container.DATA: gv_url(255) TYPE c, gv_dynnr TYPE sy-dynnr.DATA: lt_button TYPE ttb_button, ls_button TYPE stb_button, lt_ctxmenu TYPE ttb_btnmnu, ls_ctxmenu TYPE stb_btnmnu.DATA: lt_events TYPE cntl_simple_events, ls_events TYPE cntl_simple_event.DATA: gt_text(10) TYPE c OCCURS 0.DATA: lv_edframe(255), lv_edaction(256), lv_edgetdata(2048), lv_edpostdataline(1024).DATA: lt_postdata_tab TYPE cnht_post_data_tab, lt_edquery_table TYPE cnht_query_table.* necessary to flush the automation queueCLASS cl_gui_cfw DEFINITION LOAD.** CLASS EVENT HANDLECLASS lcl_event_receiver DEFINITION. PUBLIC SECTION. METHODS event_handler FOR EVENT picture_click OF cl_gui_picture. METHODS event_handler_menu FOR EVENT context_menu OF cl_gui_picture. METHODS event_handler_menuselected FOR EVENT context_menu_selected OF cl_gui_picture IMPORTING fcode. METHODS: on_sapevent FOR EVENT sapevent OF cl_gui_html_viewer IMPORTING action frame getdata postdata query_table.ENDCLASS.CLASS lcl_event_receiver IMPLEMENTATION. METHOD event_handler. MESSAGE 'This is picture click' TYPE 'I' . ENDMETHOD. METHOD event_handler_menu. CREATE OBJECT gcl_ctmenu. CALL METHOD gcl_ctmenu->load_gui_status EXPORTING program = 'RSDEMO_PICTURE_CONTROL' status = 'CONTEXT' menu = gcl_ctmenu EXCEPTIONS read_error = 1. CALL METHOD gcl_picture->display_context_menu EXPORTING context_menu = gcl_ctmenu EXCEPTIONS error = 1. ENDMETHOD. METHOD event_handler_menuselected. MESSAGE i300(eu) WITH fcode. ENDMETHOD. METHOD on_sapevent. CLEAR: lv_edaction, lv_edframe, lv_edgetdata, lv_edpostdataline. lv_edaction = action. lv_edframe = frame. lv_edgetdata = getdata. lt_postdata_tab = postdata. IF NOT lt_postdata_tab IS INITIAL. READ TABLE lt_postdata_tab INDEX 1 INTO lv_edpostdataline. ENDIF. lt_edquery_table = query_table. CASE action. WHEN 'SHOW_FRAMESET'. PERFORM load_frame_set. WHEN OTHERS. ENDCASE. ENDMETHOD.ENDCLASS.DATA lcl_event_receiver TYPE REF TO lcl_event_receiver.CLASS lcl_toolbar_events DEFINITION.* Here, you define instance methods or* static methods to handle the events* of the toolbar. PUBLIC SECTION. CLASS-METHODS: on_function_selected FOR EVENT function_selected OF cl_gui_toolbar IMPORTING fcode.ENDCLASS.CLASS lcl_toolbar_events IMPLEMENTATION. METHOD on_function_selected.* Implementation of the method. It has the parameter* FCODE that you can use to work out which function was* chosen CASE fcode. WHEN 'BACK'. gcl_toolbar->free( ). LEAVE TO SCREEN 0. WHEN 'CREATE'. CALL METHOD gcl_toolbar->add_button EXPORTING fcode = 'EXPAND' icon = '@3S@' butn_type = cntb_btype_menu text = 'EXPAND' quickinfo = 'EXPAND' EXCEPTIONS cntl_error = 1. CREATE OBJECT gcl_ctmenu. ls_ctxmenu-function = 'EXPAND'. ls_ctxmenu-ctmenu = gcl_ctmenu. APPEND ls_ctxmenu TO lt_ctxmenu.* Use this syntax to add functions to the context menu CALL METHOD gcl_ctmenu->add_function EXPORTING fcode = 'EXPAND1' text = 'NUM1'. CALL METHOD gcl_ctmenu->add_separator. CALL METHOD gcl_ctmenu->add_function EXPORTING fcode = 'EXPAND2' text = 'NUM2' icon = '@0Z@'.* Add dropdown context menus to toolbar CALL METHOD gcl_toolbar->assign_static_ctxmenu_table EXPORTING table_ctxmenu = lt_ctxmenu. CALL METHOD gcl_toolbar->set_button_state EXPORTING enabled = ' ' fcode = 'CREATE' EXCEPTIONS cntl_error = 1. WHEN 'DELETE'. CALL METHOD gcl_toolbar->delete_button EXPORTING fcode = 'EXPAND'. CALL METHOD gcl_toolbar->set_button_state EXPORTING enabled = 'X' fcode = 'CREATE' EXCEPTIONS cntl_error = 1. ENDCASE. ENDMETHOD.ENDCLASS.DATA: lcl_toolbar_events TYPE REF TO lcl_toolbar_events.PARAMETERS: p_01 RADIOBUTTON GROUP rg01, " Picture p_02 RADIOBUTTON GROUP rg01, "text edit p_03 RADIOBUTTON GROUP rg01, "toolbar p_04 RADIOBUTTON GROUP rg01. "treeINITIALIZATION.AT SELECTION-SCREEN. CASE abap_true. WHEN p_01. "picture gv_dynnr = 9000. WHEN p_02. "text edit gv_dynnr = 9001. WHEN p_03. gv_dynnr = 9002. WHEN p_04. gv_dynnr = 9003. WHEN OTHERS. ENDCASE.START-OF-SELECTION. PERFORM frm_create_container. CALL SCREEN gv_dynnr.END-OF-SELECTION. PERFORM frm_release_object.*&---------------------------------------------------------------------**& Form FRM_RELEASE_OBJECT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM frm_release_object . DATA: lv_result TYPE i. IF gcl_picture IS BOUND. CALL METHOD gcl_picture->is_valid IMPORTING result = lv_result. IF lv_result = 1. gcl_picture->free( ). FREE gcl_picture. ENDIF. ENDIF. IF NOT gcl_textedit IS INITIAL. CALL METHOD gcl_textedit->free EXCEPTIONS OTHERS = 1. FREE gcl_textedit. ENDIF. IF NOT gcl_custom_container IS INITIAL. CALL METHOD gcl_custom_container->free EXCEPTIONS OTHERS = 1. FREE gcl_custom_container. ENDIF. CALL METHOD cl_gui_cfw=>flush EXCEPTIONS OTHERS = 1.ENDFORM.*&---------------------------------------------------------------------**& Form FRM_CREATE_CONTAINER*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM frm_create_container . CREATE OBJECT gcl_splitter EXPORTING link_dynnr = gv_dynnr link_repid = sy-repid parent = cl_gui_container=>screen0 rows = 1 columns = 1. CALL METHOD gcl_splitter->set_border EXPORTING border = cl_gui_cfw=>false.* 创建CONTIANER gcl_container = gcl_splitter->get_container( row = 1 column = 1 ).ENDFORM.*&---------------------------------------------------------------------**& Module STATUS_9000 OUTPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE status_9000 OUTPUT. SET PF-STATUS 'STANDARD_FULLSCREEN' OF PROGRAM 'SAPLKKBL' .* SET TITLEBAR 'xxx'. IF gcl_picture IS NOT BOUND . CREATE OBJECT gcl_picture EXPORTING parent = gcl_container. gv_url = 'http://imgsrc.baidu.com/forum/pic/item/01b336d3d539b600707cc35aec50352ac75cb72e.jpg'. ENDIF. CALL METHOD gcl_picture->load_picture_from_url EXPORTING url = gv_url EXCEPTIONS error = 1. CALL METHOD gcl_picture->set_display_mode EXPORTING display_mode = gcl_picture->display_mode_fit_center EXCEPTIONS error = 1. PERFORM frm_registe_event_01. PERFORM frm_registe_event_02. CALL METHOD gcl_picture->set_tooltip EXPORTING text = '跑车'. CALL METHOD cl_gui_cfw=>flush.ENDMODULE.*&---------------------------------------------------------------------**& Module USER_COMMAND_9000 INPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE user_command_9000 INPUT. CASE sy-ucomm. WHEN '&F15'. LEAVE TO SCREEN 0. CALL METHOD gcl_picture->clear_picture. WHEN OTHERS. ENDCASE.ENDMODULE.*&---------------------------------------------------------------------**& Form FRM_REGISTE_EVENT_01*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM frm_registe_event_01 . CLEAR: ls_events. ls_events-eventid = gcl_picture->eventid_picture_click. ls_events-appl_event = 'X'." X: application event ' ':system event APPEND ls_events TO lt_events. CLEAR: ls_events. ls_events-eventid = gcl_picture->eventid_picture_dblclick. ls_events-appl_event = 'X'. APPEND ls_events TO lt_events. CLEAR: ls_events. ls_events-eventid = gcl_picture->eventid_control_click. ls_events-appl_event = 'X'. APPEND ls_events TO lt_events. CLEAR: ls_events. ls_events-eventid = gcl_picture->eventid_control_dblclick. ls_events-appl_event = 'X'. APPEND ls_events TO lt_events. CLEAR: ls_events. ls_events-eventid = gcl_picture->eventid_context_menu. ls_events-appl_event = 'X'. APPEND ls_events TO lt_events. CLEAR: ls_events. ls_events-eventid = gcl_picture->eventid_context_menu_selected. ls_events-appl_event = 'X'. APPEND ls_events TO lt_events. CALL METHOD gcl_picture->set_registered_events EXPORTING events = lt_events.ENDFORM.*&---------------------------------------------------------------------**& Form FRM_REGISTE_EVENT_02*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM frm_registe_event_02 .*Register the handler methods for the events. CREATE OBJECT lcl_event_receiver. SET HANDLER lcl_event_receiver->event_handler FOR gcl_picture. SET HANDLER lcl_event_receiver->event_handler_menu FOR gcl_picture.ENDFORM.*&---------------------------------------------------------------------**& Module STATUS_9001 OUTPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE status_9001 OUTPUT.* SET TITLEBAR 'xxx'. IF gcl_textedit IS NOT BOUND. SET PF-STATUS 'MAIN100' OF PROGRAM 'SAPTEXTEDIT_DEMO_1'. CREATE OBJECT gcl_textedit EXPORTING wordwrap_mode = cl_gui_textedit=>wordwrap_at_fixed_position wordwrap_position = 10 wordwrap_to_linebreak_mode = cl_gui_textedit=>true parent = gcl_container EXCEPTIONS error_cntl_create = 1 error_cntl_init = 2 error_cntl_link = 3 error_dp_create = 4 gui_type_not_supported = 5 OTHERS = 6. IF sy-subrc <> 0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. " don't show toolbar and statusbar on this screen* CALL METHOD gcl_textedit->set_toolbar_mode* EXPORTING* toolbar_mode = cl_gui_textedit=>false.* CALL METHOD gcl_textedit->set_statusbar_mode* EXPORTING* statusbar_mode = cl_gui_textedit=>false. ENDIF.ENDMODULE.*&---------------------------------------------------------------------**& Module USER_COMMAND_9001 INPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE user_command_9001 INPUT. CASE sy-ucomm. WHEN 'BACK' OR 'EXIT'. gcl_textedit->free( ). LEAVE TO SCREEN 0. WHEN 'SAVE'.* retrieve table from control CALL METHOD gcl_textedit->get_text_as_r3table IMPORTING table = gt_text. WHEN 'LOAD'.* send table to control APPEND 'you and me ' TO gt_text. CALL METHOD gcl_textedit->set_text_as_r3table EXPORTING table = gt_text. ENDCASE.ENDMODULE.*&---------------------------------------------------------------------**& Module STATUS_9002 OUTPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE status_9002 OUTPUT.* SET PF-STATUS 'xxxxxxxx'.* SET TITLEBAR 'xxx'. IF gcl_toolbar IS NOT BOUND . CREATE OBJECT gcl_toolbar EXPORTING parent = gcl_container.* Information for first button ls_button-function = 'BACK'. ls_button-icon = '@2M@'. ls_button-quickinfo = 'BACK'. ls_button-text = 'BACK'. ls_button-butn_type = cntb_btype_button. APPEND ls_button TO lt_button. CLEAR: ls_button. ls_button-function = 'CREATE'. ls_button-icon = '@0Y@'. ls_button-quickinfo = 'CREATE'. ls_button-text = 'CREATE'. ls_button-butn_type = cntb_btype_button. APPEND ls_button TO lt_button. CLEAR: ls_button. ls_button-function = 'DELETE'. ls_button-icon = '@11@'. ls_button-quickinfo = 'DELETE'. ls_button-text = 'DELETE'. ls_button-butn_type = cntb_btype_button. APPEND ls_button TO lt_button.* Add buttons to toolbar CALL METHOD gcl_toolbar->add_button_group EXPORTING data_table = lt_button. REFRESH: lt_events. ls_events-eventid = cl_gui_toolbar=>m_id_function_selected. ls_events-appl_event = ' '. APPEND ls_events TO lt_events. CALL METHOD gcl_toolbar->set_registered_events EXPORTING events = lt_events. CREATE OBJECT lcl_toolbar_events. SET HANDLER lcl_toolbar_events=>on_function_selected FOR gcl_toolbar. ENDIF. CALL METHOD cl_gui_cfw=>flush.ENDMODULE.*&---------------------------------------------------------------------**& Module USER_COMMAND_9002 INPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE user_command_9002 INPUT. CASE sy-ucomm. WHEN 'E'. gcl_toolbar->free( ). LEAVE TO SCREEN 0. WHEN OTHERS.* Use this syntax to add functions to the context menu ENDCASE.ENDMODULE.*&---------------------------------------------------------------------**& Form LOAD_FRAME_SET*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM load_frame_set . DATA: lv_doc_url(80). CALL METHOD gcl_html->load_html_document EXPORTING document_id = 'SAPHTML_EVENTS_DEMO_FRAME1' document_url = 'HTMLFrame1.htm' EXCEPTIONS OTHERS = 1. CALL METHOD gcl_html->load_html_document EXPORTING document_id = 'SAPHTML_EVENTS_DEMO_HOME' document_url = 'HTMLFrame2.htm' EXCEPTIONS OTHERS = 1. CALL METHOD gcl_html->load_html_document EXPORTING document_id = 'SAPHTML_EVENTS_DEMO_FRAMESET' IMPORTING assigned_url = lv_doc_url EXCEPTIONS OTHERS = 1. IF sy-subrc EQ 0. CALL METHOD gcl_html->show_url EXPORTING url = lv_doc_url. ENDIF.ENDFORM.*&---------------------------------------------------------------------**& Module STATUS_9003 OUTPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE status_9003 OUTPUT.* SET PF-STATUS 'xxxxxxxx'.* SET TITLEBAR 'xxx'. SET PF-STATUS 'TESTHTM1' OF PROGRAM 'SAPHTML_EVENTS_DEMO'. IF gcl_html IS NOT BOUND . CREATE OBJECT gcl_html EXPORTING parent = gcl_container. ls_events-eventid = gcl_html->m_id_sapevent. ls_events-appl_event = 'X'. APPEND ls_events TO lt_events. CALL METHOD gcl_html->set_registered_events EXPORTING events = lt_events. CREATE OBJECT lcl_event_receiver. SET HANDLER lcl_event_receiver->on_sapevent FOR gcl_html. PERFORM load_graphics. PERFORM load_home_page. ENDIF.ENDMODULE.*&---------------------------------------------------------------------**& Module USER_COMMAND_9003 INPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE user_command_9003 INPUT. CASE sy-ucomm. WHEN 'BACK'. "Beenden IF NOT gcl_html IS INITIAL. CALL METHOD gcl_html->free. FREE gcl_html. ENDIF. LEAVE TO SCREEN 0. WHEN 'HHOM'. " show the home page PERFORM load_home_page. WHEN 'HBAK'. CALL METHOD gcl_html->go_back. WHEN 'HFWD'. CALL METHOD gcl_html->go_forward. WHEN 'HRFR'. CALL METHOD gcl_html->do_refresh. WHEN OTHERS. CALL METHOD cl_gui_cfw=>dispatch. ENDCASE.ENDMODULE.*&---------------------------------------------------------------------**& Form LOAD_GRAPHICS*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM load_graphics . CALL METHOD gcl_html->load_mime_object EXPORTING object_id = 'HTMLCNTL_TESTHTM2_SAPLOGO' object_url = 'SAPLOGO.GIF' EXCEPTIONS OTHERS = 1. CALL METHOD gcl_html->load_mime_object EXPORTING object_id = 'HTMLCNTL_TESTHTM2_SAP_AG' object_url = 'SAP_AG.GIF' EXCEPTIONS OTHERS = 1. CALL METHOD gcl_html->load_mime_object EXPORTING object_id = 'HTMLCNTL_TESTHTM2_BACKGROUND' object_url = 'HOME_BACKGROUND.GIF' EXCEPTIONS OTHERS = 1.ENDFORM.*&---------------------------------------------------------------------**& Form LOAD_HOME_PAGE*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM load_home_page . DATA: lv_doc_url(80). CALL METHOD gcl_html->load_html_document EXPORTING document_id = 'SAPHTML_EVENTS_DEMO_HOME' IMPORTING assigned_url = lv_doc_url EXCEPTIONS OTHERS = 1. IF sy-subrc EQ 0. CALL METHOD gcl_html->show_url EXPORTING url = lv_doc_url. ENDIF.ENDFORM.
0 0
- CFW_DEMO 屏幕上添加 图片、按钮、文本编辑、HTML
- 选择屏幕上添加按钮,按钮上添加图片和文字
- ABAP 选择屏幕上添加按钮,按钮上添加文字和图片
- ABAP 选择屏幕上添加按钮,按钮上添加文字和图片
- MFC按钮上添加图片
- 为HTML添加图片登录按钮
- HTML如何在图片上添加内容(如文字,菜单栏,按钮等)
- ABAP-选选择屏幕上添加按钮并响应
- 选择屏幕 添加按钮
- HTML文本编辑
- 【Java源代码】如何在按钮上添加图片背景
- android学习,在按钮或者文字上添加图片
- 选择屏幕工具栏添加按钮
- Html 图片按钮
- HTML图片提交按钮
- HTML图片提交按钮
- Html图片按钮
- mfc 按钮添加图片
- 计算一个value中1的个数
- 威盛卖掉威睿电通CDMA技术:Intel也全网通了!
- Ubuntu下安装VirtualBox
- Error running app: This version of Android Studio is incompatible with the Gradle Plugin used.
- CSS3笔记之第二天
- CFW_DEMO 屏幕上添加 图片、按钮、文本编辑、HTML
- 解决使用BadgeView导致视图显示错误的问题
- Numpy学习笔记
- 推送SD K信鸽推送 和 个推推送 调研对比
- 【转】SQL Server索引中的碎片和填充因子
- 关于EditText获取焦点,是否弹出软键盘的那些事
- 一侧监听无法连接 12537处理
- Windows+Apache+Python配置(modpython)
- 在本地环境下搭建wordpress的数据库配置方法