本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 queue
CLASS cl_gui_cfw DEFINITION LOAD.
** CLASS EVENT HANDLE
CLASS 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(