SAP的ABAP4语言中文培训教材第三部分第十章编写字段 - 和值 - 帮助程序.doc_第1页
SAP的ABAP4语言中文培训教材第三部分第十章编写字段 - 和值 - 帮助程序.doc_第2页
SAP的ABAP4语言中文培训教材第三部分第十章编写字段 - 和值 - 帮助程序.doc_第3页
SAP的ABAP4语言中文培训教材第三部分第十章编写字段 - 和值 - 帮助程序.doc_第4页
SAP的ABAP4语言中文培训教材第三部分第十章编写字段 - 和值 - 帮助程序.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十章第十章编写字段编写字段 和值和值 帮助程序帮助程序 概览概览 F1 或为用户提供 当前光标所 在字段的帮 助文本 F4 或组合框 如果可用的 话 提供可 在该字段 中 输入的值的 列表 用户 可将列表中 的光标放到 所选值上并 按下 F2 或双击鼠标 将该值复 制到 字段中 内容内容 编写字段编写字段 和值和值 帮助程序帮助程序 定制定制 F4 值值 请请 求求 定制定制 F1 帮助帮助 字段字段 帮助的功能帮助的功能 模块模块 具有匹配代具有匹配代 码的字段码的字段 帮帮 助助 用这种方法 输出的信息 保存在 ABAP 4 库中 在对 话程序中 屏幕处理器 自动显示各 字段的数据 元素的帮助 文本 可能 值的 F4 列 表通常会引 用某个域的 有效值的固 定设置或相 关值表中的 数据 标准 列表对于用 户自己开发 的应用程序 通常也是够 用的 但是 根据具体 的对话程序 不同 也可 以建立更详 细或稍有不 同的文档和 可能值列表 可以用 PROCESS ON HELP REQUEST POH 和 PROCESS ON VALUE REQUEST POV 事件来编写 帮助文本和 可能值列表 程序 这些事件可 以在屏幕处 理逻辑中与 PROCESS BEFORE OUTPUT 和 PROCESS AFTER INPUT 事件一 起执 行 PROCESS ON HELP REQUEST 语法 PROCESS ON HELP REQUEST FIELD MODULE FIELD MODULE 通过 FIELD 语句将模块 调用分配给 屏幕字段 如果按下 F1 或 就会执行光 标 所在字段 的 POH 模块 PROCESS ON VALUE REQUEST 语法 PROCESS ON VALUE REQUEST FIELD MODULE FIELD MODULE 用户按下 F4 或激活屏幕 字段中的组 合框之后 会发生 POV 事件 如果 该字段 包含 FIELD 语句 则调 用指定的 POV 模块而不是 帮助处理器 在调用屏幕 时 将执行 PROCESS BEFORE OUTPUT 事件 然后 就会出现自 动传输给屏 幕的字段 如果在屏幕 中选定 F1 帮助或 F4 值列表 则 系统会再次 发送 动态程序 但不执行 PBO 事件 也 不 执行字段转 移以将所有 字段转移给 动态程序 在 POV 后 只为光 标所在字段 和通过 F2 键或 双击而 选定的字段 的内容进行 传输 如果 POV 处理需要附 加字段传输 则可以使 用 DYNP VALUES READ 和 DYNP VALUES UPDATE 功能模块 其它功能模 块可简化特 定上下文的 帮助文本和 输入值的编 程 匹配代码对 于可能值帮 助也会有所 帮助 本章 最后一节包 含一个示例 以下主题提 供详细信息 定制 F4 值 请 求 页 定制 F1 帮助 页 字段 帮助的功能 模块 页 具有匹配代 码的字段 帮 助 页 定制定制 F4 值值 请请 求求 在为字段建 立自己的 F4 值帮助时 可以使用固 定值或相关 域的检查表 如果标准 的 F4 帮助不 充分 或不适合特 定的上下文 则可以使 用 PROCESS ON VALUE REQUEST 事件编写自 己的 F4 值 帮助程序 示例事务 TZB0 包含编程的 出发机场 和 目的 机场 字段 的可能值帮 助 通过 F2 或双击鼠标 可在列表中 选定出发机 场和目的机 场 这两个字段 都引用 S AIRPID 域 建立标 准 F4 帮助的最简 单方法就是 在 ABAP 4 词典中为该 域 分配一个 检查表 但 是 如果结 果值列表不 符合要求 则必须自己 编写值帮助 程序 下面 以事务 TZB0 为例 讲述 一种编程方 法 首先 事务 TZB0 的屏幕 200 的处理逻辑 必须指定要 为其提供值 帮助的字段 在其中某 个字段上 使 用 F4 键会导致执 行该字段的 POV 模块 PROCESS ON VALUE REQUEST FIELD SPFLI AIRPFROM MODULE VAL REQ AIRPORT FIELD SPFLI AIRPTO MODULE VAL REQ AIRPORT PAI 模块 VAL REQ AIRPORT 包含对同名 子程序的调 用 MODULE VAL REQ AIRPORT INPUT PERFORM VAL REQ AIRPORT ENDMODULE VAL REQ AIRPORT 子程序由以 下三部分组 成 使用 DYNP VALUES READ 功能模块从 屏幕上读取 字段内容 为编程 的值帮助调 用 VALUE REQUEST AIRPORT 功能模块 使用 DYNP VALUES UPDATE 功能模块将 字段内容写 回到屏幕上 完全处于演 示目的才将 DYNP VALUES READ 和 DYNP VALUES UPDATE 功能 模块集 成到该示例 事务中 如 果在 POV 处理中需要 多个字段传 输 则可以 使用 它们 如果在调用 VALUE REQUEST AIRPORT 功能模块后 打算使用 MOVE 命 令将选定 字段值复制 到 SPFLI AIRPFROM 和 SPFLI AIRPTO 字段中 则 可以将这 些 功能模块从 该特殊示例 事务中省略 掉 在 VAL REQ AIRPORT 子程序中 DYNP VALUES READ 功能模块获 取请求值帮 助的字段内 容 然后将 该值传送给 帮助处理器 在输出参数 DYNAME 和 DYNUMB 中指定程序 名和屏幕号 DYNPFIELDS 表参数需要 一个具有 ABAP 4 词典结构 DYNPREAD 的表 本例 中该表命名 为 SCR FIELDS 在 DYNP VALUES READ 功能模块的 该表中指定 要读取的屏 幕字段 该 表应包含值 帮助所需值 的字段 用 GET CURSOR 命令找到字 段名然后将 其复制到 SCR FIELDS 表中 FORM VAL REQ AIRPORT DATA CURSORFIELD 30 SCR FIELDS LIKE DYNPREAD OCCURS 1 WITH HEADER LINE AIRPORT LIKE SPFLI AIRPFROM GET CURSOR FIELD CURSORFIELD SCR FIELDS FIELDNAME CURSORFIELD APPEND SCR FIELDS CALL FUNCTION DYNP VALUES READ EXPORTING DYNAME SAPMTZB0 DYNUMB SY DYNNR TABLES DYNPFIELDS SCR FIELDS EXCEPTIONS UNDEFIND ERROR 08 OTHERS 04 IF SY SUBRC NE 0 MESSAGE I007 EXIT ENDIF VAL REQ AIRPORT 子程序从 SCR FIELDS 表中顺序读 取机场名并 用 AIRPORT 更改参数调 用 VALUE REQUEST AIRPORT 功能模块 该功能模块 负责输出带 有机场列表 的弹出窗口 用户选 定 机场之后 该值通过 AIRPORT 变量传回调 用程序 READ TABLE SCR FIELDS INDEX 1 AIRPORT SCR FIELDS FIELDVALUE CALL FUNCTION VALUE REQUEST AIRPORT CHANGING AIRPORT AIRPORT EXCEPTIONS CANCELLED 1 NO VALUES 2 OTHERS 3 IF SY SUBRC 2 MESSAGE I008 ENDIF CHECK SY SUBRC 0 使用 DYNP VALUES UPDATE 功能模块将 AIRPORT 参数的内容 读入 SCR FIELDS 表并将当前 字 段内容放 到屏幕上 READ TABLE SCR FIELDS INDEX 1 SCR FIELDS FIELDVALUE AIRPORT MODIFY SCR FIELDS INDEX 1 CALL FUNCTION DYNP VALUES UPDATE EXPORTING DYNAME SAPMTZB0 DYNUMB SY DYNNR TABLES DYNPFIELDS SCR FIELDS EXCEPTIONS OTHERS 04 ENDFORM VAL REQ AIRPORT VALUE REQUEST AIRPORT 功能模块负 责该程序中 值列表的输 出 首先检 查是否输入 了一般机 场 名 如果是 则对特殊 字符进行转 换 以便后 面的 SELECT 语句能使用 该一般输入 Local interface CHANGING VALUE AIRPORT LIKE SPFLI AIRPFROM EXCEPTIONS CANCELLED NO VALUES IF AIRPORT CA SELECTION AIRPORT TRANSLATE SELECTION USING ELSE SELECTION ENDIF RETURN BEGIN CALL SCREEN 100 STARTING AT 10 5 ENDING AT 41 15 CASE RETURN WHEN SELE AIRPORT SELECTION WHEN BREAK RAISE CANCELLED WHEN NOVAL RAISE NO VALUES ENDCASE ENDFUNCTION 屏幕 100 用 CALL SCREEN 调用 用作 值帮助的弹 出屏幕 在 屏幕制作器 中将该屏幕 创建为空 屏 蔽 用 SELECT 获取数据 然后将其写 入屏幕 100 的 PBO 模块 LIST PROCESSING 的弹出屏幕 中 MODULE LIST PROCESSING OUTPUT LEAVE TO LIST PROCESSING AND RETURN TO SCREEN 0 NEW PAGE LINE SIZE 31 SET PF STATUS POP PICK SET TITLEBAR TIT SELECT FROM SAIRPORT WHERE ID LIKE SELECTION WRITE SY VLINE NO GAP SAIRPORT ID COLOR 4 INTENSIFIED OFF NO GAP SY VLINE NO GAP SAIRPORT NAME COLOR 2 INTENSIFIED OFF NO GAP SY VLINE NO GAP HIDE SAIRPORT ENDSELECT IF SY SUBRC NE 0 RETURN NOVAL ENDIF ULINE LEAVE SCREEN ENDMODULE LIST PROCESSING OUTPUT 在编写 PROCESS ON VALUE REQUEST 程序时 要 记住必须能 选定值并能 将其复制到 所属的屏幕 中 在执行 HIDE SAIRPORT 时 用 SELECT 获取的所有 值都被记录 下来 然后 用光标选 定一行 并按 下菜单制作 器中被赋予 PICK 功能的功能 键 通常为 F2 之后 对 AT LINE SELECTION 进 行处理 即自动用存 储值对该行 进行填充 AT LINE SELECTION CHECK SAIRPORT ID NE SPACE RETURN SELE SELECTION SAIRPORT ID LEAVE LIST PROCESSING AT USER COMMAND CASE SY UCOMM WHEN EXIT RETURN BREAK LEAVE LIST PROCESSING WHEN RTRN RETURN BREAK LEAVE LIST PROCESSING ENDCASE 选定机场之 后 在 LSTZ1E01Include 中调用 AT LINE SELECTION RETURN 变量包含值 SELE 结果 SELECTION SAIRPORT ID 之值被赋给 VALUE REQUEST AIRPORT 功能模块中 的 AIRPORT 变量 AIRPORT 的内容将传 回调用程序 所选机场 的名字出现 在为其调用 值帮助的字 段中 如果按下值 列表中的功 能键 确 定 或 取 消 则 对 AT USER COMMAND 进行处理 在其 中任何 情况下 都 将值 BREAK 赋给 RETURN 变量 然后 停止对列表 进行处理 如果 RETURN 变量包含 BREAK 则在功能 模块中产生 CANCELLED 例外 定制定制 F1 帮助帮助 ABAP 4 开发环境提 供许多上下 文敏感的 F1 帮助的设计 方法 数据元素 文档 通过为 ABAP 4 词典中的数 据元素添加 额外描述性 文本可以增 强 F1 帮助 在屏 幕制作器中 将屏幕字 段串中的光 标放在要引 证的字段上 并选定菜 单功能 转 向 文档数据元 素文档 现在即可扩 展现有字段 帮助 扩展 帮助将在 系 统中的任何 地方显示 屏幕制作 器中的数据 元素附加文 本 如果希望只 在特定事务 中扩展特定 字段的字段 帮助 则为 屏幕字段串 中的字段 选 定 转向 文档 数据元素细 节 将出 现一个弹出 窗口 不仅 包含数据 元 素 也包含 当前屏幕号 用作数据 元素附加文 本的详细标 识符 除 ABAP 4 词典包含的 帮助文本外 还可以使 用编辑器输 入有关字段 使用方法的 信息 包 括 示例和任何 影响该字段 的相互依赖 关系 使用 PROCESS ON HELP REQUEST 事件 如果屏幕的 处理逻辑中 没有 PROCESS ON HELP REQUEST 事件 则将 以 ABAP 4 词典中的字 段文档作为 基础 如果 存在 POH 事件 则只 要为指定的 字 段按下 F1 就会执行 例如 可以 按以下方式 实现特定字 段的数据元 素附加文本 PROCESS ON HELP REQUEST FIELD XY WITH Number 通过使用以 下变量 也 可以将数据 元素附加文 本合并 F1 帮助中 PROCESS ON HELP REQUEST FIELD XY WITH 为 XY 字段显示 变量中包含 的数据元素 附加文本 如果按下 F1 键后才知道 数据元素附 加文本 则 可以在模块 中获取要显 示的附加 文 本 然后将 其写入变量 中 PROCESS ON HELP REQUEST FIELD XY MODULE XYZ WITH 字段字段 帮助的功能帮助的功能 模块模块 如果要自己 编写 F1 和 F4 用户支持程 序 另一种 可能的方法 上述方法 除外 就是 调用 POH 和 POV 事件的相关 SAP 功能模块 该功能模块 提供标准 F4 帮助的全显 示功能 调用示例事 务 shlp 这有助于 理解所述的 模块功能 相应的程序 RSHELP01 包含该事务 的文档 也 可以在功能 库中查找该 功能模块文 档 可以按如下 方法使用这 些功能模块 1 首先 通过 DYNP VALUES READ 获取屏幕的 当前字段值 如果需要 的话 2 在功 能组 SHL3 中选定工作 所需的功能 模块 功能模块功能模块 的使用的使用 HELP DOCU SHO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论