资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
第四章第四章控制屏幕流控制屏幕流 程程 概览概览 内容内容 屏幕流程控屏幕流程控 制介绍制介绍. 设置下一个设置下一个 屏幕屏幕. 调用新的屏调用新的屏 幕序列幕序列. 退出当前屏退出当前屏 幕幕 . 后台处理屏后台处理屏 幕幕 . 对于用户来 说,事务就 是逐个出现 的一系列屏 幕。在事务 程序中,屏 幕由一系列 的“下一个 屏幕” 号链 接在一起。 定义事务时 ,要指定第 一个屏幕的 号码。然后 ,对事务中 的每个屏幕 ,可以静态 地或动态地 指定“下一 个屏幕” 静态屏幕 指示器 定义屏幕时 ,要为它指 定“下一个 屏幕”属性 。该属性给 出紧随着当 前屏幕的 默 认屏幕名称 。然而,无 论何时动态 设置“下一 个屏幕”, 都会覆盖静 态属性。 动态屏幕 序列 任何屏幕都 可以设置它 自己的“下 一个屏幕” 作为屏幕处 理的一部分 。做到这 一 点的 ABAP/4 命令是 SET SCREEN 和 CALL SCREEN。 动态设置屏 幕时,可 以 逐个地串在 一起(象在 链中一样) ,或将它们 的组插入到 当前链中。 下列主题提 供关于在事 务中处理屏 幕的信息: 屏幕流程控 制介绍 (页 ) 设置下一个 屏幕 (页 ) 调用新的屏 幕序列 (页 ) 退出当前屏 幕 (页 ) 示例事务: 设置和调用 屏幕 (页 ) 后台处理屏 幕 (页 ) 屏幕流程控屏幕流程控 制介绍制介绍 关于在事务 中控制屏幕 流程的示例 ,请参见事 务 TZ40。 (该事务在 开发类 SDWA 中,同系统 一起传送。 )TZ40 让用户显示 航班信息并 将更新信息 输入到显示 中。 TZ40 使用两个屏 幕和对话框 (弹出窗口 )用于获得 用户的更新 。事务总是 显示开始的 两个屏幕 ( 号码为 100 和 200 ) 。第三个 (210) 只是在一定 的条件下才 显示。可能 的屏幕流程 如下: 在实践中, 用户见到如 下序列: 屏幕屏幕 100:用 户输入航班 信息,并按 ENTER 请求显示航 班详情。 屏幕屏幕 200:系 统在更新模 式中显示关 于航班的全 部细节。用 户通过键入 全部显 示输 入所作的更 改。 屏幕屏幕 210 屏幕 210 只在用户试 图不保存而 退出屏幕 200 时才出现。 弹出内容提 醒用户保 存 所作的更改 或取消(通 过指定“是 ”或“否” ) 要想使该屏 幕序列成为 可能,事务 TZ40 必须能够有 条件地调用 对话框屏幕 。 ABAP/4 模块可以“ 转入”或“ 调用”下一 个屏幕。两 者的差别在 于处理完下 一个屏幕之 后用户 要让 控制转到哪 里。相关的 ABAP/4 命令是: SET SCREEN . CALL SCREEN . LEAVE SCREEN. LEAVE TO SCREEN . 通过 SET SCREEN, 在链中当前 屏幕简单地 指定下一个 屏幕。当前 屏幕处理完 毕后,控制 转入该 下一 个屏幕。从 下一个屏幕 返回到当前 屏幕不是自 动的。 使用 CALL SCREEN, 挂起当前( 正调用的) 链,调入下 一个屏幕( 或屏幕链) 。通过语句 LEAVE SCREEN TO SCREEN 0 调用的屏幕 就能够返回 到挂起的链 上。 详细信息, 参见: 设置下一个 屏幕 (页 ) 调用新的屏 幕序列 (页 ) 退出当前屏 幕 (页 ) 设置下一个设置下一个 屏幕屏幕 每一个屏幕 都有静态的 “下一个屏 幕”属性, 该属性指定 跟随当前屏 幕的下一个 屏幕。可以 使用 SET SCREEN 语句覆盖该 指定: SET SCREEN . SET SCREEN 告诉系统忽 略静态定义 的“下一个 屏幕” ,而 使用 作为下一个 屏幕。 该覆盖是暂 时的并且对 储存在屏幕 制作器中的 属性值没有 影响。 SET SCREEN 语句只指定 下一个屏幕 :它不中断 当前屏幕的 处理。如果 未完成当前 屏幕就要转 入 下一个屏 幕,请使用 LEAVE SCREEN 语句。 注意可以使 用变量指定 下一个屏幕 号: DATA: REQSCRN LIKE SY-DYNNR VALUE 100. MODULE SET_NEXT_SCREEN. SET SCREEN REQSCRN. ENDMODULE. 系统字段 SY-DYNNR 总是包含当 前屏幕的号 码。 调用新的屏调用新的屏 幕序列幕序列 有时要将屏 幕或整个屏 幕序列插入 到事务过程 中。例如, 可能要让某 个用户从主 应用程序屏 幕中 调用弹 出屏幕,以 输入辅助信 息。完成输 入以后,用 户应当能够 关闭弹出屏 幕并直接返 回到主屏 幕 中先前所离 开的地方。 要做到这一 点,有两种 方法: 使用 CALL SCREEN 语句 CALL SCREEN 可以向当前 序列中插入 这样的序列 。在此对该 语句的使用 作了说 明。 调用对话 模块 对话模块是 能够调用的 、不属于特 定事务的屏 幕序列。对 话模块有自 己的模块 池 ,能被任何 事务调用。 关于使用对 话模块的详 细信息,参 见调用对话模块 (页 Error! Not a valid link.) 。 调用新屏幕 序列的语法 是: CALL SCREEN . 既然该语句 实际上是挂 起当前序列 并启动新序 列,因此可 以将 CALL SCREEN 看作“堆积 ”序列。 系 统继续进行 新序列,直 到它完成才 恢复先前挂 起的序列。 (CALL SCREEN 之后直接恢 复处理 该命 令) 要调用屏幕 作为对话框 (弹出) , 请使用带选 项 STARTING AT、 ENDING AT 的 CALL SCREEN: CALL SCREEN STARTING AT ENDING AT STARTING AT 和 ENDING AT 选项告诉系 统在何处定 位弹出屏幕 。屏幕本身 必须比常规 屏幕小。 在 ABAP/4 中,屏幕的 每个可堆积 序列都是“ 调用模式” 。从给定当 前序列返回 的方法使得 这一 点很重 要。要终止 调用模式并 返回到挂起 链,请将“ 下一个屏幕 ”设置为 0 并退出: LEAVE TO SCREEN 0.或SET SCREEN 0. LEAVE SCREEN. 返回到挂起 链时,用直 接跟随初始 CALL SCREEN 语句的语句 来恢复执行 。 事务中的初 始屏幕序列 本身即是调 用模式。如 果在该序列 中 LEAVE TO SCREEN 0 (也就是说 , 没有堆积 任何其它的 调用模式) ,则从事务 中一起返回 。 一次可以堆 积最多 9 个调用模式 。 退出当前屏退出当前屏 幕幕 要终止处理 当前屏幕, 请使用: LEAVE TO SCREEN 。 或 SET SCREEN 。 LEAVE SCREEN。 这两个命令 都终止处理 当前屏幕, 并直接跳到 。 如果使用 SET SCREEN 而没有使用 LEAVE SCREEN, 则程序在转 入 之前完成当 前屏幕的处 理。 如果使用 LEAVE SCREEN 而之前没有 使用 SET SCREEN, 则终止当前 屏幕,并直 接转入屏幕 属 性中指定 为默认的下 一个屏幕 在“调用模 式”中,特 殊屏幕号 0 (LEAVE TO SCREEN 0)导致系 统跳回到先 前的调用级 别。也 就是 说,如果使 用 CALL SCREEN 调用屏幕序 列,则 LEAVE TO SCREEN 0 将终止该序 列并返回 调 用屏幕。如 果没有调用 过屏幕序列 ,LEAVE TO SCREEN 0 将终止事务 。关于 CALL SCREEN 的详细信息 ,参见 调用新的屏 幕序列 (页 ) 。 示例事务:示例事务: 设置和调用设置和调用 屏幕屏幕 要了解屏幕 流程控制的 完整实施, 查看事务 TZ40( 开发类 SDWA) 是如何组织 的很有用。 屏幕流程逻屏幕流程逻 辑辑 要显示事务 如何转入或 调用屏幕, 请看屏幕 200 的处理。退 出命令的处 理(功能代 码为 BACK 和 EXIT) 显示了该过 程。处理 BACK 或 EXIT 功能代码时 ,PAI 模块必须检 查在屏幕显 示或最 后保 存之后航班 细节是否更 改。如果是 ,屏幕 200 必须调出弹 出屏幕 210 以提示保存 。屏幕 200 流程逻辑的 相关部分是 : *-* * Screen 200: Flow Logic * *&-* PROCESS AFTER INPUT. MODULE EXIT_0200 AT EXIT-COMMAND. * (.) MODULE USER_COMMAND_0200. ABAP/4 代码代码 屏幕 200 的 PAI 模块如下。 事务 TZ40 提供所有返 回功能(“ 后退” 、 “ 退出”和“ 取消” )作 为 退出命令 。然而,在 屏幕 200 中,只有“ 取消”功能 允许立即从 屏幕退出。 要使取消生 效,使用 标 准退出逻辑 告诉系统跳 回到屏幕 100: *&-* *& Module EXIT_0200 INPUT *&-* MODULE EXIT_0200 INPUT. CASE OK_CODE. WHEN CANC. CLEAR OK_CODE. SET SCREEN 100. LEAVE SCREEN. ENDCASE. ENDMODULE. 屏幕 200 的所有其它 的功能代码 处理如下: “保存” 功能触发数 据库的更新 “退出” 和“后退” 功能触发调 用 SAFETY_CHECK 例程。该例 程检查屏幕 上 未保存的 数据,必要 时提醒用户 保存。 注意返回方 法。对于“ 退出”功能 ,控制从事 务中一起返 回(SET SCREEN 0) 。对
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号