SAP的ABAP4语言中文培训教材第二部分第一章用逻辑数据.doc_第1页
SAP的ABAP4语言中文培训教材第二部分第一章用逻辑数据.doc_第2页
SAP的ABAP4语言中文培训教材第二部分第一章用逻辑数据.doc_第3页
SAP的ABAP4语言中文培训教材第二部分第一章用逻辑数据.doc_第4页
SAP的ABAP4语言中文培训教材第二部分第一章用逻辑数据.doc_第5页
全文预览已结束

下载本文档

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

文档简介

第一章 1用逻辑数据 库访问数据 库表概览内容用 SELECT 访问数据用逻辑数据 库访问数据访问方法比 较逻辑数据库 的优点从报表程序 中控制数据 库访问可采用两种 方法,用报 表程序访问 数据库表的 数据进行分 析。下列主题包 括关于逻辑数 据库的功能 和维护的信 息,即如何 显示、更改 或创建逻辑 数据库(事 务 SLDB 或 SE36) ,参见 逻辑数据库 的特征和维护 (页 Error! Not a valid link.) 。1用 SELECT 访问数据SELECT 语句是 SAP 开放式 SQL (标准 SQL 的一个子集 )的一部分 。关于 SELECT 语句的详细 信息,参见 从数据库表读取数据 (页 Error! Not a valid link.) 。用 SELECT 语句及其不 同子句,可 以读取和分 析 SAP 系统已知的 所有数据库 表的数据。 仅使用 SELECT 语句的报表 程序称为 SQL 报表。在 SQL 报表中,不 一定需要事 件的外部流 控制。如果 不使用事件 关键词(参 见 通过事件控制 ABAP/4 程序流 (页 Error! Not a valid link.) ),通常可 以将 SQL 报表看作连 续处理的程 序。可是,如果 要使用逻辑 数据库访问 数据,则必 须使用事件 。1用逻辑数据 库访问数据逻辑数据库 访问数据库 表中数据的 方法与采用 SELECT 语句访问数 据的方法有 明显差别。逻辑数据库 是特殊的 ABAP/4 程序,将一 定数据库表 的内容组合 在一起。可 以将逻辑数 据库链接为 ABAP/4 报表程序的 属性。这样 ,逻辑数据 库就可向报 表程序提供 一组层次结 构表格行。 该层次结构 表格行可从 不同数据库 表中提取。“逻辑数据 库”不仅指 程序本身, 还指它供应 的数据集。在 SAP 系统中,许 多表格都由 外来关键字 相关链接( 详细信息, 参见文档ABAP/4 词典 (页 Error! Not a valid link.) ) 。其中部分 相关性形成 树状层次结 构。使用逻 辑数据库有 助于读取形 成此类结构 组件的数据 表格。上图显示 SAP 系统如何代 表企业结构 。逻辑数据 库可以按照 通常由层次 结构定义的 顺序逐行将 表格行读入 报表程序中 。ABAP/4 开发工作台 包括创建和 显示逻辑数 据库的便利 工具(既可 调用事务 SLDB ,也可选择 “工具 - ABAP/4 开发工作台 - 开发 - 编程环境 - 逻辑数据库 ”)。要查 看逻辑数据 库 的层次结构 ,请在 ABAP/4 编辑器的命 令区中键入 SHOW DATABASE 。关于维护 逻辑数据库 的详细信息 ,参见 逻辑数据库 的特征和维 护 (页 Error! Not a valid link.) 。将逻辑数据 库链接到报 表程序以访 问数据时, 顺序程序流 已不再满足 要求。相反 ,必须根据 事件编写一 个顺序(参 见 ABAP/4中 流控制的概 念 (页 Error! Not a valid link.) 中的图表) 。逻辑数据 库提供报表 程序的外部 流控制事件 。与逻辑数 据库连接的 最重要事件 是 GET (参见 事件及其事 件关键字 (页 Error! Not a valid link.) )。也可在已与 逻辑数据库 链接的报表 程序中使用 SELECT 语句。2访问方法比 较下例对使用 SELECT 语句的报表 程序和使用 逻辑数据库 的报表进行 比较。本节 中的所有示 例都使用逻 辑数据库 F1S。必 须在程序属 性中指定该 名称(参见 指令程序属 性 (页 Error! Not a valid link.) )。逻辑数 据库 F1S 的结构如下 (编辑器命 令 SHOW DATABASE F1S):下表对从层 次结构数据 库 SPFLI、 SFLIGHT 和 SBOOK 中读取数据 的两个报表 程序进行比 较。用 SELECT 语句的报表用逻辑数据 库的报表REPORT .REPORT .TABLES: SPFLI, SFLIGHT, SBOOK.TABLES SPFLI, SFLIGHT,SBOOK.SELECT * FROM SPFLI WHERE .GET SPFLI. SELECT * FROM SFLIGHT WHERE .GET SFLIGHT. SELECT * FROM SBOOK WHERE .GET SBOOK. ENDSELECT. ENDSELECT.ENDSELECT.左 栏的报表程 序用嵌套的 SELECT 循环读取数 据;右栏的 报表程序则 使用逻辑数 据库 F1S。请 注意,这两 种情况都必 须在程序中 用 TABLES 语句对数据 库表加以说 明。与左栏的报 表程序一样 ,右栏的报 表程序使用 借助 SELECT 语句从数据 库表读取数 据的逻辑数 据库程序。 逻辑数据库 程序的主要 结构如下:逻辑数据库 程序REPORT SAPDB.TABLES: SPFLI, SFLIGHT, SBOOK. SELECT * FROM SPFLI WHERE . SELECT * FROM SFLIGHT WHERE . SELECT * FROM SBOOK WHERE . . ENDSELECT. ENDSELECT.ENDSELECT.总 而言之,逻 辑数据库程 序用 SELECT 语句从数据 库表读取数 据。这意味 着包含 SELECT 语句的代码 从报表程序 转出到逻辑 数据库程序关于逻辑数 据库程序精 确结构的信 息,参见逻辑数据库的数据库程序 (页 Error! Not a valid link.) 。3逻辑数据库 的优点使用逻辑数 据库可以免 于编写从数 据库表中检 索数据的程 序。在报表 程序中,不 必定义如何 检索信息, 只需说明任 何在屏幕上 显示该信息 。在 GET 事件后的处 理块中,只 需指定分析 数据和将结 果写到屏幕 的语句。传递完每个 表格行后, 发生 GET 事件,报表 程序通过激 活相应的处 理块就能对 其进行处理 。如果在程 序属性中没 有指定逻辑 数据库,则 永远不会发 生 GET 事件。使用逻辑数 据库时,不 必编写供用 户输入信息 的选择屏幕 程序,因为 这是自动创 建的(参见 选择屏幕和逻辑数据库 (页 Error! Not a valid link.) )。但是, 如果仅使用 SELECT 语句,则必 须自己编写 选择屏幕程 序(参见 使用选择屏幕 (页 Error! Not a valid link.) )。一个报表只 能使用一个 逻辑数据库 ,但是每个 逻辑数据库 可以由多个 报表使用。 这一点大大 优于使用 SELECT 语句将数据 库访问集成 到每个报表 程序中。这 意味着对于 相同访问路 径,只用编 写一次代码 。这同样适 用于编写授 权检查代码 。使用逻辑数 据库时,大 多数报表可 受益于下列 特征: 容易使用 的标准用户 界面 用于检查 用户输入完 整性、正确 性和真实性 的检查功能 重要的数 据选择 数据库访 问的中央授 权检查 保持由应 用程序逻辑 决定的层次 数据视图时 ,具有良好 的读取访问 性能(例如 ,借助视图 )即便使用中 央逻辑数据 库时,也有 很大的灵活 性,因为能 够: 创建和设 计自己的选 择屏幕版本 在 ABAP/4 报表程序中 使用特定的 事件关键字 以便启用扩 展的用户对 话(例如, 进行详细授 权或真实性 检查)。4从报表程序 中控制数据 库访问报表程序能 影响由逻辑 数据库程序 读取的数据 量。可以随 时对当前正 处理的数据 进行动态检 查,以确保 满足任何选 择标准。如 果不是这种 情况,逻辑 数据库跳过 层次结构的 下级部分。 如果不选择 选定特定表 进行处理, 系统自动忽 略树的相关 部分如果系统从 逻辑数据库 表读取值, 则会发生 GET 事件。在报 表程序中, 可以给 GET 分配一个处 理块。例如 ,如果系统 从表 SPFLI 中读取值, 则执行分配 给GET SPFLI的 处理块。不 必为表格用 于定址字段 的每个报表 定义处理块 。不论是否 定义处理块 ,系统都读 取表格。但 是,如果数 据库表是专 为逻辑数据 库中的字段 选择设计的 ,则系统行 为会有所不 同(参见 GET (页 Error! Not a valid link.) )。处理块既包 含已读表格 字段,也包 含当前访问 路径上所有 超级表格字 段。例如, 在事件 GET SBOOK 中,可以定 址表格 SPFLI、 SFLIGHT 和 SBOOK 的字段。这 是因为逻辑 数据库程序 用嵌套的 SELECT 循环读取表 格(参见 访问方法比 较 (页 ) )。但是,并非 总是要从所 有表格来访 问这些字段 ,这样,每 次读取属于 逻辑数据库 的所有表格 都将浪费宝 贵的 CPU 时间。因此 ,读取程度 取决于位于 层次结构最 低等级处与 表格相对应 的 GET 语句。假定要生成 航班连接列 表。此时系 统只需从表 格 SPFLI 读取字段。TAB

温馨提示

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

最新文档

评论

0/150

提交评论