REPORT程序事件

19 篇文章 3 订阅

事件块总览

通过事件控制ABAP/4程序流:
- ABAP/4 是事件驱动语言。这意味着通过外部事件控制一般的ABAP/4程序流。程序的一部分组成过程快,并将该过程快分配到特定的事件。

定义过程块
- 可以在ABAP/4 中通过使用事件关键字定义过程块。在事件及其事件关键字中对可能的事件关键字进行了说明。
- 注:两个事件关键字或事件关键字与FORM 语句之间的所有语句构成过程块。出现事件时,系统将在相应的事件关键字之后处理过程块。 ABAP/4 报表程序中的所有语句都是过程块或者子程序的一部分。

因为通过事件唯一切换执行顺序,所以在程序中过程块的出现顺序是没有任何关系的。但是,为了保证可读性,在程序中应该以过程块的执行顺序排列它们。

事件块总览

步骤: 先进行初始化处理,然后进行AT SELECTION-SCREEN OUTPUT(选择屏幕输出执行之前的事件)
然后进行 ATSELECTION-SCREEN 选择屏幕的输入

在这里插入图片描述

程序基本内容

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

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

程序的模块化

INCLUDE...
	---  包含程序。  包含程序不能被单独调用,必须被其他程序包含,相当于此程序代码完全复制在当前程序中。
	---  注意声明部分与包含程序的位置
		-  INCLUDE...TOP.
		- INCLUDE...FORM.

PERFORM/FORM
	--- Subroutines,子程序,子例程,在程序中形成重用模块,可以进行多次重复调用。
	--- 对子程序的调用
			PERFORM <子程序名称> TABLES … USING …. CHANGING … .
	--- 子程序代码块
			FORM <子程序名称> TABLES …[TYPE type] USING … [TYPE type] CHANGING … [TYPE type].
			ENDFORM .

初始化事件LOAD-OF-PROGRAM

	--- 用于执行程序加载
	--- 当执行一个1类型(可执行程序) ,  M 类型(Module Pool)  .F 类型 (Function Group) ,S 类型程序时,SAP系统自动将程序加载至内存中,自动调用这个事件
	---  默认执行,不需coding, 执行完毕后执行 INITIALIZATION

初始化事件INITIALIAZATION

	--- 只能书写在可执行程序中
	--- 这个事件时在程序初始化过程中其作用的事件,一旦程序初始化完成以后该事件将不在对程序产生影响

选择屏幕相关事件

	---  选择屏幕PBO事件(Process Before  Output)
	---- AT SELECTION-SCREEN OUTPUT
	---- 在选择屏幕输出之前执行的事件,一般用来设置选择屏幕的控件属性

	---  选择屏幕PAI事件  (Process  AFTER INPUT)
   ---  在选择屏幕有输入之后执行的事件,一般用来进行有效性检查
   ---  **PAI 执行完毕后,自动执行一次PBO事件

选择屏幕的PBO事件

	---  例如: 点选复选框,对单选按钮及描述进行成组的显示或者隐藏
	---  注意:  当对 Parameters  或 Select-options  进行隐藏时,要修改器INPUT 属性,或修改active属性
PARAMETERS P_CHECK AS CHECKBOX USER-COMMAND HIDE.  "  生成一个复选框
SELECTION-SCREEN  BEGIN OF LINE.				"在一行上放置控件
SELECTION-SCREEN  COMMENT (10)  TEXT-C01  MODIF  ID SEX.		"文本
PARAMETERS  P_FEMALE    RADIOBUTTON  GROUP  GP1  MODIF  ID SEX.		"单选按钮
SELECTION-SCREEN POSITION 33.			"到屏幕33的位置
SELECTION-SCREEN COMMENT (10)  TEXT-C02  MODIF  ID SEX.  "文本
PARAMETERS  P_MALE   RADIOBUTTON  GROUP  GP1  MODIF  ID SEX.		"单选按钮
SELECTION-SCREEN OF LINE.			"一行结束  

AT SELECTION-SCREEN OUTPUT.
	IF P_CHECK  = 'X'.
	LOOP  AT SCREEN .
		IF SCREEN-GROUP1 = 'SEX'.
			SCREEN-INVISIBLE = '1' .
			SCREEN-INPUT       = '0'.
			MODIFY  SCREEN.
		ENDIF.
	ENDLOOP.
ENDIF.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值