SAP的ABAP4语言中文培训教材第一部分第七章 控制 ABAP4 程序流7640.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《SAP的ABAP4语言中文培训教材第一部分第七章 控制 ABAP4 程序流7640.docx》由会员分享,可在线阅读,更多相关《SAP的ABAP4语言中文培训教材第一部分第七章 控制 ABAP4 程序流7640.docx(91页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、SAP AG第七章: 7: 1 1控制 ABAP/4 程序流概览内容ABAP/4中中 流控制的概概 念编程逻辑表 达达式比较所有的 字字段类型比较字符串 和和数字串二进制位结 构构的比较检查字段是 否否属于某一 范围检查初始值检查选择条 件件组合几个逻 辑辑表达式编程分支和 循循环使用 IF 的的条件分支使用 CASEE 的条件分分支使用 DO 的的无条件循 环使用 WHILLE 的条件件循环终止循环要根据一定 条条件执行程 序组件,或或 要将重复语语 句序列组合合 在循环中, 可以使用 AABAP/44 提供的用用于 控制程序流流 的标准关键键 字。ABAP/4 也包含重要要 的附加特征征
2、。ABAP/4 程序流可以以 内部控制和和 外部控制。 ABAP/4 程序流流的内 部控制和外 部控制之间 的差别在ABBAP/4中中 流控制的概概 念 (页 8) 中 解释。本节主要讨 论论内部流控 制。为此, 可使用其他他 编程语言( 例如,C、 FORTRRAN、 PASCAAL 等等)中中熟 悉的标准控控 制关键字。下列主题描 述述2ABAP/44中 流控制的概概 念与其他高级 编编程语言一 样(如,C、 FORTRRAN 和 PASCCAL 等等等),ABAPP/4 提供供也用于 控制程序流流 的标准关键键 字。这些关关 键字用于_ 分支 (IF、CASE)_ 循环 (DO、WHIL
3、EE)然而,ABAPP/4 与其其他编程 语言不同之之 处在于其具具 有程序流的的 内部控制和 外部控制。_ 内部控制制 由上述标准准 关键字引导导 。在程序代代 码中对其进进 行定义。_ 外部控制制 由事件引导导 。事件由 AABAP/44 程序(系系统 程序或用户户 程序)或者者 交互式用户户 输入(例如如 ,使用鼠标标 在屏幕上单单 击)生成。 系统不必按按 ABAPP/4 程序序中列出 的顺序对进进 行语句处理理 。这使得 AABAP/44 成为事件件驱 动编程语言言 ,类似于 MMicrossoft 的的Visuaal Bassic。时间事件和 AABAP/44 程序的连连接 由事件
4、关键键 字提供。ABBAP/4 程序中的每每 个语句都属属 于特别的事事 件关键字。 即使在程序序 中没有指定定 任何事件关关 键字,所有有 语句都自动动 归属于标准准 事件关键字字 (STARTT-OF-SSELECTTION) ,与程序中中 事件语句的的 次序完全不不 相干。所有属于某 一一特定事件 关键字的语语 句形成一个个 处理块。处处 理块是一个个 在事件发生生 时执行的模模 块。处理块块 内的程序流流 依赖于内部 控制。系统 按顺序处理理 语句,或按按 照前面提到到 的标准关键键 字定义的顺顺 序处理。ABAP/4 程序常规结结 构如下:假设当用户 选选择一行后 ,生成列表表 且提
5、供一些些 细分设备的的 报表程序必必 须作出反应应 (详细信息息 ,参见 交互列表)。需需要为 该事件处理理 的代码必须须 插入事件关关 键字 AT LINE-SELECCTION 之后。AT LINEE-SELEECTIONN. MOVEE X TO FLLAG. .无论何时用 户户通过单击 鼠标或按 F2 键在列表中中 选择一个项项 目时,AT LINE-SELECCTION 和下一个事事 件关键字之之 间的所有语语 句将被处理理关于外部控 制制的详细信 息,如事件件 及其如何与与 ABAPP/4 程序序相互作 用的信息, 参见 C通过事件控控制 ABAAP/4 程程序流。该节说明如 何何
6、使用外部 控制控制处 理块内的程程 序流。要控制 ABAAP/4 程程序中的内 部流,请遵遵 循结构化编编 程原则并将将 程序模块划划 分为单个逻逻 辑相关语句句 块(这些组组 成控制结构构 )。其中的的 每个语句块块 都执行主任任 务的一部分分 。要使程序易 于于阅读,应 该缩排控制制 结构中的语语 句块。出于于 布局需要, 可以使用 AABAP/44 编辑器功功能 “编辑 - 插入语句.” 和“程序 - 整齐打印程程 序”(详细 信息,参见见 ABAP/4 程序布布局 (页 26)。可以用 IF、CASE、 DO 和 WHILLE 之类的的关键 字控制处理理 块中不同语语 句之间的程程 序
7、流。这些些 语句允许编编 制条件和无无 条件的分支支 和循环。条条 件使用逻辑辑 表达式,可可 以是真,也也 可以为假。6编程逻辑表表 达式使用条件控 制制程序中的 内部流。要要 用公式指定定 条件,请使使 用比较数据据 字段的逻辑辑 表达式,如如 下所示:语法 . .该表达式比 较较两个字段 。可能为真真 ,也可能为 假。在带关关 键字 IF、 CHECCK 和 WHILLE 的条件件语句 中使用逻辑辑 表达式。根据操作数 和 的数据类类型 ,可以使用用 不同的逻辑辑 运算符。允允 许进行:除上述比较 之之外,还可 以执行测试试 以检查数据据 字段是否完完 全满足一定定 条件。可以以 使用这
8、些测测 试:另外,可以 将将几个逻辑 表达式组合合 为一个简单单 逻辑表达式式 。7比较所有的的 字段类型要比较所有 的的字段类型 ,可以在逻逻 辑表达式中中 使用下列运运 算符:含 义EQ等于 =等于NE不 等于不 等于不 等于LT小 于小于LE小 于等于大于GE大 于等于=大 于等于操作数可以 是是数据库字 段、内部字字 段、文字或或 常数。除基本字段 外外,还可以 将结构数据据 类型和上表表 中的运算符符 结合起来作作 为操作数。 字段串逐个个 组件进行比比 较,嵌套的的 结构分为基基 本的字段。 关于比较内内 表的详细信信 息,参见 比较内表 (页 Errorr! Nott a vaa
9、lid llink.) 。如果有意义 ,可可以对不 同数据类型型 的字段进行行 比较。如果果 字段可转换换 ,就可以进进 行比较。在在 比较之前, 系统将按照照 下列层次规规 则执行自动动 类型转换( 参见 键入转换 (页 636) ):1.如果 操操作数之一 是浮点数( 类型 F),则系系 统将其它操操 作数转换为为 类型 F。2.如果 操操作数之一 是压缩字段段 (类型 P),则系系 统将其它操操 作数转换为为 类型 P。3.如果 操操作数之一 是日期字段段 (类型 D)或时间间 字段(类型型 T),则系系 统将其它操操 作数转换为为 类型 D 或 T。不支持持 日期和时间间 字段之间的的
10、 比较,这会会 导致程序中中 断。4.如果 操操作数之一 是字符字段段 (类型 C)且其它它 操作数是十十 六进制字段段 (类型 X),则系系 统将类型 XX 的操作数数转 换为类型 CC。5.如果 操操作数之一 是字符字段段 (类型 C),其它它 操作数为数数 字字段(类类 型 N),则系系 统将这两种种 操作数都转转 换为类型 PP。DATA: FF TTYPE FF VALUUE 1000.00, P TYPPE P VVALUE 50.000 DEECIMALLS 2, I TYPE I VALLUE 330.00.WRITE The ffollowwing llogicaal exp
11、pressiions aare trrue:.IF F = P . WRIITE: / F,=,P.ELSE. WRRITE: / F,= 50.000 30 NNE 550.00这里,在 IFF 语句中使使用 两个逻辑表表 达式。如果果 逻辑表达式式 为真,则屏屏 幕上显示出出 来。如果逻逻 辑表达式为为 假,则将相相 反表达式显显 示在屏幕上上 。10比较字符串串 和数字串要比较字符 串串(类型 CC)和数字 文本(类型型 N),可以以 在逻辑表达达 式中使用下下 列运算符。含 义CO仅包 含CN不仅 包含CA包 含任何NA不 包含任何CS包 含字符串NS不 包含字符串串 CP包含模 式N
12、P不包 含模式因为除类型 NN 和 C 外,系系统不 能执行任何何 其它类型转转 换,所以, 在进行包含含 这些运算之之 一的比较时时 ,操作数应应 该是类型 NN 或 C。运算符的功 能能如下:CO (仅包含含)如果 仅包含 中的字符符, 则逻辑表达达 式 COO 为真。该比 较较区分大小 写,并包括括 尾部空格。 如果比较结结 果为真,则则 系统字段 SSY-FDPPOS 包括括 的长度。如如 果为假,则则 SY-FFDPOS 包含 中第一个个未 在 内出现的的字 符的偏移量量 。CN (不仅包包含 )如果 还包含 之外的其其他 字符,则逻逻 辑表达式 CNN 为真。该比 较较区分大小 写
13、,并包括括 尾部空格。 如果比较结结 果为真,则则 系统字段 SSY-FDPPOS 包含含 中第一个个未 同时在 中出现的的字 符的偏移量量 。如果为假假 ,SY-FDDPOS 包包含 的长度。CA (包含任任何 )如果 至少包含含 的一个字字符 ,则逻辑表表 达式 CAA 为真。该比 较较区分大小 写。如果比比 较结果为真真 ,则系统字字 段 SY-FFDPOS 包含 中第一个个也 在 中出现的的字 符的偏移量量 。如果为假假 ,SY-FDDPOS 包包含 的长度。NA (不包含含任 何)如果 不包含 的任何字字符 ,则逻辑表表 达式 NAA 为真。该比 较较区分大小 写。如果比比 较结果为
14、真真 ,则系统字字 段 SY-FFDPOS 包含 的 长度。如果果 为假,则 SSY-FDPPOS 包含含 中在 内出现的的第 一个字符的的 偏移量。CS (包含字字符 串)如果 包含字符符串 , 则逻辑表达达 式 CSS 为真。忽略 尾尾部空格并 且比较不区 分大小写。 如果比较结结 果为真,则则 系统字段 SSY-FDPPOS 包含含 在 中的偏移移量 。如果为假假 ,SY-FDDPOS 包包含 的长度。NS (不包含含字 符串)如果 不包含字字符 串 , 则逻辑表达达 式 NSS 为真。忽略 尾尾部空格且 比较不区分 大小写。如如 果比较为真真 ,系统字段段 SY-FFDPOS 包含 的
15、长度。如如 果为假,系系 统字段 SYY-FDPOOS 包含 在 中的偏移移量 。CP (包含模模式 )如果 包含模式式 , 则逻辑表达达 式 CPP 为真。如果 属于类型型 C,则可以以 在 中使用下下列 通配符:_ * 用于于任何字 符串_ + 用于于任何单 个字符忽略尾部空 格格且比较不 区分大小写写 。如果比较较 结果为真, 系统字段 SSY-FDPPOS 包含含 在 中的偏移移量 。如果为假假 ,SY-FDDPOS 包包含 的长度。如果要对 中的特殊殊字 符进行比较较 ,请将换码码 字符 # 放到其其前面 。可以使用用 换码字符 # 指定_ 大小写字字 符_ 通配符 *(输输 入 #
16、*)_ 通配符 + (输入 #+)_ 换码符号号 本身 (输入 #)_ 字符串结结 尾的空格 (输入 #_)NP (不包含含模 式)如果 不包含模模式 , 则逻辑表达达 式 NPP 为真。在中 ,可以使用用 与 CP 相同同的通配 符和换码字字 符。忽略尾部空 格格且比较不 区分大小写写 。如果比较较 结果为真, 则系统字段段 SY-FFDPOS 包含 . 的长度度,如 果为假,SYY-FDPOOS 包含 在 中的偏移移量 。DATA: FF1(5) TYPE C VALLUE , FF2(5) TYPE C VALLUE .IF F1 F2. WRRITE: / CComparrison t
17、rue, SY-FFDPOS=, SYY-FDPOOS.ELSSE. WRITEE: / Compparisoon fallse, SSY-FDPPOS=, SY-FFDPOS.ENDIFF.下表列出该 程程序的执行 结果,取决决 于所用的运运 算符和 F1 / F2 字段。ResultSY-FDPOOSBD COABCD 真5BD COABCDE假 2ABC12CNABCD 真3ABABCCNABCD 假5ABcdeCABd 真1ABcdeCAbD 假5ABAB NAAB 假0ababaNAAB 真5ABcdeCSbC 真1ABcdeCSce 假5ABcdeNSbC 假1ABcdeNSce
18、真5ABcdeCP*b*真 1ABcdeCP*#b*假 5ABcdeNP*b*假 1ABcdeNP*#b*真 517二进制位结结 构的比较要将逻辑表 达达式初始操 作数第一字字 节的二进制制 位结构与第第 二操作数的的 进行比较, 请使用下列列 操作符。含 义O二进制 位是 1Z二进制 位是 0M混合二 进制位位第二 操作数的的长 度应为一个个 字节。没有必要对 第第二操作数 使用长度为为 1 的十六六进制 字段(类型型 X),但却却 较方便,因因 为其长度为为 一个字节且且 数字值直接接 与二进制位位 结构相关。操作符功能 如如下:O (二进制位位 是 1)如果 中二进进制位 是 1 的位置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAP的ABAP4语言中文培训教材第一部分第七章 控制 ABAP4 程序流7640 SAP 语言 中文 培训教材 第一 部分 第七 程序 7640
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内