Posted by roczsm on 2009-02-04 04:16 下午
|
我的主要功能是ALV OO方式下加工具栏上的按钮,在程序中没有新建屏幕(要求没有CALL SCREEN 100之类的) 下面是我做的程序,大家只要拷贝过去就可以测试了,在ALV工具栏上加的按钮就是不出来,怎么办?高手!!!!!!! *以下两句到底放在什么地方呀,我什么地方都放了,报错 *CREATE OBJECT alv_roce. *SET HANDLER alv_roce->bt FOR GV_GRID.
*&---------------------------------------------------------------------* *& 测试程序 *&---------------------------------------------------------------------* REPORT ZROC_TEST5.
TYPE-POOLS: SLIS. DATA: i_cat TYPE LVC_T_FCAT, GV_GRID TYPE REF TO CL_GUI_ALV_GRID, GD_LAYOUT TYPE LVC_S_LAYO, "slis_layout_alv, GD_REPID LIKE SY-REPID. *航班表 DATA IT LIKE SFLIGHT OCCURS 0 WITH HEADER LINE .
*---------------------------------------------------------------------* * 1、定义类 *---------------------------------------------------------------------* CLASS roce DEFINITION. PUBLIC SECTION. METHODS: *--在ALV工具条按钮 bt FOR EVENT toolbar OF cl_gui_alv_grid IMPORTING e_object e_interactive. PRIVATE SECTION. ENDCLASS. *---------------------------------------------------------------------* * 2、实现类方法 *---------------------------------------------------------------------* CLASS roce IMPLEMENTATION. *--在ALV工具条按钮 METHOD: bt. PERFORM go_bt USING e_object e_interactive. ENDMETHOD. ENDCLASS. *---------------------------------------------------------------------* * 3、定义 *---------------------------------------------------------------------* DATA alv_roce TYPE REF TO roce.
************************************************************************ START-OF-SELECTION. PERFORM MAIN.
*&---------------------------------------------------------------------* *& 主逻辑 *&---------------------------------------------------------------------* FORM MAIN. IT-FLDATE = '20090203'.IT-PRICE = 400.APPEND IT .CLEAR IT . IT-FLDATE = '20090204'.IT-PRICE = 500.APPEND IT .CLEAR IT .
*以下两句到底放在什么地方呀,我什么地方都放了,报错 *CREATE OBJECT alv_roce. *SET HANDLER alv_roce->bt FOR GV_GRID.
*取值结构 CALL FUNCTION 'LVC_FIELDCATALOG_MERGE' EXPORTING i_structure_name = 'SFLIGHT' CHANGING ct_fieldcat = I_CAT[] EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3.
*输出 GD_REPID = SY-REPID. GD_LAYOUT-ZEBRA = 'X'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING I_CALLBACK_PROGRAM = GD_REPID I_CALLBACK_USER_COMMAND = 'USER_COMMAND' IS_LAYOUT_LVC = GD_LAYOUT IT_FIELDCAT_LVC = I_CAT I_SAVE = 'X' TABLES T_OUTTAB = it EXCEPTIONS PROGRAM_ERROR = 1 OTHERS = 2.
ENDFORM.
*&---------------------------------------------------------------------* *& 自定义按钮 *&---------------------------------------------------------------------* FORM go_bt USING e_object TYPE REF TO cl_alv_event_toolbar_set e_interactive . DATA: ls_toolbar TYPE stb_button.
CLEAR ls_toolbar. MOVE 'BOOKINGS' TO ls_toolbar-function. MOVE 'Show Bookings'(111) TO ls_toolbar-quickinfo. MOVE 'Detail'(112) TO ls_toolbar-text. MOVE ' ' TO ls_toolbar-disabled. APPEND ls_toolbar TO e_object->mt_toolbar.
MESSAGE 'test' TYPE 'S' .
ENDFORM. **&---------------------------------------------------------------------* **& 界面指令操作 **&---------------------------------------------------------------------* FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE SLIS_SELFIELD.
MESSAGE '接收' type 'S' .
ENDFORM.
|
|