GUI Status与GUI Title用于自定义工具栏按钮及Report程序标题栏显示内容,可以通过SE81或直接在SE38中展开对象列表进行相关操作。如下图所示为ABAP编辑器中展开,点击:或者按捷键(CTRL+SHILF+F5)
1)GUI Status的定义及应用
GUI Status 用于自定义工具栏按钮。单击上图中的GUI Status菜单即可以弹出Create Status对话框,所定义属性包括程序名称及工具栏的名称、基本描述及状态类型。如下图:
填写完整相关属性,单击按钮进入GUI Status参数设置界面,如下图:
GUI Status参数设置共包括3个部分:
1.菜单栏(Menu Bar):用于设置主菜单选项。
2.应用工具条(Application ToolBar):用于设置应用工具栏按钮,包括按钮名称、按钮描述、及按钮所对的ICON图标。
3.功能键(Function Key):为按钮分配功能键代码,包括系统标题按钮(如返回、退出、关闭等)及通过Application ToolBar所定义的客制化按钮。
下面介绍如何在程序中创建一个工具栏按钮,并为其分配Function Key。
1.选择Application ToolBar中一个文本框,并输入自定义名称,如下图:
2.填写完成后回车或者双击,进入文本类型设置界面,将选择文本类型设置为静态文本选项(Static Text)。
3.单击按钮,进入ToolBar按钮功能设置界面,如下图:
其中功能代码(Function Code)为基本描述,函数文本(Function Text)为描述字段,图标名称(ICON Name)用于设置该按钮的图标,信息文本(INFO Text)为程序运行时按钮所显示的信息文本。
4.设置完成后,单击按钮,系统将弹出Assign Function To Function Key对话框,由用户为新增按钮分配一快捷键。
5.选择某功能键字段后单击按钮(或双击该功能键字段),进入相关确认页后返回设置主界面,设置其它功能按钮。
返回主界面Application ToolBar中新增了上面步骤中设置的按钮及图标的相关信息,Function KEYS中新增了该按钮对应功能键选项。如下图:
由于工具栏是自定义的,原系统标准功能按钮(如:SAVE、BACK、CANCEL、EXIT等)都需要重新设定,维护Standard ToolBar页面中各按钮字段的Function Key值。
所有设置完成后,保存激活,GUI Status创建成功。下面,我们需要对刚才新增的GUI Status进行调用,应用于START-OF-SELECTION事件。定义语法如下:
SET PF-STATUS <GUI STATUS NAME>.
对于定义的按钮,我们可以通过系统变量SY-UCOMM来获取它的功能代码。GUI STATUS的调用必须在Report输出是才触发。如下小例:
REPORT ZZWEI_MESSAGE.
WRITE: 'GUI STATUS TEST'.
AT USER-COMMAND. "当单击某个按钮时,触发该事件
CASE sy-ucomm. "获取所操作按钮的功能代码(FUNCTION Code),针对不同按钮事件判断执行不同的操作
WHEN 'EXTRACT'.
WRITE 'YOU CLICK THE EXTRACT BUTTON'.
WHEN 'BACK'.
LEAVE SCREEN.
WHEN 'EXIT'.
EXIT.
WHEN 'SAVE'.
WRITE 'YOU CLICK THE SAVE BUTTON'.
WHEN OTHERS.
WRITE 'OTHERS'.
ENDCASE.
START-OF-SELECTION.
SET PF-STATUS 'GUI_STATUS_TEST'. "在Report输出时调用该GUI STATUS。
运行结果如下:
2.GUI TITLE的定义及应用
GUI TITLE用于定义Report标题栏内容,其创建步骤如下:
1.在对象树形菜单中单击鼠标右键,选择Create-->GUI Titles。输入自定认Title名称及描述。该描述将出现在Report标题栏中,还可以输入&符号作为Title,当程序运行时对其填充动态文本。如下图:
2.单击按钮确认后,在对象菜单中将显示所新增项,如下图:
3.保存并激活,在程序中通过语法SET TITLEBAR 调用该GUI Title,如下:
REPORT ZZWEI_MESSAGE.
SET TITLEBAR 'TITLE_BAR' WITH SY-DATUM 'IFENER' 'BAR TEST'."设置TITLEBAR,并赋参数列表
WRITE: 'GUI STATUS TEST'.
运行截个图如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端