
*publicattributesandmethodPUBLICSECTION.METHODS:handle_toolbarFOREVENTtoolbarOFcl_gui_alv_gridIMPORTINGe_object,
handle_user_commandFOREVENTuser_commandOFcl_gui_alv_gridIMPORTINGe_ucomm,
ENDCLASS.
"lcl_event_receiverDEFINITION
注意这个事件处理类中添加了两个方法,第一个方法负责往工具栏上添加按钮,第二个方法用来响应工具栏上按钮的动作
步骤二:类的实现CLASSlcl_event_receiver
IMPLEMENTATION.
*methodtoolbarhandlerMETHODhandle_toolbar.PERFORMset_toolbarCHANGINGe_object.ENDMETHOD.
"handle_toolbarMETHODhandle_user_command.
*HandleownfunctionsdefinedinthetoolbarCASEe_ucomm.WHEN'ADD'.PERFORMxyz. “这里你想干嘛就可以干嘛ENDCASE.ENDMETHOD.
"handle_user_commandENDCLASS.
"lcl_event_receiverIMPLEMENTATION
步骤三:在FORM-----set_toolbar中添加buttonFORMset_toolbarCHANGINGprf_objectTYPEREFTOcl_alv_event_toolbar_set.CLEARprf_object-mt_toolbar.CLEARgs_toolbar.MOVE'ADD'TOgs_toolbar-function.MOVETOgs_toolbar-quickinfo.MOVETOgs_toolbar-text.MOVE''TOgs_toolbar-disabled.INSERTgs_toolbarINTOprf_object-mt_toolbarINDEX1.
ENDFORM.
"set_toolbar1
步骤四:创建事件处理对象--这一步一般在
grf_grid-set_table_for_first_display之后SETHANDLERgrf_event_receiver-handle_user_commandFORgrf_grid.SETHANDLERgrf_event_receiver-handle_toolbarFORgrf_grid.CALLMETHODgrf_grid-set_toolbar_interactive.
注意:STB_BUTTON结构包含的字段
FUNCTION UI_FUNC CHAR700Function Code
ICON ICONNAME CHAR300Name of an Icon
QUICKINFO ICONQUICKCHAR300Quickinfo for an icon
BUTN_TYPE TB_BTYPE INT4100Toolbar button type
DISABLED CHAR 10Disabled
TEXT TEXT40CHAR400Text, 40 Characters Long
CHECKED CHAR 10Printed
TB_BTYPE的可选择值 ,主要用来决定按钮的类型
0Button (normal)
1Menu and default button2Menu3Separator4Radio button5Checkbox6Menu entry
TYPES:BEGIN OF GTY_EXCLTAB,
FCODE LIKE SY-UCOMM,
END OF GTY_EXCLTAB.
*定义两个变量用来存储变灰的按钮信息
DATA:
GT_STATUS_EXCL TYPE TABLE OF GTY_EXCLTAB, " Application toolbar exclude options
GS_STATUS_EXCL TYPE GTY_EXCLTAB.
*需要把那个变灰就填到刚定义的内表中
CLEAR: GT_STATUS_EXCL, GS_STATUS_EXCL.
GS_STATUS_EXCL-FCODE = 'SAVE'.
APPEND GS_STATUS_EXCL TO GT_STATUS_EXCL.
*设置 pf-status 的时候用EXCLUDING关键字将刚才的内表排除出去就行了。
SET PF-STATUS 'S001' EXCLUDING GT_STATUS_EXCL.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)