SAP Report程序事件处理流程

文章详细阐述了SAPReport在程序加载、初始化、选择屏幕交互、数据处理等阶段的事件流,包括LOAD-OF-PROGRAM、INITIALIZATION、ATSELECTION-SCREENOUTPUT等关键事件,以及如何自定义表头和页脚,同时介绍了用户命令响应和状态设置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SAP Report程序事件处理流程

一、事件驱动流程图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aYhZeZ4m-1678611974459)(D:\学习计划笔记\ABAP\IMAGE\image-20220507152246449.png)]

二、具体的事件流
  1. LOAD-OF-PROGRAM
    • 默认执行,用于加载程序,程序运行时触发
    • 当执行1类型(可执行程序)、M类型( Module Pool )、 F类型( Function Group )、 S类型( Subroutine Pool)程序时,SAP系统自动将程序加载至内存中时,自动调用这个事件
  2. INITIALIZATION
    • 只能用于在可执行程序中,LOAD-OF-PROGRAM执行后触发
    • 在所有以下事件块运行之前运行的,只运行一次的事件块
  3. AT SELECTION-SCREEN OUTPUT
    • 选择屏幕输出前触发
    • 选择屏幕PBO事件(Process Before Output)
    • 在选择屏幕输出之前执行的事件,一般用来设置选择屏幕的控件属性
  4. AT SELECTION-SCREEN ON VALUE-REQUEST FOR screen_id
    • 选择屏幕中,执行对应screen_id的F4帮助时触发
    • 自定义搜索帮助事件块,用于用户输入帮助
  5. AT SELECTION-SCREEN
    • 选择屏幕中,屏幕值变化时触发
    • 选择屏幕PAI事件(Process After Input)
    • 一般用来进行有效性检查;PAI执行完毕后,自动执行一次PBO事件,刷新屏幕
  6. START-OF-SELECTION
    • 点击执行按钮后触发
    • 一般用于取数据,处理数据
  7. TOP-OF-PAGE
    • 输出自定义的表头用的,在新的一页刚开始遇到write语句的时候这个事件块就会执行一次
    • 第一次执行:遇到程序中的第一个write语句时,跳转到TOP-OF-PAGE事件执行,执行完毕后返回执行write语句
    • 隐藏默认表头,在REPORT程序第一行进行设置:NO STANDARD PAGE HEADING
  8. END-OF-PAGE
    • 输出自定义页尾
    • 当前页介绍时触发
  9. END-OF-SELECTION
    • START-OF-SELECTION之后触发
    • 展示数据
  10. AT USER-COMMAND
    • 当SY-UCOMM发生变化时触发
    • 需要设置专门处理程序CASE SY-UCOMM或者 CASE OK_CODE
  11. TOP-OF-PAGE DURING LINE-SELECTION
    • 在REPORT程序中重新使用WRITE语句输出表单时,表单序号SY-LSIND自动增加1,次级表单输出时,需要单独指定表头
    • 在后续List中控制报表表头时使用的功能
  12. AT LINE-SELECTION
    • 用于在报表输出时,点击某行时所产生的操作,响应的位置在整行
    • 一般和HIDE连用,HIDE的功能是抓取某个field在某行中的值,与sy-linno相关
三、其他
  1. SET PF-STATUS ‘0100’

    • 增加按钮,按钮以组的形式定义

    • 后缀EXCLUDING gt_exclude. 设置按钮的隐藏

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DWf6q4YG-1678611974460)(D:\学习计划笔记\ABAP\IMAGE\image-20220507153413584.png)]

  2. SET TITLEBAR ’0100’

    • 增加标题,可以定义占位符,传入变量

    • 后缀WITH gv_title

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OvSvQylv-1678611974460)(D:\学习计划笔记\ABAP\IMAGE\image-20220507153443785.png)]

      在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值