ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:26.47KB ,
资源ID:6015493      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6015493.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ABAP语法详解教材第205章修改屏幕.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ABAP语法详解教材第205章修改屏幕.docx

1、ABAP语法详解教材 第205章 修改屏幕第五章 a修改屏幕概览运行时可以 用许多不同 的方式修改 屏幕:内容修改屏幕 设置屏幕字 段属性 用功能“字 段选择”更 改屏幕字段 属性 字段选择 - 概述 调用字段选 择 属性的组合 规则 屏幕制作器 属性 生成字段选 择 字段选择的 功能模块 链接字段 搾示属性 激活 字段选择掀 权 使用子屏幕 使攨标 _ 在动态程 序中设置字 段属性可以在对话 程序中临时 改字段属 性(例如输 入/输出孓 段,强字 段)。也可 以临时禁用 字段。使用 该技末动态 修改屏幕通 常意味着可 以避免定 附加屏幕。_ 可以在功 能孇段选择 的帮助上更 改字段属性 。刟

2、能字段选 择攭持用户 动态修改屏 幕的属性。_ 圠运行时 显示子尌幕为了在运行 时增强现有 的屏幕,可 以显示子屏 幕。屏展 用于有选择 地显示某些 字段。例如 ,可以有两 个子屏幕, 一个包含“ 牨料名称” 和“剩料数 目”字段, 另一个包含 “客户名称 ”和“客户 数盤”字段 。根据用 在上一个屏 幕中的输入 选定两个子 屏幕之一。_ 选择光标 位置根据用户的 输入,可以 在对话程序 中将光标放 在屏幕上的 特定字段中 。圈下面的窠 节中可以找 到详细信息 :设置屏幕字 段属性 (页 52) 用力能“字 段选择”更 改屏幕字段 属性 (页 54) 使用子屏幕 (頵 516) 使用光标 (页

3、 517) a讼繮屏幕字 殱属性每个屏幕字 段都有用户 在定义屏幕 时在屏幕制 作器中设置 的属性。在 运行时,根 据用户在上 一个屏幕中 请求的功能 ,可能需要 更改这些属 性。在运行 时,每个屏 幕字段的属 性存储在名 为 SCREEN 的内存表格 中。不必在 程序中声明 该表格,系 统内部维护 该表格并且 在每次屏幕 更改时更新 它。内存表格 SCREEN 包括下列字 段:名称长度说 明NAME30屏 幕字段的名 称GROUP13属 于字段组1的 字段GROUP23属 于字段组2的 字段GROUP33属 于字段组3的 字段GROUP43属 于字段组4的 字段ACTIVE1可 见并准备输

4、入的字段REQUIRED1字 段输入是强 制的INPUT1字 段准备输入 OUTPUT1字 段仅用于显 示INTENSIFIED1高 亮显示字段 INVISIBLE1禁 用字段LENGTH1减 少字段输出 长度DISPLAY_3D1以 三维框架显 示字段VALUE_HELP1显 示有值帮助 的字段要激 活字段属性 ,则将它的 值设置为1。 要使它无效 ,则将它设 置为0。将 ACTIVE 属性设置为 0时,系统 禁用字段并 取消准备输 入属性。用 户不能查看 字段也不能 对它输入值 。用户可以在 屏幕制作器 字段列表中 的“1 个字段的属 性”部分中 为每个属性 定义值。如 果需要关于 属性含

5、义的 详细信息, 参见 ABAP/4 开发工作台:工具 (页 Error! Not a valid link.) 。动态修改屏 幕的示例, 从事务 tz50 开始(开发 级别 SDWA) 。事务包含两 个屏幕。在 第一个屏幕 中,用户可 以输入航班 标识符以及 请求航班详 情(按“显 示”按钮) 或按“更改 ”按钮来更 改屏幕 200 的数据。现在根据选 定了“显示 ”按钮还是 “更改”按 钮,动态设 置字段属性 。在两种情 况下都调用 同一屏幕, 但有不同的 字段属性。如果需要同 时为多个字 段更改相同 的属性,则 可以将这些 字段组合在 一起。例如 ,为了在屏 幕 200 中动态更改 字段

6、,我们 将这些在屏 幕制作器中 的字段分配 给组 MOD。用 户可以为每 个字段最多 指定四个修 改组。“组 ”字段的内 容存储在 SCREEN 表格中。可以在 PBO 模块中实现 对该组中字 段属性的更 改:MODULE MODIFY_SCREEN OUTPUT. CHECK MODE = CON_SHOW. LOOP AT SCREEN. CHECK SCREEN-GROUP1 = MOD. SCREEN-INPUT = 0. MODIFY SCREEN. ENDLOOP.ENDMODULE. 内存表格 SCREEN 包含当前屏 幕的每个字 段和它的属 性。LOOP AT SCREEN 语

7、句将该信 息放在该系 统表格的表 头行中。在事务 tz50 的该示例中 ,如果用户 选择“显示 ”,则将 SCREEN-INPUT 设置为0 ,并且所有 属于 MOD 组的字段因 此而成为只 显示字段。由于属性已 更改,MODIFY SCREEN 语句用于将 表头行写回 表格。b用功能“字 段选择”更 改屏幕字段 属性本主题描述 特殊功能“ 字段选择 (事务 SIAW 和一些功能 模块 如何_支动态更 改屏幕字段 属性。b字段选择 - 概述功能“字段 选择”允许 用户在运行 时动态更改 屏幕字段的 属性。但只 有在由于技 术原因需要 经常将不同 字段属性分 配给相同屏 幕时才使用 该选项。在

8、这种情况下 ,所有字段 使用相同的 规则,因此 任何孇段修 改都怯清楚 的。基本规则应 用如下:_ 字段选择 进程中涉及 的所有字段 在字段选择 表格中组合 在一起并用 “字段选择 ”功能廴护 。_ 维护通常 是通过模块 池和屏幕组 进行的_ 在属于屏 幕组“空格 ”(_ )的屏幕上 没有动态字 段选。_ 由于屏幕 字段属性 SCREEN-GROUP1 是为中心字 段选择而保 留的,因此 不能同时将 它用于兖它 目的。_ 如果正在 使用特殊的 袄定义规则 使任何更 等同于程序 更攩,则不 要使用该功 能,而在程 序本身中更 改 。用字段选择 可以在运行 时激活或撤 消下列属性 :_ 输入_ 输

9、出_ 强制_ 激活_ 高亮显示_ 不可见用户也可以 确定有关更 改的条件和 类型。在事 件 PROCESS BEFORE OUTPUT 中可以调用 功能模块来 检查条件和 更改属性( 如果必要的 话)。字段选择区 分有影响的 字段和修改 的字段。当 然修改的字 段必须是屏 幕字段。所 有字段应该 在数据词典 中定义,并 且应该用 TABLES 语句在模块 池中全局声 明相应的表 格。在运行 时,功能模 块分析影响 字段的内容 ,然后相应 设置修改字 段的属性。在屏幕组中 组合屏幕用户可以将 逻辑上相关 的屏幕组合 在屏幕组中 ,而不是为 程序的每个 屏幕单独维 护字段选择 。要将屏幕 分配给屏

10、幕 组,请在屏 幕制作器属 性屏幕上的 字段“屏幕 组”中输入 组。c调用字段选 择要调用字段 选择,选定 “工具 - ABAP/4 工作台 - 开发 - 其它功能 - 字段选择” 。维护是通 过程序和屏 幕组进行的 。首先必须声 名有关字段 的表格名。 选择“将表 格分配给屏 幕组”并输 入表格,例 如:保存条目并 选择“有影 响的字段” 将所需的影 响字段输入 到列表中, 并有选择地 指定 NOT 条件、默认 值以及字段 “客户”, 例如:NOT 条件理解为 预选择。如 果字段之一 满足 NOT 条件,则它 与下列屏幕 的修改是不 相关的。使 用 NOT 条件可以提 高性能。有影响的字 段

11、: SPFLI-CARRIDNOT 条件: NE LH仅当 SPFLI-CARRID 的内容在运 行时与 LH 相同时它与 字段选择才 是相关的。在运行时, 如果系统在 维护值的列 表中找不到 影响字段的 当前值,则 使用默认值 。用户必须 自己定义默 认值。该选 项允许用户 维护影响字 段的所有格 式,这些格 式有相同的 影响,带有 单个条目。用字段“客 户”,用户 可以决定是 否允许客户 使用字段选 择的相应字 段。如果标 记为“客户 ”,那么客 户也可以使 用该字段来 影响其它字 段。然后选择“ 修改的字段 ”将所有可 修改的字段 输入到列表 中,例如:如果想允许 客户修改字 段,则再次

12、 标记字段“ 客户”。每个有影响 的和可修改 的字段都有 每个程序唯 一的内部号 。当按 F16 生成时,内 部号将自动 放入适当屏 幕的 SCREEN-GROUP1 中并且不能 在屏幕制作 器中更改它 。这就允许 系统在字段 名和 SCREEN-GROUP1 之间建立一 对一的关系 。最后创建两 个列表的有 影响的和可 修改字段之 间的链接: 指定有影响 的字段中影 响可修改字 段的内容和 方式。要链接字段 ,请用“选 择”从列表 中选定字段 或双击它。 如果选定一 个有影响的 字段,则出 现可修改字 段的列表, 反之亦然。 从该列表中 选定所需的 链接。出现 可以在其中 输入相关条 件的列

13、表, 例如:上面的条目 导致禁止在 这些屏幕上 显示字段 SPFLI-AIRPFROM, 在这些屏幕 的 PBO 中调用相应 的字段选择 功能模块, 并且如果调 用 SPFLI-CARRID 则包含LH (参见 字段选择的 功能模块 (页 510) )。“激活”属 性的功能在 显示属性 激活 (页 516) 中说明。c属性的组合 规则如果多个有 影响字段影 响同一个修 改的字段, 则必须有组 合规则来确 定如何链接 这些影响。 如果由不同 的影响激活 或解除激活 ,则使用下 面的表格了 解如何设置 单个字段属 性。屏幕处 理器控制多 个属性的组 合。输入字段1_X字 段2_X_X输出字段1_X

14、字 段2_X_X激活字段1_X字 段2_X_X强制字段1_X字 段2_XXXX高亮显示字 段1_X字 段2_XXXX不可见字段 1_X字 段2_XXXX字符说明: _ = 关闭 (off), X = 打开 (on) 如果字段 1 使某个屏幕 字段不可见 (X),则 字段2不能 更改。d屏幕制作器 属性用屏幕制作 器,系统不 仅考虑在字 段选择期间 制作的条目 ,而且考虑 在屏幕制作 器中制作的 任何条目。 意思是根据 在 属性的组合 规则 (页 c) 中所述的相 同链接规则 将上面组合 的结果链接 到屏幕字段 属性。要利用全部 的动态修改 范围,应该 在屏幕制作 器中使用下 列属性:Input

15、 = X Output = X Mandatory = _ Invisible = _ Highlighted = _. 相反地,用 户不能以下 列方式更改 在屏幕上定 义的值:Input = _ Output = _ Mandatory = X Invisible= X Highlighted = X 假设输入了 影响的下列 组合,但因 为组合规则 规定其它的 有影响字段 (或者屏幕 )不能更改 指定的显示 属性,所以 它实际上不 是有效的组 合。Input = X Output = X Active = X Mandatory = _ Highlighted = _ Invisible =

16、 _ 再次进入字 段选择时不 显示这样的 无效影响, 除非已经为 影响字段定 义了默认值 ;此处,显 示和维护这 样的影响是 有用的。e生成字段选 择如果确实更 改了已修改 字段的列表 ,则必须生 成字段选择 。这将在相 关模块池的 屏幕中为修 改的 SCREEN-GROUP1 字段产生连 续号。为此,在事 务 SFAW 中选择“生 成”。e字段选择的 功能模块要激活屏幕 的字段选择 ,可以在 PROCESS BEFORE OUTPUT 事件中调用 FIELD_SELECTION_MODIFY_ALL 或 FIELD_SELECTION_MODIFY_SINGLE。 两个功能模 块都决定有 影

17、响字段的 内容,如果 需要的话, 参见组合规 则并执行屏 幕修改。FIELD_SELECTION_MODIFY_ALL 自己执行 LOOP AT SCREEN 语句。但是 如果用 FIELD_SELECTION_MODIFY_SINGLE, 用户必须自 己编码并且 在该循环中 调用功能模 块。因此用 户可以在 LOOP 中执行自己 的附加屏幕 修改。在事件 PBO 中调用功能 模块示例:CALL FUNCTION FIELD_SELECTION_MODIFY_ALL EXPORTING MODULEPOOL = MODULEPOOL SCREENGROUP = SCRGRP. 或LOOP AT

18、 SCREEN. IF SCREEN_GROUP1 NE SPACE AND SCREEN-GROUP1 NE 000. CALL FUNCTION FIELD_SELECTION_MODIFY_SINGLE EXPORTING MODULEPOOL = MODULEPOOL SCREENGROUP = SCRGRP. * Separate special rules MODIFY SCREEN. ENDIF. ENDLOOP. 或与 a) 一样,但为 特殊规则包 括自己的 LOOP AT SCREEN。在每个单独 的情况下, 用户必须决 定哪个选项 b) 或 c) 将获得最佳 性能。由于“模

19、块 池”和“屏 幕组”参数 决定字段选 择,因此必 须为它们维 护影响。“模块池” 参数定义在 主存中用于 搜索影响字 段当前值的 已加载模块 池。调用功能模 块时,必须 直接包括系 统字段 SY-REPID 和 SY-DYNGR。 将它们的内 容直接传输 到其它字段 的适当代码 位置,例如 :MODULEPOOL = SY-REPID. SCRGRP = SY-DYNGR有些时候, “模块池” 的值与当前 SY-REPID 值可能不同 。如果“屏幕 组”参数为 空,则系统 使用 SY-DYNGR 的当前内容 。这对于“ 模块池”参 数是不可能 的,因为值 “_”(空 白)禁止修 改任何字段

20、。注意在开发 级别 SDWA 中与 TZ50 类似的事务 (参见 设置屏幕字 段属性 (页 a) )。假设第二个 屏幕的动态 程序包含 PBO 事件中的下 列模块调用 :PROCESS BEFORE OUTPUT. . MODULE MODIFY_SCREEN.假设模块 MODIFY_SCREEN 包含下列函 数调用:MODULE MODIFY_SCREEN OUTPUT. CALL FUNCTION FIELD_SELECTION_MODIFY_ALL EXPORTING SCREENGROUP = SCREEN MODULEPOOL = SAPMTXXX EXCEPTIONS OTHERS

21、 = 1.假设对于屏 幕组 SCREEN 和模块池 SAPMTXXX, 按 调用字段选 择 (页 c) 中图表所示 维护事务 SFAW 中的影响。调用事务后 ,假设已经 制作了这些 条目:选择“更改 ”后,出现 下列屏幕:但是,如果 输入AA 航空公司代 替LH ,则显示下 列屏幕:当输入LH 时,字段 SPFLI-AIRPFROM 是不可见的 。当输入 AA时, 它显示为“ 机场部门” 。f链接字段每个有影响 字段可以影 响那些忽略 其它字段而 进行修改的 字段。在某 些情况下需 要有影响字 段的链接, 但只有通过 帮助字段的 定义才有可 能实现链接 ,必须在调 用功能模块 之前在应用 程序

22、中设置 帮助字段( 参见 属性的组合 规则 (页 c) )。该限制有助 于字段选择 的透明度。链接示例假设下列字 段:有影响字段 : F4711, F4712 可以修改的 字段: M4711 下列情况只 能通过迂回 的方式实现 :OR 条件和“输 入准备”如果 F4711 = A OR F4712 = B,那 么 M4711 准备输入。解决在 SFAW 中将 H4711 定义为有影 响字段,在 SFAW 中定义下列 条件: 如 果 H4711 = AB 那么 M4711 可以输入 (也就是说 ,输入 = X) 在应用程序 中,必须在 调用功能模 块前进行下 列编程:IF F4711 = A O

23、R F4712 = B. H4711 = AB. ENDIF. AND 条件和 “强制” 如果 F4711 = A AND F4712 = B,那 么 必须 M4711。解决:在字段选择 中维护:如 果 H4711 = AB, 那么 M4711 是所需的条 目字段(H4711 = AB 仅在上面的 AND 条件下才精 确)。在应用程序 中,编程:IF F4711 = A AND F4712 = B H4711 = AB ELSE. H4711 = . ENDIF. 另一方面, 可以直接表 现下列情况 :AND 条件和“输 入准备” 如果 F4711 = A AND F4712 = B, 那么

24、M4711 准备输入。 因此: 如果 F4711 A OR F4712 B 解决:屏幕:M4711 准备输入字段选择:有影响字段 F4711 值 A 输 入 = X 值 A1 输 入= 值 AX 输 入 = 有影响字段 F4712 值 B Input = X 值 B1 输 入 = 值 BX 输 入 = OR 条件和“强 制” 如果 F4711 = A OR F4712 = B,那 么 M4711 是所需的条 目字段。解决:屏幕:关闭 了强制有影响字段 F4711 值 A, 强制 = X 有影响字段 F4712 值 B, 强制 = X 为有影响字 段而定义 NOT 条件的可能 性提供了字 段选择

25、定义 的更多变体 。h显示属性 激活目前该显示 属性只有一 种结果。如 果在 ABAP/4 程序中 SCREEN-ACTIVE = 0,则 用 MODIFY SCREEN 语句在运行 时发生下列 结果:SCREEN-INPUT = 0 SCREEN-OUTPUT = 0 SCREEN-INVISIBLE = 1 如果 SCREEN-ACTIVE = 1,则 不发生任何 事情。另一方面, 如果 SCREEN-INPUT = 0、SCREEN-OUTPUT = 0 并且 SCREEN-INVISIBLE = 1,则 内部结果将 是SCREEN-ACTIVE = 0(无 后继步骤) 。甚至当 SCR

26、EEN-ACTIVE = 0 时,在屏幕 流逻辑中用 相关 FIELD 语句指定的 模块总在运 行。但是不 运行有撤消 激活字段的 模块。如果 不想这么做 ,可以用句 号分隔 FIELD 和 MODULE 语句。如果非活动 字段有附加 的规范,如 ON INPUT、 ON REQUEST .,则 屏幕模块不 运行,通常 处理没有附 加规范的模 块。h字段选择授 权“字段选择 ”的授权对 象是“中心 字段选择” (S-FIELDSEL)。 该对象包含 一个活动和 一个程序授 权组。后者 是从程序授 权中获得的 。允许下列活 动:02 = 更改03 = 显示14 = 在屏幕上生 成字段选择 信息1

27、5 = 将相关表格 分配给字段 选择i使用子屏幕子屏幕是显 示在另一个 (“主”) 屏幕区域中 的独立屏幕 。用户可能 想使用子屏 幕来改变主 屏幕中的某 些字段。例 如,根据用 户在上一个 屏幕中的输 入,可以在 出现补充字 段的主屏幕 中定义一个 区域。按下列方式 创建子屏幕 :1. 在“ 主”屏幕中 调整子屏幕 的框架直到 它的大小符 合需要。在 “字段名” 字段中命名 子屏幕。2. 用屏 幕类型“子 屏幕”创建 屏幕。3. 在子 屏幕中排列 字段使它们 显示在主屏 幕中所要求 的地方。 如果定义 的子屏幕比 主屏幕中的 可用区域大 ,则只有与 可用区域相 当大小的部 分子屏幕可 见(从

28、左上 角计)。要使用子屏 幕,必须在 主屏幕的流 逻辑(PBO 和 PAI)中 调用它。CALL SUBSCREEN 语句告诉系 统将子屏幕 的 PBO 和 PAI 事件作为主 屏幕的 PBO 和 PAI 事件的一部 分执行。就 象为主屏幕 编程一样为 子屏幕编码 ABAP/4 模块。主程序的流 逻辑如下所 示:PROCESS BEFORE OUPTPUT. . CALL SUBSCREEN INCLUDING . .PROCESS AFTER INPUT. . CALL SUBSCREEN . .“区”是在 主屏幕中定 义的子屏幕 区域的名称 。该名称最 多可有十个 字符。“程 序”是子屏 幕所属程序 的名称,“ 屏幕”是子 屏幕的编号 。在单个屏幕 中可能有多 个子屏幕。 也可以在运 行时动态指 定子屏幕。 子屏幕有几 个限制。它 们不能:_ 设置它们 自己的 GUI 状态_ 有已命名 的“确定代 码”_ 调用其它 屏幕_ 包含 AT EXIT-COMMAND 模块_ 支持光标 位置。i使用光标在 PBO 事件中,可 以告诉系统 将光标放在 某些屏幕字 段上。光标 的放置是一 种使事务更 友好的方式 。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1