[ABAP] - 设置 GUI Status的正确方式

SAP GUI status是指SAP程序运行中菜单栏,标准工具栏,应用工具栏(menu bar, standard toolbar, application toolbar)的总和。在标准标准报表中,会默认带出default的GUI status。

GUI Status

 

但在实际的业务场景中,通常会需要对标准的toolbar进行增强,例如,增加一个自定义的按钮等。此时,就需要对GUI status进行手动的设置,其在程序中的关键字为 SET PF-STATUS 'status_name' ,通常位于INITIALIZATION事件中。

双击'status_name'可进入GUI status的创建页面,输入描述,确认。

在初始页面,可对Menu Bar,App Toolbar, Std Toolbar进行手动的编辑,并设定function key。具体的方式可参见此链接中的介绍,进行一步一步手动的设置。此种方式适合于较为复杂的定制化报表场景 (也即使用Menu Painter, Tx: SE41 ) 。

而在很多情况下,并不需要进行如此复杂的手动绘制工作, 例如仅需要在default的GUI status的基础上增加一个新的button,此时,调整GUI status的正确方式是,使用SAP提供的标准template,并在此基础上进行调整

选择模板的位置,Extras >> Adjust template

在标准模板中,提供了以下多种template,包含 - :

- List status

- Selctionscreen

- List viewer (ALV)

- Tree Status

- copy GUI status from other progam

根据不同的需要,可选择合适模板进行增强,这样省去了定义Fucnction Keys等重复性的工作。

 

举例:如果只需要在标准default的GUI bar上增加一个新的按钮,则可以选择模板 >> ‘Screen’. 

可见,使用模板后,标准的program menu已经自动带出,只需要手动定义一个新的按钮,并制定function key即可。

运行效果如下:

程序控制中可以使用如下语句,在AT SELECTION-SCREEN中, 捕捉按钮的点击事件。

AT SELECTION-SCREEN.

  CASE sy-ucomm.
    WHEN 'NEWBUTTON'.
* do your own logic 
  ENDCASE.

 

SAP ABAP报表开发过程中,添加自定义按钮并为这些按钮配置事件响应是一种常见的需求,它能增强报表的功能性和用户体验。使用REUSE_ALV_GRID_DISPLAY函数是实现这一目标的有效方法之一。 参考资源链接:[SAP ABAP 中 ALV 报表添加自定义按钮的实现方法](https://wenku.csdn.net/doc/3z5a1fdetj?spm=1055.2569.3001.10343) 首先,确保你已经熟悉REUSE_ALV_GRID_DISPLAY函数的基础使用方法,这是添加ALV Grid控件的标准函数。在此基础上,我们要关注的是如何通过GUI状态来添加和配置自定义按钮。GUI状态是SAP中用于定义和存储用户界面元素状态的一种机制,包括屏幕按钮、字段、菜单等。 具体到实现自定义按钮的步骤,首先需要在报表程序中使用`REUSE_ALV_GRID_DISPLAY`函数时指定GUI状态。在调用此函数之前,你需要先定义GUI状态和相关的用户命令。可以通过SE51事务代码创建GUI状态,并通过适当的事件(比如`USER_COMMAND`)来关联自定义的按钮操作。 以下是一个简化的示例代码,展示如何在报表程序中设置自定义按钮的GUI状态: ```abap DATA: gui_status TYPE slis_t_gui_status, gui_status_name TYPE slis_gui_status_name. gui_status_name = 'ZGuiStatus'. gui_status = 'ZGuiStatusName'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid i_callback_user_command = 'ZALV_USER_COMMAND' i_callback_user_exit = 'ZALV_USER_EXIT' i_gui_status = gui_status_name i_alv_grid = alv_grid EXCEPTIONS ... . ``` 在上述代码中,`i_gui_status` 参数用于传入自定义的GUI状态。你必须确保GUI状态已经创建,并且包含了自定义按钮和对应的事件处理逻辑。 自定义按钮的事件处理逻辑通常在名为 `ZALV_USER_COMMAND` 的用户命令函数中实现。你需要在该函数中编写按钮点击事件的逻辑处理代码: ```abap FORM zalv_user_command. DATA: l_event TYPE slis_event, l_field TYPE slis_field. l_event = sy-ucomm. CASE l_event. WHEN 'ZCUSTOM_BUTTON'. 参考资源链接:[SAP ABAP 中 ALV 报表添加自定义按钮的实现方法](https://wenku.csdn.net/doc/3z5a1fdetj?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十年铸器

给作者赏杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值