SAP Report程序事件处理流程
迪丽瓦拉
2024-06-02 08:31:52
0

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)]

      在这里插入图片描述

相关内容