以下针对于FM:REUSE_ALV_GRID_DISPLAY的ALV,以添加一个按钮为例,修改OO ALV工具条的方式大致相同。
1、创建一个GUI status
首先在程序中创建一个工具条,一般是希望在标准工具条基础上进行修改,可以到函数组SALV中copy标准GUI status到自己的程序下,假如copy过来名字改为0100.
根据需要,添加自定义按钮、相应ICON和功能码BUTTON1,也可删除某些按钮不需要的按钮,保存激活。
2、在call function REUSE_ALV_GRID_DISPLAY时,传入参数I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
'SET_PF_STATUS'是一个Form的名字,可以任意写,然后在程序中添加'SET_PF_STATUS'这个Form,这其实是PBO过程,代码很简单,如下
*&--------------------------------------------------------------------*
*& Form set_pf_status
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS '0100' .
ENDFORM. "set_pf_status
其实如果在第一步,没有删除按钮,而又不想显示出来的话,还可以在这个form中写代码滤掉,如下意思是不显示排序的两个按钮。
*&--------------------------------------------------------------------*
*& Form set_pf_status
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
DATA: BEGIN OF EX_TAB OCCURS 0,
FCODE LIKE SY-UCOMM,
END OF EX_TAB.
EX_TAB-FCODE = '&ODN'. APPEND EX_TAB.”升序
EX_TAB-FCODE = '&OUP'. APPEND EX_TAB.”降序
SET PF-STATUS 'STANDARD' EXCLUDING EX_TAB.
ENDFORM. "set_pf_status
需要注意的是,需要传入参数I_CALLBACK_PROGRAM = I_REPID "否则的话,系统找不到'SET_PF_STATUS'这个form,也就无法执行这个Form了。
3、添加一个按钮,肯定要添加按钮事件在call function REUSE_ALV_GRID_DISPLAY时,传入参数I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
同样USER_COMMAND这是个Form名字,可以任意取名,是个PAI的事件响应Form,在代码中实现这个form,可如下
*&--------------------------------------------------------------------*
*& Form user_command
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN 'BUTTON1'.”BUTTON1是那个自定义按钮的功能码。
PERFORM FRM_button1."执行相应处理
when others.
ENDCASE.
ENDFORM. "user_command
综上是在ALV toolbar上添加一个按钮,并处理按钮事件的例子,按这个思路,删除或者滤掉ALV toolbar上的按钮也好办了,可以在自定义的GUI status直接删除,或者在set_pf_staus这个form中使用excluding来做都行。
注意:如果想保留某些标准按钮的功能,请不要修改其功能码。
分享到:
相关推荐
REUSE_ALV_GRID_DISPLAY超详细讲解 REUSE_ALV_GRID_DISPLAY是一个功能强大的ABAP函数模块,主要用于在ABAP程序中显示ALV网格控件。该函数模块提供了大量的参数和事件,使得开发者可以根据需要自定义ALV网格控件的...
程序dump,报错为 The ABAP program lines are wider than the internal table.此文档有解决方法
ABAP ALV总结,ALV格式,REUSE_ALV_GRID_DISPLAY_LVC函数使用
CALL FUNCTION \'REUSE_ALV_GRID_DISPLAY\' EXPORTING i_interface_check = \'\' 接口一致性检查 i_callback_program = sy-repid 当前程序名 is_layout = is_layout 输出样式 it_fieldcat = fieldcat[] 字段...
alv去掉多余按钮 alv去掉多余按钮 alv去掉多余按钮
ABAP
sap ALV常用参数的详细描述 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
CAM_Reuse_Library_Samples
ABAP常用函数[参考].pdf
Oracle通过PROFILE中的PASSWORD_REUSE_TIME和PASSWORD_REUSE_MAX来确定密码是否可以重用以及密码重用的限制。PASSWORD_REUSE_TIME是重用密码的最小时间间隔,单位是天。可以给出整数或分数,如1/1440表示1分钟。...
经典数字IC设计圣经(REUSE_METHODOLOGY_MANUAL).pdf
非常详细的ALV开发总结:包含FIELDCAT字段参数含义,LAYOUT字段参数含义,工具栏、按钮处理、事件处理、单元格搜索帮助、颜色处理、图片处理等等,还有HTML格式ALV处理,REUSE_ALV_GRID_DISPLAY_LVC的调用
这里介绍了 reuse_alv_list_dispaly 的使用 以及各个参数的说明 在后面的还有面向对象的方法制作alv 报表 绝对的适合初学者
重用查询结果提高开发环境速度。 插入更新和删除记录时重用查询结果并清除缓存。 没有更多的数据库请求。... # initializers/reuse_query_results.rbmemcache = ActiveSupport :: Cache . lookup_store ( :dalli_store
GSM系统仿真 MATLAB代码仿真程序 M文件 包含信道复用,维特比译码,跳频等
关于软频率复用的matlab仿真,最后仿真出功率的分配
清华大学《PHP&mysql;案例分析》的代码.
go_reuseport, 将SO_REUSEPORT带到你 GO_REUSEPORT GO_REUSEPORT 是一个小 expirement,用于创建支持 SO_REUSEPORT 套接字选项的net.Listener 。目前,Darwin和 Linux ( 从 3.9 ) 系统
用于ca双向认证的工具包
FTPClient的jar包 FTPClient ftpClient = new FTPClient(); ftpClient.connect("ftp.... ftpClient.login("user01", "pass1234"); ftpClient.download("C:\\Temp\\&quo;...// Eventually other operations here ... ...