《ABAP事件块详解.docx》由会员分享,可在线阅读,更多相关《ABAP事件块详解.docx(29页珍藏版)》请在三一办公上搜索。
1、ABAP事件块详解 第四章 通过事件控 制 ABAP/4 程序流 概览 内容 定义过程块 . ABAP/4 处理程序 . 事件及其事件关键字 . INITIALIZATION . AT SELECTION-SCREEN . START-OF-SELECTION . GET . GET LATE . END-OF-SELECTION. 终止过程块 . 无条件地离 开过程块 . 有条件地离 开过程块 . 无条件地离 开 GET 事件 . 有条件地离 开 GET 事件 . ABAP/4 是事件驱动 语言。这意味着通过外部事件控制 一般的 ABAP/4 程序流。程序的一部分 组成过程块 ,并将该过程块
2、分配到特定的事件 。 事件关键字 提供了事件 和程序之间 的接口。系 统总是在相应事件出现 时启动过程 块 。 在控制 ABAP/4 程序流 (页 错误!链接无效。) 中介绍了过 程块中的流 控制。本 节介绍 ABAP/4 程序的外部 控制和可能 涉及到的事 件。 可以学到 定义过程块 可以在 ABAP/4 中通过使用 事件关键字 定义过程块 。在 事件及其事 件关键字 (页 ) 中对可能的 事件关键字 进行了说明 。 两个事件关 键字之间或 事件关键字 与 FORM 语句之间的 所有语句构成过程 块。出现事 件时,系统 将在相应事 件关键字之 后处理过程 块。 ABAP/4 报表程序中 的所
3、有语句 都是过程块 或子程序的 一部分。 没有紧跟着 事件关键字 或 FORM-ENDFORM 块的语句自 动成为默认 事件 START-OF-SELECTION 过程块的一 部分。这样将 有下列影响 : 如果在 REPORT 或 PROGRAM 语句与第一 个事件关键 字或 FORM 语句之间写 语句,则将 把这些语句 包括在 START-OF-SELECTION 过程块中。 - 如果没 有把 START-OF-SELECTION 关键字包括 在报表中, 则这些语句 构成整个 START-OF-SELECTION 过程块。 - 如果将 START-OF-SELECTION 关键字包括 在报表
4、中, 则将把这些 语句插入到 此块的开始部分。 如果没有 在程序中指定事件关键字,则该程序 FORM 语句之前的 所有语句构 成 START-OF-SELECTION 过程块。注 意,这种情况下,永远 不会执行 FORM - ENDFORM块之后的所有语句。 因为通过事件唯一切换执行顺序, 所以在程序中过程块的出现顺序是没有任何关系的。 但是 ,为了保证 可读性,在 程序中应该 以过程块的 执行顺序排 列它们。 与操作或控制语句不一 样,系统在生成程序时而不是在运行时间中执行说明性语句。对它们的执行与它 们在程序代码中的位置无关,并且可以属于任何过程块。 为清楚起见 ,应该把所有说明性的关键字
5、放到程序或子程序的开始处 。 REPORT SAPMZTST. WRITE / Statement 1. FORM ROUTINE. WRITE / Subroutine. ENDFORM. WRITE / Statement 2. PERFORM ROUTINE. WRITE / Statement 3. 输出如下所 示: Statement 1 在此程序中 ,只执行了 START-OF-SELECTION 过程块。此 块包含第一 个 WRITE 语句。 现在,按照 下列方法把 START-OF-SELECTION 语句插入程 序中: REPORT SAPMZTST. WRITE / Sta
6、tement 1. FORM ROUTINE. WRITE / Subroutine. ENDFORM. START-OF-SELECTION. WRITE / Statement 2. PERFORM ROUTINE. WRITE / Statement 3. 输出如下所 示: Statement 1 Statement 2 Subroutine Statement 3 在此程序中 ,START-OF-SELECTION 过程块包含 除 FORM-ENDFORM 块之外的所 有语句。下 列是此程序 更易读的形 式: REPORT SAPMZTST. START-OF-SELECTION. W
7、RITE / Statement 1. WRITE / Statement 2. PERFORM ROUTINE. WRITE / Statement 3. FORM ROUTINE. WRITE / Subroutine. ENDFORM. 在程序的这 种形式中, 也可以忽略 START-OF-SELECTION 语句。 ABAP/4 处理程序 报表程序是 过程块的集 合,执行该 程序以对特 定事件作出 反应,特别 是使用逻辑 数据库时。 可以把这些 块视为可调 用模块。在 程序代码中 ,它们不需 要以任何特 殊的顺序出 现。一旦调 用报表程序 ,系统就启 动另一个进 程,该进 程调用这些
8、模块,并控 制外部程序 流。 此控制程序 是 ABAP/4 处理程序。 它监视 ABAP/4 报表程序、 逻辑数据库 程序和其他 程序模块之间的 交互作用。 它也解释 ABAP/4 程序的运行 时间对象。 必须生成每 个 ABAP/4 程序,在 ABAP/4 编辑器中编 写这些程序 ,以创建其 运行时间对 象。这既适 用于报表程 序,也适用 于逻辑数据 库程序。即 可以在 ABAP/4 编辑器中通 过选择“程 序 - 生成”执行 该生成,也 可以在“ABAP/4 编辑器:初 始屏幕”上 通过选择“ 生成”执行 。第一次启 动报表程序 时,自动生 成该报表程 序。 通过在程序 中使用的事 件关键
9、字控 制 ABAP/4 处理程序和 不同程序之 间的交互作 用。例如 在报表程 序 START-OF-SELECTION、 GET 中,等等, 参见 事件及其事 件关键字 (页 ) , 在逻辑数 据库程序 PUT 中,等等, 参见 逻辑数据库 的特征和维 护 (页 Error! Not a valid link.) 。 根据由事件 关键字定义 的流,ABAP/4 处理程序解 释相应程序 单元,并开 始处理它们 。 事件及其事 件关键字 这里有几组 事件关键字 ,这些事件 关键字在特 定环境下控 制 ABAP/4 程序流。 逻辑数据库 是典型报表 程序的外部 流控制的中 心点。如果将 逻辑数据库
10、 链接到报表 程序,将导 致显示选择 屏幕,并决 定系统如何 从数据库表 中读取数据 。这引起在 下列表中说 明的事件序 列。关于事 件出现顺序 的详细信息 ,参见 逻辑数据库和 ABAP/4 报表 (页 Error! Not a valid link.) 。 下列事件出 现在典型报 表程序的运 行时间处, 该报表程序 使用逻辑数 据库: 事件关键字 事件 INITIALIZATION (页 ) 在显示选择 屏幕之前的 点 AT SELECTION-SCREEN (页 ) 选择屏幕仍 然活动时, 处理用户在 选择屏幕上 输入之后的 点 START-OF-SELECTION (页 ) 处理选择屏
11、 幕之后的点 GET (页 ) 点位于逻辑 数据库提供 数据库表 的行处。 GET LATE (页 ) 处理所有表 之后的点, 在逻辑数据 库的结构中 ,使这些表 位于 数据库 表 的下层。 END-OF-SELECTION (页 ) 处理完逻辑 数据库提供 的所有行之 后的点。 下 列主题说明 这些事件的 过程块。 处理和显示 报表程序输 出列表时, 出现其他没 有连接到逻 辑数据库的 事件。可以 用这些事件 格式化输出 列表,并使 报表程序成 为交互式的 。在适当的 节中将继续 说明这些事 件。 处理报表程 序输出列表 时,出现下 列事件: 事件关键字 事件 TOP-OF-PAGE 启 动
12、新页时, 列表处理中 的点 END-OF-PAGE 结 束页时,列 表处理中的 点 可以用这 些关键字改 善输出列表 的格式。说 明参见创建列表 (页 Error! Not a valid link.) 。 下列事件出 现在报表程 序输出列表 的显示中: 事件关键字 事件 AT LINE-SELECTION AT USER-COMMAND 用 户在该点处 选择行 用 户在该点处 按下功能键 或在命令字 段中输入命 令 AT PF 用 户在该点处 按下有功能 代码 PF 的功能键 可 以使用这些 关键字编写 交互式报告 的程序。详 情参见 交互式列表 (页 Error! Not a valid
13、link.) 。 关于所有事 件关键字的 详细说明, 参见事件关 键字文档。 INITIALIZATION 启动已定义 选择屏幕的 程序时, 系统通常首 先处理此选 择屏幕。如 果希望在处 理选择屏幕 之前执行过 程块,可以 把它分配到 事件关键字 INITIALIZATION。 在此块中, 指定初始化 选择屏幕的 语句,例如 通过更改参 数或选择标 准的默认值 。这只对在 逻辑数据库 中定义的参 数或选择标 准才有效。 对于选择标 准,应该通 过更改选择 表 的表头行并 把它附加到 表中,至少 定义选择表 的组件 -SIGN、 -OPTION、 -LOW。否则, 可能未定义 部分选择标 准。
14、 如果希望通 过检查逻辑 数据库 SAPDB 自己,或通 过检索字段 的技术信息 而更改内部 字段,可以 找到该字段 的名称。为 此,在选择 屏幕上选择 输入字段, 并按下 F1。然后 ,选择对话 框中的“技 术信息”。 在下列窗口 的字段“屏 幕字段”中 ,将会看到 程序中使用 的字段名称 。 假定有链接 到逻辑数据 库 F1S 的报表程序 : REPORT SAPMZTST. PARAMETERS FIRSTDAY LIKE SY-DATUM DEFAULT SY-DATUM. TABLES SPFLI. 启动此程序 时,将自动 出现下列选 择屏幕: 在逻辑数据 库 F1S 中定义有选 择
15、文本“承 运方 ID”的选 择标准,以 及有选择文 本“从”和 “到”的参 数。在程序 自身中定义 参数 FIRSTDAY。 例如,现在 选择“承运 方 ID”的第 一个输入字 段,按下 F1,然后 选择“技术 信息”,以 找到选择表 的名称: 在字段“屏 幕字段”中 ,将看到名 称 CARRID-LOW, 它是对应于 选择输入的 选择表的组 件。从这里 看到选择标 准的名称是 CARRID。 在上面所述 的相同过程 中,可以发 现把输入字 段“从”和 “到”命名 为 CITY_FR 和 CITY_TO。 现在,可以 按照下列方 法更改报表 程序: REPORT SAPMZTST. PARAM
16、ETERS FIRSTDAY LIKE SY-DATUM DEFAULT SY-DATUM. TABLES SPFLI. INITIALIZATION. CITY_FR = NEW YORK. CITY_TO = FRANKFURT. CARRID-SIGN = I. CARRID-OPTION = EQ. CARRID-LOW = AA. APPEND CARRID. FIRSTDAY+6(2) = 01. 启动 SAPMZTST 之后,选择 屏幕如下: 更改了选择 标准的默认 值和所有参 数。 AT SELECTION-SCREEN 事件关键字 AT SELECTION-SCREEN 提供
17、了好几 种在系统处 理选择屏幕 时执行过程 块的方法。 为了对处理 选择屏幕时 出现的不同 事件都有效 ,关键字 AT SELECTION-SCREEN 有不同选项 。 与 PARAMETERS 和 SELCECT-OPTIONS 语句的特殊 选项一起, 在 使用选择屏幕 (页 错误!链接无效。) 中显示了关 键字 AT-SELECTION 屏幕的某些 应用。 如果指定字 段的关键字 没有任何选 项,则在系 统处理完选 择屏幕之后 启动相应过 程块。如果 从此过程块 中发送 ERROR MESSAGE, 则系统将又 显示选择屏 幕,并且可 以更改所有 输入字段。 必须提供适 当的 ERROR
18、MESSAGE。 例如,此方 法可以输入 字段命令, 尽管没有在 逻辑数据库 程序中使用 PARAMETERS 或 SELECT-OPTIONS 语句的 OBLIGATORY 选项定义它 们。 在表 T100 中存储和维 护 MESSAGE。 通过语言、 两个字符的 ID 和三位数字 对它们进行 分组,可以 从程序中以 不同条件发 送 MESSAGE: A:Abend, 终止当前事 务 E:错误 ,系统等待 新输入数据 I:信息 ,处理 ENTER 之后,系统 继续处理 S:确认 ,消息出现 在下一屏上 W:警告 ,可以更改 输入数据或 通过按 ENTER 继续 必须在程序 的 REPORT
19、或 PROGRAM 语句之后指 定 MESSAGE-ID。 通过 ABAP/4 编辑器,选 择“编辑 - 插入语句.” ,可以很容 易地将 MESSAGE 包括到程序 中。也可以 从这里更改 MESSAGE。 关于报表中 MESSAGE 处理的详细 信息,参见 列表中的消 息 (页 Error! Not a valid link.) 。 将逻辑数据 库 F1S 附加到下列 报表程序: REPORT SAPMZTST MESSAGE-ID HB. TABLES SPFLI. AT SELECTION-SCREEN. IF CARRID-LOW IS INITIAL OR CITY_FR IS I
20、NITIAL OR CITY_TO IS INITIAL. MESSAGE E000. ENDIF. 此报表使用 有 ID HB 的 MESSAGE。 启动 SAPMZTST 之后,选择 屏幕显示在 逻辑数据库 F1S 中定义的内 容。一旦用 户不把值输 入到每个输 入字段中, 下列错误信 息就将出现 在屏幕的状 态栏中。 在表 T100 中,以 ID HB 为此例子编 写了 MESSAGE 000 代码。 事件关键字 AT SELECTION-SCREEN 的选项使您 能够在处理 选择屏幕时 为特定事件 创建过程块 。在下列主 题中说明这 些事件: 在下列主题 中即将介绍 这些选项。 详细信
21、息, 参见关于 AT SELECTION-SCREEN 的关键字文 档。 处理特殊输 入字段 要在处理选 择屏幕的特 殊输入字段 之后启动过 程块,请按 照下列方法 使用关键字 AT SELECTION 屏幕: 语法: AT SELECTION-SCREEN ON . 系统处理了 变量 的输入字段 之后,启动 相应过程块 。如果从此 过程块中发 送 ERROR MESSAGE, 则系统再次 显示选择屏 幕,用户仅 必须更改变 量 的输入字段 。 将逻辑数据 库 F1S 附加到下列 报表程序。 REPORT SAPMZTST MESSAGE-ID HB. TABLES SPFLI. AT SEL
22、ECTION-SCREEN ON CITY_FR. IF CITY_FR NE NEW YORK. MESSAGE E010. ENDIF. 如果用户没 有在选择屏 幕中的字段 “从”中插 入“NEW YORK” ,则下列 ERROR MESSAGE 会出现在屏 幕的状态栏 中, , 直到用户作 出正确输入 。在表 T100 中,以此 ID HB 为例编写了 MESSAGE 010 代码。 处理多重选 择 将特殊选择 标准的复杂 选择输入到 选择屏幕的 “多重选择 ”窗口,并 处理此窗口 之后 ,可以调用 过程块,为 此,请按照 下列方法使 用 AT SELECTION-SCREEN 语句:
23、语法 AT SELECTION-SCREEN ON END OF . 在处理选择 标准 的“复杂选 择”窗口结 束处启动相 应过程块。 可以使用这 些选项检查 内表 中的条目。 将逻辑数据 库 F1S 附加到下列 报表程序中 。 REPORT SAPMZTST MESSAGE-ID HB. TABLES SPFLI. AT SELECTION-SCREEN ON END OF CARRID. LOOP AT CARRID. IF CARRID-HIGH NE . IF CARRID-LOW IS INITIAL. MESSAGE W020. ENDIF. ENDIF. ENDLOOP. 启 动
24、 SAPMZTST 之后,如果 用户在选择 屏幕上单击 箭头图标, 然后在“多 重选择”窗 口中输入范 围选择的上 限,而不输 入下限,则 出现下列对 话框,并发 出警告: 在表 T100 中,以此 ID HB 为例编写了 MESSAGE 020 代码。 创建输入值 列表 You 通过按照下 列方法使用 AT SELECTION-SCREEN 语句,可以 为选择屏幕 上的输入字 段创建可能 输入值的列 表: 语法 AT SELECTION-SCREEN ON VALUE-REQUEST FOR . 如果使用此 语句,在选 择屏幕上选 定参数或选 择标准 的输入字段 时,会自动 紧跟着该字 段出
25、现可能 的登录按钮 。 只可以在报 表程序中使 用此语句。 在逻辑数据 库程序中, 可以使用 PARAMETERS 和 SELECT-OPTIONS 语句的 VALUE-REQUEST 选项(参见 关键字文档 )。 必须在 AT SELECTION-SCREEN ON VALUE REQUEST 语句的过程 块内为 编写建议值 列表程序。 用户单击可 能的登录按 钮或按下 F4 时,将显示 此列表。如 何编写这种 列表的代码 是对话编程 的范畴,并 在编写字 - 和值 - 帮助程序 (页 Error! Not a valid link.) 中作了介 绍。 PARAMETERS FIELD(10
26、). AT SELECTION-SCREEN ON VALUE-REQUEST FOR FIELD. 参数如下: 如果为 FIELD 编写了建议 值列表,并 且用户单击 了可能的登 录按钮,则 将显示它。 创建输入字 段的帮助 通过按照下 列方法使用 AT SELECTION-SCREEN 语句,可以 为选择屏幕 上的输入字 段创建自己 的帮助: 语法 AT SELECTION-SCREEN ON HELP-REQUEST FOR . 如果使用此 语句,用户 在选择屏幕 上选择 的输入字段 ,并按下 F1 键时,将显 示帮助文本 。 只可以在报 表程序中使 用此语句。 在逻辑数据 库程序中,
27、使用 PARAMETERS 和 SELECT-OPTIONS 语句的 HELP-REQUEST 选项。 必须在 AT SELECTION-SCREEN ON HELP REQUEST 语句的过程 块内编写帮 助文本的程 序。如何编 写这种帮助 的代码是对 话编程的范 畴,并在 编写字 - 和值 - 帮助程序 (页 Error! Not a valid link.) 中作了介绍 。 处理单选按 钮组 在选择屏幕 上处理完单 选按钮组之 后,要启动 过程块,请 按照下列方 法使用关键 字 AT SELECTION 屏幕: 语法: AT SELECTION-SCREEN ON RADIOBUTTON
28、 GROUP . 系统处理单 选按钮组 后启动相应 过程块。如 果从过程块 中发送 ERROR MESSAGE, 则系统又显 示选择屏幕 ,用户只必 须更改单选 按钮 的输入字段 。 REPORT SAPMZTST MESSAGE-ID HB. PARAMETERS: R1 RADIOBUTTON GROUP RAD1 DEFAULT X, R2 RADIOBUTTON GROUP RAD1, R3 RADIOBUTTON GROUP RAD1. AT SELECTION-SCREEN ON RADIOBUTTON GROUP RAD1. IF R1 = X. MESSAGE I030. EN
29、DIF. 如果用户没 有更改选择 屏幕上的单 选按钮,将 出现下列 INFORMATION MESSAGE: 在表 T100 中,以此 ID HB 为例编写了 MESSAGE 030 代码。 处理输入字 段块 在选择屏幕 上处理完元 素块之后启动 过程块,请 按照下列方 法使用关键 字 AT SELECTION 屏幕: 语法: AT SELECTION-SCREEN ON BLOCK . 系统处理完 元素块 时启动相应 过程块。如 果从此过程 块中发送 ERROR MESSAGE, 则系统再次 显示选择屏 幕,用户只 必须更改块 的输入字段 。 REPORT SAPMZTST MESSAGE-
30、ID HB. SELECTION-SCREEN BEGIN OF BLOCK PART1 WITH FRAME TITLE TEXT-001. PARAMETERS: NUMBER1 TYPE I, NUMBER2 TYPE I, NUMBER3 TYPE I. SELECTION-SCREEN END OF BLOCK PART1. AT SELECTION-SCREEN ON BLOCK PART1. IF NUMBER3 LT NUMBER2 OR NUMBER3 LT NUMBER1 OR NUMBER2 LT NUMBER1. MESSAGE E040. ENDIF. 启动 SAPM
31、ZTST 后,用户可 以把号码输 入到块 PART1 的输入字段 中。如果他 没有按升序 输入号码, 则下列 ERROR MESSAGE 将出现在状 态栏中: 在表 T100 中,以此 ID HB 为例编写了 MESSAGE 040 代码。 选择屏幕的 PBO 要在每个 ENTER 的选择屏幕 PBO 中启动过程 块,请使用 下列 AT SELECTION-SCREEN 语句: 语法 AT SELECTION-SCREEN OUTPUT. 例如,在这 些事件中, 可以申请对 选择屏幕上 的字段作出 修改。详情 和例子,参 见 给修改组分 配参数 (页 错误!链接无效。) 。 START-OF-
32、SELECTION 过程块的可 能。例如, 可以使用这 些过程块设 置内表的值 ,或将信息 语句写到输 出屏幕上。 在 START-OF-SELECTION 事件处,也 处理没有附 加到事件关 键字的所有 语句,或在 FORM-ENDFORM 块后写这些 语句。 GET 对于有附加 逻辑数据库 的报表程序 ,最重要的 事件是逻辑 数据库程序 从数据库表 中读取了行 的时刻。要在此 事件处启动 过程块,请 按照下列方 法使用 GET 语句: 语法 GET FIELDS . 此语句之后 ,可以使用 数据库表 的当前行。 在表工作区 中提供了数 据。 逻辑数据库 从所有数据 库表中读取 所有列,没
33、有为逻辑数 据库中的字 段指定这些 数据库表, 并且这些数 据库表优于 逻辑数据库 访问路径上 的 。不管是 否为这些表 指定了 GET 语句,这都 与事实无关 。只有在程 序中使用 TABLES 语句声明表 之后,才可 以访问这些 表的数据。 对于为逻辑 数据库中的 选择字段指 定的表,性 能可以更好 一些。如果这 样的表优于 逻辑数据库 访问路径上 的 , 并且没有为 它们指定 GET 语句,则系 统只从在程 序中用 TABLES 语句声明的 表中读取所 有列的数据 。从在程序 中没有用 TABLES 语句声明的 表中,系统 只读取关键 字段。 使用 FIELDS 选项,可以 外在地指定
34、应该由逻辑 数据库读取 的数据库表 的列。在 外在地指定 数据库表的 字段 (页 ) 中对 FIELDS 选项作了介 绍。 将逻辑数据 库 F1S 附加到了下 列报表程序 。F1S 的结构为: 报表程序 SAPMZTST 的代码为: REPORT SAPMZTST. TABLES: SPFLI, SFLIGHT, SBOOK. START-OF-SELECTION. WRITE Test Program for GET. GET SPFLI. SKIP. WRITE: / From:, SPFLI-CITYFROM, To:, SPFLI-CITYTO. GET SFLIGHT. SKIP.
35、WRITE: / Carrid:, SFLIGHT-CARRID, Connid:, SFLIGHT-CONNID. ULINE. GET SBOOK. WRITE: / Fldate:, SFLIGHT-FLDATE, Bookid:, SBOOK-BOOKID, Luggweight, SBOOK-LUGGWEIGHT. ULINE. 启动 SAPMZTST 之后,假定 用户按照下 列方法填写 选择屏幕: 这样,输出 列表的第一 部分如下: 注意,在 GET SBOOK 后的过程块 中使用表工 作区 SPFLI。 外在地指定 数据库表的 字段 要指定在 GET 事件处使用 数据库表的 哪一
36、个字段 ,请按照下 列方法使用 GET 语句的 FIELDS 选项: 语法 GET LATE FIELDS . 使用 FIELDS 选项,从数 据库表 中,逻辑数 据库程序只 读取字段 . 和关键字段 。FIELDS 选项的使用 可以引起相 应性能改善 。 链接到报表 程序的逻辑 数据库必须 为字段选择 指定数据库 。 逻辑数据库 不读取所有 非关键字段 的字段和所 有没有在 FIELDS 后列出的字 段。在 GET 事件中,没 有使用 FIELDS 选项定义表 工作区 的相应组件 内容。也没 有在数据库 表的 GET 事件中定义 它们,这些 数据库表次 于逻辑数据 库分层中的 。 不应该定位
37、 这些未定义 的字段,并 且不调用外 部子程序, 程序使用这 些字段。 假定逻辑数 据库 F1S 为字段选择 指定了数据 库表 SFLIGHT 和 SBOOK。 这样,可以 写下列程序 : TABLES: SFLIGHT, SBOOK. GET SFLIGHT FIELDS CARRID CONNID. GET SBOOK FIELDS CUSTOMID. GET SFLIGHT LATE FIELDS PLANETYPE. 在此例中, 系统 从 SFLIGHT 中读取字段 MANDT、 CARRID、 CONNID、 FLDATE 和 PLANETYPE 从 SBOOK 中读取字段 MAND
38、T、 CARRID、 CONNID、 FLDATE 和 BOOKID 注意,系统 从 SFLIGHT 中读取字段 MANDT 和 FLDATE from SFLIGHT, 这是因为 MANDT 和 FLDATE 是此表的关 键字段。 在此例子中 ,从 SBOOK 中只读取关 键字段。 GET LATE 要在系统处 理完逻辑数 据库的所 有数据库表 之后启动过 程块,请按 照下列方法 使用事件关 键字 GET: 语法 GET LATE FIELDS . 与只使用 SELECT 语句的报表 程序相 似,在数据 库表 的 SELECT 循环中,GET LATE 语句的过程 块直接出现 在 ENDSE
39、LECT 语句的前面 。 FIELDS 选项的作用 与 GET 事件相同, 在 外在地指定 数据库表的 字段 (页 ) 中对它作了 解释。 将逻辑数据 库 F1S 连接到下列 报表程序。 REPORT SAPMZTST. TABLES: SPFLI, SFLIGHT, SBOOK. DATA WEIGHT TYPE I VALUE 0. START-OF-SELECTION. WRITE Test Program for GET LATE. GET SPFLI. SKIP. WRITE: / From:, SPFLI-CITYFROM, To:, SPFLI-CITYTO, Connid:, SPFLI-CONNID. ULINE. GET SFLIGHT. SKIP. WRITE: / Date:, SFLIGHT-FLDATE. GET SBOOK. WEIGHT = WEIGHT + SBOOK-LUGGWEIGHT. GET SFLIGHT LATE. WRITE: / Total luggage weight =, WEIGHT. ULINE. WEI
链接地址:https://www.31ppt.com/p-3151843.html