ABAP -Report报告程序

93 篇文章 0 订阅

ABAP -Report报告程序

事件

程序基本内容REPORT

REPORT程序第一行有效代码必须为REPORT <程序名>。

   –REPORT report id.

后缀: NO STANDARD PAGE HEADING "隐藏标准表头
LINE-COUNT lcount "每行宽度
LINE-SIZE lsize "每页行数
MESSAGE-ID mid "消息类

各事件

前言
一个程序是怎么跑起来了,中间经历了什么,我们今天学习report程序的各个节点触发时机。

1、LOAD-OF-PROGRAM
这个事件主要是针对与全局变量的加载,internalSession加载的时候会在这个步骤把所有的全局变量加载都内存。

2、INITIALIZATION
在选择屏幕出现之前执行,一般用于给变量初始化,设置默认值。

3、AT SELECTION-SCREEN OUTPUT
相当于 dynpro程序的PBO事件,显示选择屏幕之前触发
点击回车或者执行按钮 都会触发这个事件。

4、AT SELECTION-SCREEN
相当于dynpro程序的PAI事件,在选择画面点击按钮或者点击回车的时候都会触发此事件,一般用于校验(check_data)数据用 如果想触发标准按钮的时候可以用AT SELECTION-SCREEN ON EXIT-COMMAND.

5、START-OF-SELECTION
顾名思义,点击执行按钮F8的时候会触发这个事件,在后台执行的时候…此处有待调…,

6、END-OF-SELECTION
该事件应用于所有数据处理 完成,即START-OF-SELECTION相关事件执行完成,但输出屏幕还未显示之前。在实际开发中,主要应用于一些执行结果的检验等。其输出数据叠加于同一输出屏幕中。

7、TOP-OF-PAGE
触发TOP_OF_PAGE的4中情况:
1、遇到第一个WRITE语句;
2、遇到SKIP、ULINE;
3、当前页面行数超过LINE-COUNT定义的行数;
4,new-page

8、END-OF-PAGE
每一次write结束之后都会被执行。

补充
关于AT SELECTION-SCREEN (PAI)事件来说
1). … ON psel :在PARAMETER变化是触发的事件
2). … ON END OF sel :SELECT-OPTION触发的事件
3). … ON VALUE-REQUEST FOR psel_low_high :选择的帮助(F4)
4). … ON HELP-REQUEST FOR psel_low_high :选择的帮助(F1)
5). … ON RADIOBUTTON GROUP radi :单选按钮事件
6). … ON BLOCK block :框架的触发事件
7). … OUTPUT :响应屏幕上的事件,修改选择屏幕的唯一方法

Write输出

基本输出

TYPES:BEGIN OF ty_userinfo,
  name(10) TYPE c,
  age TYPE i,
  tel(11) TYPE n,
  END OF ty_userinfo.

DATA: gs_userinfo TYPE ty_userinfo.


gs_userinfo-name = 'lhy'.
gs_userinfo-age = 20.
gs_userinfo-tel = '19282736778'.


WRITE:/,'name:',gs_userinfo-name.
WRITE:/,'age:',gs_userinfo-age.
WRITE:/,'tel:',gs_userinfo-tel.

在这里插入图片描述

图标和icon

REPORT z_test_report_lhy.
INCLUDE <symbol>.
INCLUDE <icon>.

WRITE:/,'phone symbol:', sym_phone AS SYMBOL.
WRITE:/,'Alarm icon:', icon_alarm AS ICON.

在这里插入图片描述

多选框

WRITE:/,'check flag1',flag1 AS CHECKBOX.

在这里插入图片描述

颜色输出

DATA col TYPE i VALUE 0.
DO 8 TIMES.
  col = sy-index - 1.
  FORMAT COLOR = col.
  WRITE :/ col COLOR OFF,
           'INTENSIFIED ON' INTENSIFIED ON,
           'INTENSIFIED OFF' INTENSIFIED OFF,
           'INVERSE ON' INVERSE ON,
           'INVERSE OFF' INVERSE OFF,
           'HOTSPOT ON' HOTSPOT ON,
           'HOTSPOT OFF' HOTSPOT OFF,
           'INPUT ON' INPUT ON,
           'INPUT OFF' INPUT OFF,
           'FRAMES ON' FRAMES ON,
           'FRAMES OFF' FRAMES OFF,
           'RESET' RESET.
ENDDO.

START-OF-SELECTION.
  FORMAT HOTSPOT.
  WRITE 'Click me!' COLOR 5.
  FORMAT HOTSPOT OFF.

AT LINE-SELECTION.
  WRITE 'Yeah!' COLOR 3.

在这里插入图片描述

在这里插入图片描述

HOTSPOT

HOTSPOT的ON或者flag不为0的情况,就是显示鼠标手的样式,如果是OFF或者flag=0,就是普通的样式:
在这里插入图片描述
例如这样:
在这里插入图片描述

INPUT

INPUT [{ON|OFF}|{= flag}]

使用ON选项(或者flag不为0)格式化后继输出字段为可输入字段(Input-enabled)。

Input-enabled字段对于输出选项COLOR,INVERSE,andHOTSPOT不再起作用,但INTENSIFIED会有效

可以格式化ULINE为输入字段,但空行SKIP不能。

如果ON, OFF, nor flag都不输入时,默认为ON

如果输出的字段只包含空格,则不会显示为可输入,除非在之前使用了SET BLANK LINES ON。

FRAMES

FRAMES [{ON|OFF}|{= flag}]

该选项决定了"-" and "|"字符是否显示为表格框线,还是普通的字符。如果为ON或者flag为非0时,则显示为表格框线(默认);否则显示为普通的字符。

如果ON, OFF, nor flag都指定,默认为ON

"FORMAT FRAMES ON.

WRITE: / '----',
       / '|  |',
       / '----'.

"FORMAT FRAMES OFF.
WRITE: / '----' FRAMES OFF,
       / '|  |' FRAMES OFF,
       / '----' FRAMES OFF.

图片:
在这里插入图片描述

完整程序

*&---------------------------------------------------------------------*
*& Report Z_TEST_REPORT_LHY
*&---------------------------------------------------------------------*
*& Type: Report
*& Description: 测试Report
*& Creater:Liuhongyu
*& Create On:2024313*&---------------------------------------------------------------------*
REPORT z_test_report_lhy.
INCLUDE <symbol>.
INCLUDE <icon>.

TYPES:BEGIN OF ty_userinfo,
  name(10) TYPE c,
  age TYPE i,
  tel(11) TYPE n,
  END OF ty_userinfo.

DATA: gs_userinfo TYPE ty_userinfo.


gs_userinfo-name = 'lhy'.
gs_userinfo-age = 20.
gs_userinfo-tel = '19282736778'.


WRITE:/,'name:',gs_userinfo-name.
WRITE:/,'age:',gs_userinfo-age.
WRITE:/,'tel:',gs_userinfo-tel.

WRITE:/,'phone symbol:', sym_phone AS SYMBOL.
WRITE:/,'Alarm icon:', icon_alarm AS ICON.

DATA flag1 VALUE ''.

WRITE:/,'check flag1',flag1 AS CHECKBOX.
WRITE: sy-uline.

DATA col TYPE i VALUE 0.
DO 8 TIMES.
  col = sy-index - 1.
  FORMAT COLOR = col.
  WRITE :/ col COLOR OFF,
           'INTENSIFIED ON' INTENSIFIED ON,
           'INTENSIFIED OFF' INTENSIFIED OFF,
           'INVERSE ON' INVERSE ON,
           'INVERSE OFF' INVERSE OFF,
           'HOTSPOT ON' HOTSPOT ON,
           'HOTSPOT OFF' HOTSPOT OFF,
           'INPUT ON' INPUT ON,
           'INPUT OFF' INPUT OFF,
           'FRAMES ON' FRAMES ON,
           'FRAMES OFF' FRAMES OFF,
           'RESET' RESET.
ENDDO.

START-OF-SELECTION.
  FORMAT HOTSPOT.
  WRITE 'Click me!' COLOR 5.
  FORMAT HOTSPOT OFF.

AT LINE-SELECTION.
  WRITE 'Yeah!' COLOR 3.
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值