修改ALV 工具条,在ALV toolbar上添加、移除按钮

以下针对于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来做都行。

注意:如果想保留某些标准按钮的功能,请不要修改其功能码。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-11 03:12:10

修改ALV 工具条,在ALV toolbar上添加、移除按钮的相关文章

iOS 在tableView上添加button导致按钮没有点击效果和不能滑动的问题

[原]iOS 在tableView上添加button导致按钮没有点击效果和不能滑动的问题 2014-10-31阅读202 评论0 转载请注明出处. 今天在调试代码的时候,在tableviewcell上添加button,发现button快速点击的话,是看不出点击效果的,查找资料发现, ios7上UITableViewCell子层容器是UITableViewCellScrollView, ios6的则是UITableViewCellContentView.点击效果应该是被ScrollView的触摸延

fiddler工具条、状态栏、请求信息栏各按钮的作用

1.fiddler工具条 2.fiddler状态栏 3.请求信息栏 原文地址:https://www.cnblogs.com/kakaln/p/8198299.html

UITableviewCell上添加button,按钮的normal或selected状态显示不正常的可能原因。

根据返回的信息对cell上button的状态进行设置时,由于cell的复用机制,有时候会导致button的显示状态和我们设置的状态不一样,有可能的原因是我们根据返回数据进行设置时只设置了一种状态,比如: //点击点赞按钮 if (model.user_praise) { //如果存在praise_user,说明已经点过赞,将按钮状态设置为已经点赞的状态 cell.likeButton.selected = YES; } 利用上面的方式进行设置就可能导致button状态显示不正常,正确的做法是两种

窗体皮肤实现 - 在标题栏上增加快速工具条(四)

前面做的工作就是想在标题区域增加快速工具条.前续的基础工作完成,想要在标题区域增加特殊区域都非常方便.只要在绘制时控制自定义区域需要占用标题区域多少空间,然后直接在所占位置绘制.做这个事情前,稍微把代码规整了下.所以界面皮肤处理放到一个单元中. 主要处理步骤 1.划出一个新区域(整个工具条作为一个区域) 2.处理区域检测(HitTest) 3.如果是新区域,把相应消息传给这个区域处理. 4.响应鼠标点击,执行Action 通过上述步骤就能扩展出所想要的标题区快速工具条的. 标题按钮区域是作为一个

swift UI专项训练18 ToolBar工具条

工具条是个很重要的内容,什么是工具条呢,它一般显示在屏幕下方,显示一些按钮或者文字,我们可以用系统现成的,也可以用我们自定义的.之前我们讲的都是需要代理模式的,Dlelegate,委托模式.ToolBar属于目标操作,不需要代理.网界面上拖一个Toolbar拖到界面底部. toolbar的元素如下: Style主要是设置样式,比如浅色和黑色的. Bar Tint是设置颜色. Item是工具栏上的按钮,跟导航栏很相似.我们可以选择系统中已有的,比如我们选择done 那么toolbar上的按钮就会变

【iOS开发-23】toolbar工具条和toolbarItems:与navigationBar和navigationItem类似,重点是如何排版工具条的元素

(1)toolbar属性.toolbarItems与上一讲的navigationBar.navigationItem类似.只不过toolbarItems没有navigationItem的左右区分,它就自己一个人在做事,相当于没有下属. (2)可以在toolbar上设置很多,比如背景颜色.背景图片.背景样式.大小位置(不过有些貌似设置无效),当然和navigationBar一样,对于它的是否显示和隐藏是由它的老爸即navigationController控制的. (3)重点是:我们可以利用tool

新浪微博客户端(38)-显示键盘上的工具条

DJComposeToolbar.m #import "DJComposeToolbar.h" @implementation DJComposeToolbar - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { self.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNa

DHTMLX 前端框架 建立你的一个应用程序教程(四)--添加一个工具条toolbar

工具条例子 样本如下: 这里我们使用的是dhtmlxToolbar 组件. 添加工具栏到布局中: 1.使用attachToolbar() 方法初始化页面 添加代码到index.html中 dhtmlxEvent(window,"load",function(){ var layout = new dhtmlXLayoutObject(document.body,"2U"); layout.cells("a").setText("Cont

[ExtJS5学习笔记]第八节 Extjs5的Ext.toolbar.Toolbar工具条组件及其应用

本文地址:http://blog.csdn.net/sushengmiyan/article/details/38515499 本文作者:sushengmiyan -------------------------------------------------------------资源链接----------------------------------------------------------------------- Ext JS API: http://docs.sencha.