- 浏览: 1189207 次
文章分类
最新评论
-
sucheng2016:
### Error querying database. C ...
Sybase数据类型 -
Jiafun:
加油吧,少年
这可能是人生最后一个暑假 -
hermesdai:
少年很努力啊...学习了
一名毕业生的程序员之路 -
panda_eyes:
...
一名毕业生的程序员之路 -
yyue_li1988:
哥们,你写却是挺好的。同样给我们这种工作一两年的人,感触颇深啊 ...
一名毕业生的程序员之路
ABAP--How to use Toolbar control(SAP样例摘抄)
The SAP Toolbar control
General
Add method
Add_button_group method
Set_button state method
Simple example
Advanced example
Add method
Add_button_group method
Set_button state method
Simple example
Advanced example
Note: To get a list of all icons, use program SHOWICON.
Adds a new button to the toolbar
CALL METHOD go_toolbar->add_button
EXPORTING fcode = 'EXIT' "Function Code for button
icon = icon_system_end "ICON name, You can use type pool ICON
is_disabled = ' ' "Disabled = X
butn_type = gc_button_normal "Type of button, see below
text = 'Exit' "Text on button
quickinfo = 'Exit program' "Quick info
is_checked = ' '. "Button selected
Toolbar button types used in method ADD_BUTTON:
Value
|
Constant
|
Meaning
|
0
|
cntb_btype_button
|
Button (normal)
|
1
|
cntb_btype_dropdown
|
Pushbutton with menu
|
2
|
cntb_btype_menu
|
Menu
|
3
|
cntb_btype_sep
|
Seperator
|
4
|
cntb_btype_group
|
Pushbutton group
|
5
|
cntb_btype_check
|
Checkbox
|
6
|
Menu entry
|
This method is used to add a list of buttons to the toolbar. The buttons are defined in a table of type TTB_BUTTON, and it can be filled witha button definitions using method fill_buttons_data_table of the cl_gui_toolbar class. The button group is added to the toolbar using method add_button_group of the toolbar object.
* 1. Declare a table for buttons
DATA: gi_button_group TYPE ttb_button.
* 2.Create buttons in button table
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table
EXPORTING
fcode = 'Disable'
* icon =
* DISABLED =
butn_type =cntb_btype_group
* TEXT =
* QUICKINFO =
* CHECKED =
changing
data_table =gi_button_group
*EXCEPTIONS
* CNTB_BTYPE_ERROR = 1
* others = 2
.
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table..... add more buttons to the table
*3.Add button group to toolbar
CALL METHOD go_toolbar->add_button_group
EXPORTING data_table = gi_button_group.
Used to change the state of individual buttons at runtime. If the button should be removed, use the delete_button method.
CALL METHOD go_toolbar->set_button_state
EXPORTING
* ENABLED = 'X'
* CHECKED = ' '
fcode = "Note: This is the function code of the button that should be changed
*EXCEPTIONS
* CNTL_ERROR = 1
* CNTB_ERROR_FCODE = 2
* others = 3
.
This example shows how to create a toolbar with a single Exit button, used to exit the program.
Steps:
- Create a screen and add a custom container named TOOLBAR_CONTAINER
Code:
REPORT sapmz_hf_toolbar .
TYPE-POOLS: icon.
CLASS cls_event_handler DEFINITION DEFERRED.
* G L O B A L D A T A
DATA:
ok_code LIKE sy-ucomm,
* Reference for conatiner
go_toolbar_container TYPE REF TO cl_gui_custom_container,
* Reference for SAP Toolbar
go_toolbar TYPE REF TO cl_gui_toolbar,
* Event handler
go_event_handler TYPE REF TO cls_event_handler.
* G L O B A L T A B L E S
DATA:
* Table for registration of events. Note that a TYPE REF
* to cls_event_handler must be created before you can
* reference types cntl_simple_events and cntl_simple_event.
gi_events TYPE cntl_simple_events,
* Workspace for table gi_events
g_event TYPE cntl_simple_event.
*---------------------------------------------------------------------*
* CLASS cls_event_handler DEFINITION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS cls_event_handler DEFINITION.
PUBLIC SECTION.
METHODS:
on_function_selected
FOR EVENT function_selected OF cl_gui_toolbar
IMPORTING fcode,
on_dropdown_clicked
FOR EVENT dropdown_clicked OF cl_gui_toolbar
IMPORTING fcode posx posy.
ENDCLASS.
*---------------------------------------------------------------------*
* CLASS cls_event_handler IMPLEMENTATION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS cls_event_handler IMPLEMENTATION.
METHOD on_function_selected.
CASE fcode.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMETHOD.
METHOD on_dropdown_clicked.
* Not implented yet
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
SET SCREEN '100'.
*&---------------------------------------------------------------------*
*& ModuleSTATUS_0100OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
IF go_toolbar_container IS INITIAL.
* Create container
CREATE OBJECT go_toolbar_container
EXPORTING
container_name = 'TOOLBAR_CONTAINER'.
* Create toolbar
CREATE OBJECT go_toolbar
EXPORTING
parent = go_toolbar_container.
* Add a button
CALL METHOD go_toolbar->add_button
EXPORTING fcode = 'EXIT' "Function Code
icon = icon_system_end "ICON name
is_disabled = ' ' "Disabled = X
butn_type = cntb_btype_button "Type of button
text = 'Exit' "Text on button
quickinfo = 'Exit program' "Quick info
is_checked= ' '. "Button selected
* Create event table. The event ID must be found in the
* documentation of the specific control
CLEAR g_event.
REFRESH gi_events.
g_event-eventid = go_toolbar->m_id_function_selected.
g_event-appl_event = 'X'. "This is an application event
APPEND g_event TO gi_events.
g_event-eventid = go_toolbar->m_id_dropdown_clicked.
g_event-appl_event = 'X'.
APPEND g_event TO gi_events.
* Use the events table to register events for the control
CALL METHOD go_toolbar->set_registered_events
EXPORTING
events = gi_events.
*Create event handlers
CREATE OBJECT go_event_handler.
SET HANDLER go_event_handler->on_function_selected
FOR go_toolbar.
SET HANDLER go_event_handler->on_dropdown_clicked
FOR go_toolbar.
ENDIF.
ENDMODULE. " STATUS_0100OUTPUT
The toolbar in this example contains an Exit button, two buttons that enables/and disables a Print button, and a Menu button with a context menu.
The Disable/Enable buttons are of type Pushbutton group which makes them act together, so when one of the buttons are selected (Down) the other is deselected (Up).
Note that the context menu for the Menu button, must be created as a GUI status. You can create an empty GUI sttaus of type context, and then manually add menus. The context menu instance is created with type reference to class cl_ctmenu.
Steps:
- Create a screen and add a custom container named TOOLBAR_CONTAINER
- Create a GUI status of type Context and name it TOOLBAR. Note that you can not add any buttons to the GUI sttaus at design time.
The screen:
In this screen shot the Disable button is activated which makes the Print button disabled:
This screenshot shows the context menu and sub menu:
The code:
REPORT sapmz_hf_toolbar .
TYPE-POOLS: icon.
CLASS cls_event_handler DEFINITION DEFERRED.
*--- G L O B A L D A T A
DATA:
ok_code LIKE sy-ucomm,
* Global varables for position of context menu
g_posx TYPE i,
g_posy TYPE i,
* Reference for conatiner
go_toolbar_container TYPE REF TO cl_gui_custom_container,
* Reference for SAP Toolbar
go_toolbar TYPE REF TO cl_gui_toolbar,
* Event handler
go_event_handler TYPE REF TO cls_event_handler,
* Context menu
go_context_menu TYPE REF TO cl_ctmenu.
*--- G L O B A L T A B L E S
DATA:
* Table for registration of events. Note that a TYPE REF
* to cls_event_handler must be created before you can
* reference types cntl_simple_events and cntl_simple_event
gi_events TYPE cntl_simple_events,
* Workspace for table gi_events
g_event TYPE cntl_simple_event,
* Table for button group
gi_button_group TYPE ttb_button.
*---------------------------------------------------------------------*
* CLASS CLS_EVENT_HANDLER
*---------------------------------------------------------------------*
* This class handles the function_selected and dropdow_clicked events
* from the toolbar
*---------------------------------------------------------------------*
CLASS cls_event_handler DEFINITION.
PUBLIC SECTION.
METHODS:
on_function_selected
FOR EVENT function_selected OF cl_gui_toolbar
IMPORTING fcode,
on_dropdown_clicked
FOR EVENT dropdown_clicked OF cl_gui_toolbar
IMPORTING fcode posx posy.
ENDCLASS.
CLASS cls_event_handler IMPLEMENTATION.
METHOD on_function_selected.
*-- Actions for buttons and context menus
CASE fcode.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'ENABLE'.
* Enable the PRINT button
CALL METHOD go_toolbar->set_button_state
EXPORTING
enabled = 'X'
fcode = 'PRINT'.
WHEN 'DISABLE'.
* Disable the PRINT button
CALL METHOD go_toolbar->set_button_state
EXPORTING
enabled = ' '
fcode = 'PRINT'.
* Other menus and context menus
WHEN 'PRINT'.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
textline1 = 'Printing'.
WHEN 'CONTEXT1'.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
textline1 = 'Menu: Do something funny'.
WHEN 'CONTEXT2'.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
textline1 = 'Menu: Do something crazy'.
WHEN 'SUB1'.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
textline1 = 'Submenu: Do something boring'.
WHEN 'SUB2'.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
textline1 = 'Submenu: Do something good'.
ENDCASE.
ENDMETHOD.
METHOD on_dropdown_clicked.
*-- Fires when a dropdown menu is clicked. After it has been
*-- clicked a context menu is shown beside the button.
* Save x and y position of button for use with context menu
CLEAR: g_posx, g_posy.
g_posx = posx.
g_posy = posy.
* Create context menu for menu button
PERFORM create_context_menu.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
SET SCREEN '100'.
*&---------------------------------------------------------------------*
*& ModuleSTATUS_0100OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
IF go_toolbar_container IS INITIAL.
* Create container
CREATE OBJECT go_toolbar_container
EXPORTING
container_name = 'TOOLBAR_CONTAINER'.
* Create toolbar
CREATE OBJECT go_toolbar
EXPORTING
parent = go_toolbar_container.
* Add a button to the toolbar
PERFORM add_button.
* Add a button group to the toolbar
PERFORM add_button_group.
* Create event table. Note that the event ID must be found in the
* documentation of the specific control
CLEAR g_event. REFRESH gi_events.
g_event-eventid = go_toolbar->m_id_function_selected.
g_event-appl_event = 'X'. "This is an application event
APPEND g_event TO gi_events.
CLEAR g_event.
g_event-eventid = go_toolbar->m_id_dropdown_clicked.
g_event-appl_event = 'X'.
APPEND g_event TO gi_events.
* Use the events table to register events for the control
CALL METHOD go_toolbar->set_registered_events
EXPORTING
events = gi_events.
*Create event handlers
CREATE OBJECT go_event_handler.
SET HANDLER go_event_handler->on_function_selected
FOR go_toolbar.
SET HANDLER go_event_handler->on_dropdown_clicked
FOR go_toolbar.
ENDIF.
ENDMODULE. " STATUS_0100OUTPUT
*&---------------------------------------------------------------------*
*& Formadd_button
*&---------------------------------------------------------------------*
* Adds one pushbutton to the toolbar
*----------------------------------------------------------------------*
FORM add_button.
CALL METHOD go_toolbar->add_button
EXPORTING fcode = 'EXIT' "Function Code
icon = icon_system_end "ICON name
is_disabled = ' ' "Disabled = X
butn_type = cntb_btype_button "Type of button
text = 'Exit' "Text on button
quickinfo = 'Exit program' "Quick info
is_checked= ' '. "Button selected
ENDFORM. " add_button
*&---------------------------------------------------------------------*
*& Formadd_button_group
*&---------------------------------------------------------------------*
* Adds a button group to the toolbar.
* The buttons are added to table gi_button_group, and the table is used
* as input to the Add_button_group method. Note that method Fill_buttons
* is used to fill the table.
*----------------------------------------------------------------------*
FORM add_button_group.
* Add a seperator
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table
EXPORTING
fcode = 'SEP1'
icon = ' '
butn_type = cntb_btype_sep
CHANGING
data_table = gi_button_group.
.
* Add an Enable button
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table
EXPORTING
fcode = 'ENABLE'
icon = ' '
butn_type =cntb_btype_group
text = 'Enable'
quickinfo = 'Enable a print button'
checked = 'X'
CHANGING
data_table = gi_button_group.
.
* Add a Disable button
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table
EXPORTING
fcode = 'DISABLE'
icon = ''
butn_type = cntb_btype_group
text = 'Disable'
quickinfo = 'Disable print button'
checked = ' '
CHANGING
data_table = gi_button_group.
* Add a seperator
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table
EXPORTING
fcode = 'SEP2'
icon = ' '
butn_type = cntb_btype_sep
CHANGING
data_table = gi_button_group.
* Add print button
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table
EXPORTING
fcode = 'PRINT'
icon = icon_print
butn_type = cntb_btype_button
text = 'Print'
quickinfo = 'Print something'
CHANGING
data_table = gi_button_group.
* Add a menu button
CALL METHOD cl_gui_toolbar=>fill_buttons_data_table
EXPORTING
fcode = 'MENU'
icon = ' '
butn_type = cntb_btype_menu
text = 'Menu'
quickinfo = 'A menu buttonz'
CHANGING
data_table = gi_button_group.
* Add button group to toolbar
CALL METHOD go_toolbar->add_button_group
EXPORTING data_table = gi_button_group.
ENDFORM. " add_button_group
*&---------------------------------------------------------------------*
*& Formcreate_context_menu
*&---------------------------------------------------------------------*
* This form creates a context menu and a submenu for the menu button.
*----------------------------------------------------------------------*
FORM create_context_menu.
DATA: lo_submenu TYPE REF TO cl_ctmenu.
IF go_context_menu IS INITIAL.
*-- Create context menu
CREATE OBJECT go_context_menu.
CALL METHOD go_context_menu->add_function
EXPORTING
fcode = 'CONTEXT1'
text= 'Do something funny'.
CALL METHOD go_context_menu->add_function
EXPORTING
fcode = 'CONTEXT2'
text= 'Do something crazy'.
CALL METHOD go_context_menu->add_separator.
* Create sub menu for the context menu
CREATE OBJECT lo_submenu.
CALL METHOD lo_submenu->add_function
EXPORTING
fcode = 'SUB1'
text= 'Do something boring'.
CALL METHOD lo_submenu->add_function
EXPORTING
fcode = 'SUB2'
text= 'Do something good'.
*-- Add sub menu to the context menu
CALL METHOD go_context_menu->add_submenu
EXPORTING
menu = lo_submenu
text= 'Do something else.....'.
ENDIF.
* Link menu to toolbar button. To position the context menu the
* x and y positions of the menu button is used.
* These values was retrieved in the On_dropdown_clicked
* method of cls_event_handler
CALL METHOD go_toolbar->track_context_menu
EXPORTING
context_menu = go_context_menu
posx = g_posx
posy = g_posy.
ENDFORM. " create_context_menu
相关推荐
An introduction to ABAP and the most important umbrella topics. ABAP Dictionary A complete description of the most important objects for ABAP from ABAP Dictionary. ABAP - Reference A complete...
SAP方丈-ABAP-SAP增强应用实例
SAP-ABAP-OO-实现-CL-SALV-TABLE
SAP-ABAP-Certification-Review.pdf
ABAP-培训教材附录 ABAP-培训教材ABAP-培训教材ABAP-培训教材ABAP-培训教材
CD260-ABAP-in-Eclipse-开发-CN CD260-ABAP-in-Eclipse-开发-CNCD260-ABAP-in-Eclipse-开发-CNCD260-ABAP-in-Eclipse-开发-CN
ABAP-SAP的几种(代)出口类型 Web_dynpro-关于WEBDYNPRO的编程开发(一) ABAP-FOR ALL ENTRIES IN 注意点 ABAP-根据T-CODE找BADI ABAP-根据T-CODE找BAPI ABAP-UPLOAD文件时常用的数据转换 关于using和changing ...
SAP初探之ABAP-数据库对象 解释说明 在ABAP里面 面向对象的概念
SAP的开发工具ABAP-4学习资料. 主要是SAP的一些关键字的用法!
SAP资料集有ABAP-PP-MM-RFC-BAPI-JCO等.rar
eclipse-abap-keywordcolors eclipse-abap-关键字颜色
似乎是系统有Bug,或是其他原因,采购申请中的发布标识,在取消审批后,不能复原。
SAP方丈-ABAP-SAP增强应用实例.docx
SAP中文教材全系列之:ABAP中文标准教材-BC400_ZH_Col63_FV_Part_A4 陆续更新中。
SAP ABAP-Dictionary_查询表结构和内容 实战技术
简单来讲,SAPLINK就是用来导入和导出ABAP程序,等开发对象的一个开源分享项目的产物. 1.上载前置工具程序 导入SAPLINK需要使用ZSAPLINK_INSTALLER程序进行导入. TCode:SE38,新建名为ZSAPLINK_INSTALLER的程序. 2....
ABAP-根据T-CODE找用户出口;ABAP-根据T-CODE找用户出口
SAP-ABAP-IDOC使用材料资料.pdf
1、解压后,支持直接导入ABAP 2、支持文本编辑器打开 3、如有不解之处,可以查阅文章:《金色传说:SAP-ABAP-IW21/IW22通知单保存增强:保存通知单时根据特殊条件创建新的事故通知单》或搜索公众号:SAPABAP金色传说