目录
前言
ABAP中的PF-STATUS参数主要用于定义或修改程序运行时候的GUI(图形用户界面)状态,比如是否显示菜单栏、工具栏等。通过设置不同的PF-STATUS值,开发者可以控制SAP GUI的外观和行为,以适应不同的应用场景。
实战
一、ALV中的使用
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_pf_status_set = 'F_SET_STATUS'.
FORM f_set_status USING p_extab TYPE slis_t_extab.
SET PF-STATUS 'ZALV_STATUS'.
ENDFORM.
二、复制标准工具栏
方法一:SE41拷贝
用TCODE:SE41拷贝一个标准的GUI status。
( 拷贝程序SAPLKKBL中的'STANDARD'或者 'STANDARD_FULLSCREEN')
方法二:程序中填充
工具栏有个一键填充的功能,可以把ALV常用的按钮都添加进来。
步骤1:双击按钮进入工具栏界面;
步骤2:选择模板状态(通常选择第三个List viewer);
三、工具栏中插入"分隔符"
实际开发中为了给按钮分类或者美观,可以使用"|"进行分割。
方法:选择菜单:Edit->Insert-> Separator line 即可插入分隔符。
四、退出按钮
退出的按钮可以设置功能类型为 "E"。(可以防止被字段必输校验卡主)
五、按钮置灰/隐藏。
方法一:改代码
FORM f_set_status USING p_extab TYPE slis_t_extab.
DATA: lt_extab TYPE slis_t_extab.
DATA: ls_extab TYPE slis_extab.
ls_extab-fcode = '&F15'. "退出按钮
APPEND ls_extab TO lt_extab.
CLEAR: ls_extab.
* SET PF-STATUS 'ZALV_STATUS' OF PROGRAM 'Z_ALV_001'. "参考其他程序的GUI_STATUS
SET PF-STATUS 'ZALV_STATUS'EXCLUDING lt_extab. "排除按钮
ENDFORM.
展示效果:
方法二:SE41设置对应按钮是否激活
展示效果:
注意:如果是修改工具栏,则对应按钮将被隐藏。
六、按钮清单
下面是ALV中的标准工具栏的图标、名称、代码、图标名称和快捷键:
图标 | 名称 | 代码 | 图标名称 | 快捷键 |
功能键 | ||||
| 保存 | &DATA_SAVE | ICON_SYSTEM_SAVE | |
| 后退 | &F03 | ICON_SYSTEM_BACK | |
| 退出 | &F15 | ICON_SYSTEM_END | |
| 取消 | &F12 | ICON_SYSTEM_CANCEL | |
| 打印 | &RNT | ICON_PRINT | |
| 查找 | %SC | ICON_SEARCH | |
| 查找下一个 | %SC+ | ICON_SEARCH_NEXT | |
| 第一页 | P-- | ICON_FIRST_PAGE | |
| 上一页 | P- | ICON_PREVIOUS_PAGE | |
| 下一页 | P+ | ICON_NEXT_PAGE | |
| 最后一页 | P++ | ICON_LAST_PAGE | |
| 帮助 | &ELP | ICON_SYSTEM_HELP | |
工具栏 | ||||
| 选择 | &IC1 | ICON_SELECT_DETAIL | F2 |
| 全选 | &ALL | ICON_SELECT_ALL | F5 |
| 取消全选 | &SAL | ICON_DESELECT_ALL | F6 |
| 选择 | &NFO | ICON_INFORMATION | F7 |
| 刷新 | &REFRESH | ICON_REFRESH | F8 |
| ABC 分析 | &ABC | ICON_ABC | Ctrl-F1 |
| 按升序排列 | &OUP | ICON_SORT_UP | Ctrl-F4 |
| 设置过滤器 | &ILT | ICON_FILTER | Ctrl-F5 |
| 总计 | &UMC | ICON_SUM | Ctrl-F6 |
| 邮件查收件 | %SL | ICON_MAIL | Ctrl-F7 |
| 更改布局… | &OL0 | ICON_ALV_VARIANTS | Ctrl-F8 |
| 选择布局… | &OAD | ICON_ALV_VARIANT_CHOOSE | Ctrl-F9 |
| 保存布局… | &AVE | ICON_ALV_VARIANT_SAVE | Ctrl-F10 |
| 信息 | &INFO | ICON_INFORMATION | Ctrl-F12 |
| 调用报表 | &EB9 | ICON_TABLE_SETTINGS | Ctrl-Shift-F1 |
| 删除过滤器 | &ILD | ICON_FILTER_UNDO | Ctrl-Shift-F2 |
| 明细 | &ETA | ICON_SELECT_DETAIL | Ctrl-Shift-F3 |
| 按降序排列 | &ODN | ICON_SORT_DOWN | Ctrl-Shift-F4 |
| 列表状态 | &LFO | ICON_INFORMATION | Ctrl-Shift-F5 |
| 小计 | &SUM | ICON_INTERMEDIATE_SUM | Ctrl-Shift-F6 |
| Excel | &VEXCEL | ICON_XLS | Ctrl-Shift-F7 |
| 文字处理 | &AQW | ICON_WORD_PROCESSING | Ctrl-Shift-F8 |
| 本地文件 | %PC | ICON_EXPORT | Ctrl-Shift-F9 |
| 打印预览 | &RNT_PREV | ICON_LAYOUT_CONTROL | Ctrl-Shift-F10 |
| 图形 | &GRAPH | ICON_GRAPHICS | Ctrl-Shift-F11 |
小知识:标准按钮的FCode查找方法
可以通过类 CL_GUI_ALV_GRID 中的 Attributes 查看;
操作步骤:
1、进入事务码SE24,输入类名称:CL_GUI_ALV_GRID;
2、切换到 Attributes 标签,找到自己需要的”属性”和”初始值”,这个初始值就是我们要找的标准按钮的FCODE;