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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

第006章 处理数据.docx

1、第006章 处理数据第六章 处理数据概览内容赋值 用 MOVE 赋值 用 WRITE TO 赋值 将值重置为 默认值 数值运算 执行算术运 算 使用数学函 数 处理压缩数 处理日期和 时间字段 处理字符串 移动字段内 容 替换字段内 容 转换大/小 写并替换字 符 转换为可排 序格式 覆盖字符字 段 搜索字符串 获得字符串 长度 压缩字段内 容 连接字符串 拆分字符串 分配字符串 部分 指定数据对 象的偏移量 类型转换 基本数据类 型的可转换 性 字段串的可 转换性 内表的可转 换性 对齐数据对 象 本节描述如 何使用(处 理)数据对 象。涉及到 以下主题:赋值在 ABAP/4 中,可以在 声

2、明语句和 操作语句中 给数据对象 赋值。在声明语句 中,将初始 值赋给声明 的数据对象 。为此,可 以在 DATA、 常量或 STATICS 语句中使用 VALUE 参数(参见 创建数据对象和数据类型 (页 312) ) 。要在操作语 句中给数据 对象赋值, 可以使用:_ MOVE 语句,对应 于赋值运算 符()_ WRITE TO 语句本节提到的 大多数操作 不仅适用于 程序中的内 部字段,而 且适用于程 序参数、表 工作区、系 统字段、字 段符号和形 式参数,以 及不更改数 据对象情况 下的常量和 文字。当讨 论有关字段 的操作时, 参照相对于 一般字段, 而并非仅是 内部字段。用 MOV

3、E 赋值本节主题描 述如何使用 MOVE 语句或赋值 运算符( )。其中包 括:基本赋值操 作要将值(文 字)或源字 段的内容赋 给目标字段 ,可以使用 MOVE 语句或赋值 运算符( )。MOVE 语句的语法 如下所示:语法MOVE TO .MOVE 语句将源字 段 的内容传送 给目标字段 。 可 以是任何数 据对象。 必须是变量 ,不能是文 字或常量。 传送后, 的内容保持 不变。赋值运算符 ()的语 法如下所示 :语法 = .MOVE 语句和赋值 运算符功能 相同。如下所示, 可以多重赋 值: = = = ABAP/4 按从右到左 的顺序进行 处理,如下 所示:MOVE TO . MOV

4、E TO . MOVE TO . 在以上语句 中,不管用 户主记录如 何,小数点 必须用句点 (.)指定 。源字段和目 标字段可以 是不同数据 类型。其它 程序设计语 言通常将不 同数据类型 之间的赋值 限制在少数 可能组合之 内,而 ABAP/4 则提供大量 自动类型转 换。例如,可以 将基本数据 类型的源字 段内容赋给 其它基本数 据类型的目 标字段(除 了数据类型 D 无法赋给数 据类型 T,反之亦 然)。ABAP/4 也支持结构 化数据和基 本数据对象 之间或结构 不同的数据 对象之间的 赋值。对于每一赋 值语句(用 MOVE 或赋值运算 符),系统 都检查源字 段和目标字 段的数据类

5、 型。如果定 义了此类组 合的类型转 换,则将源 字段内容转 换为目标字 段数据类型 并将其值赋 给目标字段 。要获得可 能数据类型 转换的综述 以及在 ABAP/4 中是如何定 义的等信息 ,请参见类型转换 (页 ) 。DATA: T(10), NUMBER TYPE P DECIMALS 1, COUNT TYPE P DECIMALS 1.T = 1111.MOVE 5.3 TO NUMBER.COUNT = NUMBER.赋值结果是 字段T、NUMBER 和 COUNT 分别包含值 1111 、5.3 和 5.3。请 注意,当赋 值数值 1111 时,系统将 它转换为长 度为 10 的

6、字符串。要在运行时 指定源字段 和目标字段 ,必须按使用字段符号所 述,使用字 段符号。因 此无法使用 MOVE 语句(或赋 值运算符) 。用指定偏移 量赋值可以在每条 ABAP/4 语句中为基 本数据类型 指定偏移量 和长度(参 见指定数据对 象的偏移量 (页 ) )。在这 种情况下, MOVE 语句语法如 下:语法MOVE +() TO +().赋值运算符 语法如下:语法+() = +()。将字段 从 +1 位置开始且 长度为 的段内容赋 给字段 ,覆盖从 +1 位置开始且 长度为 的段。在 MOVE 语句中,所 有偏移量和 长度指定都 可为变量。 这同样适用 于采用赋值 运算符的语 句,

7、只要也 可以写做 MOVE 语句。在赋 值运算符之 后未指定字 段名称的语 句中,(例 如在数学表 达式中), 所有偏移量 和长度指定 都必须是无 符号数值。 详细信息, 参见数值运算 (页 ) )。SAP 建议只在非 数值字段之 间才采用指 定偏移量和 长度赋值。 对于数值字 段,结果毫 无意义。DATA: F1(8) VALUE ABCDEFGH, F2(20).F2+6(5) = F1+3(5).在该示例中 ,赋值运算 符功能如下 :DATA: F1(8) VALUE ABCDEFGH, F2(8).DATA: O TYPE I VALUE 2, L TYPE I VALUE 4.MOV

8、E F1 TO F2. WRITE F2.MOVE F1+O(L) TO F2. WRITE / F2.MOVE F1 TO F2+O(L). WRITE / F2.CLEAR F2.MOVE F1 TO F2+O(L). WRITE / F2.MOVE F1+O(L) TO F2+O(L). WRITE / F2.该过程输出 如下:ABCDEFGHCDEFCDABCD ABCD CDEF首先,未指 定偏移量将 F1 内容赋给 F2。然后 ,再指定偏 移量和长度 执行同样操 作。后面三 条 MOVE 语句覆盖偏 移量为2. 的 F2 内容。请注 意,根据 源类型字符 (页 ) 中的规则, F2

9、 的右边用空 格填充。在字段串组 件之间复制 值描述的 MOVE 语句赋值方 法适用于基 本数据对象 和结构化数 据对象。另 外,还有一 种 MOVE 语句变体, 允许将源字 段串组件内 容复制到目 标字段串组 件中。语法 如下:语法MOVE-CORRESPONDING TO .该语句将字 段串 组件的内容 赋给有相同 名称的字段 串 组件。对于每对名 称,系统都 执行 MOVE 语句,如下 所示:MOVE STRING1- TO STRING2-.系统分别执 行所有必要 类型转换。 该处理不同 于包括整个 字段串的赋 值。在这种 情况下,应 用不兼容的字 段串和基本 字段 (页 ) 所述的转

10、 换规则。DATA: BEGIN OF ADDRESS, FIRSTNAME(20) VALUE Fred, SURNAME(20) VALUE Flintstone, INITIALS(4) VALUE FF, STREET(20) VALUE Cave Avenue, NUMBER TYPE I VALUE 11. POSTCODE TYPE N VALUE 98765. CITY(20) VALUE Bedrock, END OF ADDRESS.DATA: BEGIN OF NAME, SURNAME(20), FIRSTNAME(20), INITIALS(4), TITLE(10)

11、 VALUE Mister, END OF NAME.MOVE CORRESPONDING ADDRESS TO NAME.在该示例中 ,将 NAME-SURNAME、 NAME-FIRSTNAME 和 NAME-INITIALS之 值设置为 Flintstone、 Fred 和 FF。NAME-TITLE 仍为值 Mister。用 WRITE TO 赋值用 WRITE TO 给数据对象 赋值时,可 以用 WRITE 语句的格式 化选项(参 见WRITE 语句 (页 41) )。本节主题描 述WRITE TO 语句的基本 形式要将值(文 字)或源字 段内容写入 目标字段, 可以使用 WRITE

12、 TO 语句:语法WRITE TO .WRITE TO 语句将源字 段 内容写入目 标字段 。 可以是任何 数据对象。 必 须是变量, 不能是文字 或常量。写 入后, 内容保持不 变。对于 , 可以使用 WRITE 语句的所有 格式化选项 (UNDER 和 NO-GAP 除外)(参 见格式选项 (页 45) )。 WRITE TO 语句总是检 查用户主记 录中的设置 。例如,这 些设置指定 是将小数点 显示为句号 (.),还 是逗号(,) 。WRITE TO 语句并不遵 循 类型转换 (页 ) 中所述的转 换规则。目 标字段解释 为类型 C 字段。系统 总是将源字 段内容转换 为类型 C,它不

13、将 结果字符串 转换为目标 字段的数据 类型,而直 接写入目标 字段。因此 ,不应使用 数值数据类 型的目标字 段。DATA: NUMBER TYPE F VALUE 4.3, TEXT(10), FLOAT TYPE F, PACK TYPE P DECIMALS 1.WRITE NUMBER.WRITE NUMBER TO TEXT EXPONENT 2.WRITE / TEXT.WRITE NUMBER TO FLOAT.WRITE / FLOAT.WRITE NUMBER TO PACK.WRITE / PACK.MOVE NUMBER TO PACK.WRITE / PACK.该过程

14、输出 如下: 4.30000000000000E+00 0.043E+021.50454551753894E-1532034233452;30,3 4.3第一输出行 以类型 F 字段的标准 输出格式显 示字段 NUMBER 内容。第二 输出行显示 字符串,该 字符串产生 于用格式化 选项 EXPONENT 2 将字段 NUMBER 写入长度为 10 的类型 C 字段中。第 三和第四输 出行显示不 适合于使用 数值数据类 型的目标字 段。第五输 出行显示 MOVE 语句不同于 WRITE TO 语句在于将 类型F 字段正确地 转换为类型 P (有关该转 换的详细信 息,参见源类型浮点 数 (页

15、) ) 。运行时指定 源字段 可以使用 WRITE TO 语句在运行 时指定源字 段。为此, 请用括号将 包含源字段 名的数据对 象名括起来 ,并将其放 在源字段位 置:语法WRITE () TO .系统将赋给 的数据对象 值放到 中。然而,如果 要在运行时 指定目标字 段,则必须 按使用字段符号中所述, 使用字段符 号。DATA: NAME(10) VALUE SOURCE, SOURCE(10) VALUE Antony, TARGET(10).WRITE (NAME) TO TARGET.WRITE: TARGET.则输出Antony字段名和字 段内容之间 的连接如下 图所示。用指定偏移

16、 量写入值可以指定每 条 ABAP/4 语句中基本 数据对象的 偏移量和长 度(参见指定数据对 象的偏移量 (页 ) ) 。WRITE TO 语句语法如 下:语法WRITE +() TO +().将字段 中从 +1 位置开始且 长度为 的内容赋给 字段 , 覆盖从 +1 位置开始且 长度为 的段。在 WRITE TO 语句中,目 标字段的偏 移量和长度 指定可为变 量。SAP 建议只在非 数值字段之 间采用偏移 量和长度指 定赋值。对 于数值字段 ,结果毫无 意义。DATA: STRING(20), NUMBER(8) TYPE C VALUE 123456, OFFSET TYPE I VA

17、LUE 8, LENGTH TYPE I VALUE 12.WRITE NUMBER+(6) TO STRING+OFFSET(LENGTH) LEFT-JUSTIFIED.WRITE: / STRING.CLEAR STRING.WRITE NUMBER+(6) TO STRING+OFFSET(LENGTH) CENTERED.WRITE: / STRING.CLEAR STRING.WRITE NUMBER TO STRING+OFFSET(LENGTH) RIGHT-JUSTIFIED.WRITE: / STRING.CLEAR STRING.输出为: 123456 123456 12

18、3456第一条 WRITE 语句将字段 NUMBER 左对齐的前 6个位置写 入字段 STRING 的后12个 位置。第二条 WRITE 语句将 NUMBER 居中的前6个 位置写入 STRING 的后12个 位置。最后 ,第三条 WRITE 语句将右对 齐的 NUMBER 的前6个位 置写入 STRING的 后12个位 置。将值重置为 默认值可以用 CLEAR 语句重置任 何数据对象 值,如下所 示:语法CLEAR .该语句将数 据对象 的内容重置 为初始默认 值。可以区 分_ 基本数据 类型对于基本数 据类型的数 据对象的默 认值列表, 参见预定义的基本数据类型 (页 33) 中的表 。系

19、统将变 量值重置为 它们的初始 默认值,而 不是用DATA 语句的 VALUE 参数所赋的 初始值。无 法重置常量 。_ 字段串如果将 CLEAR 语句应用于 字段串,则 将单个组件 的内容重置 为它们的初 始默认值。_ 内表关于 CLEAR 语句如何使 用内表的解 释,参见初始化内表 (页 Error! Not a valid link.) 。DATA NUMBER TYPE I VALUE 10.WRITE NUMBER.CLEAR NUMBER.WRITE / NUMBER.输出为: 10 0CLEAR 语句将字段 NUMBER 的内容从10 重置为默认 值 0。数值运算要处理数值 数据

20、对象并 将结果值赋 给数据对象 ,可以用 COMPUTE 语句或赋值 运算符( )。COMPUTE 语句语法如 下所示:语法COMPUTE = .关键字 COMPUTE 可选。换句 话说,该语 句也可以写 成:语法 = .两条语句效 果等同。在 中指定的数 学运算结果 赋给字段 。赋 值运算符( )的作用 如基本赋值操 作 (页 ) 中所述。 如果运算结 果与 的数据类型 不同,则系 统自动进行 类型转换( 参见类型转换 (页 ) )。在数学表达 式中,可以 按任何排列 组合运算并 用括号进行 指定。求值顺序是 :1. 括号 中的表达式2. 函数3. * (求幂)4. *、 /、MOD、 DI

21、V (乘法、除 法)5. +、 - (加法、减 法)以下主题对 中指定的数 学运算加以 描述:处理以下数 据类型特别 重要:执行算术运 算要定义算术 运算,可以 使用适当的 算术运算符 。使用算术 运算进行基本算术运 算ABAP/4 支持四种基 本算术运算 ,同时还支 持乘方计算 。可以用数 学表达式指 定以下算术 运算符:+加法-减 法*乘法/除 法DIV整 除MOD求 余*求幂 可以用关键 字 ADD、SUBTRACT、 MULTIPLY和 DIVIDE进 行基本算术 运算,而不 使用数学表 达式中的运 算符。下表说明如 何表示 ABAP/4 中的基本算 术运算:运算用数学 表达式的语 句

22、 用关键字的 语句 加法 = + .ADD TO .减 法 = - .SUBTRACT FROM .乘 法 = * .MULTIPLY BY .除 法 = / .DIVIDE BY .整 除 = DIV .-除 法余数 = MOD .-求 幂 = * .-在 用关键字的 语句中,将 运算结果赋 给 。运算数 、 、 可以是任何 数值字段。 如果字段类 型不同,则 系统自动进 行必要类型 转换(有关 类型转换的 详细信息, 参见类型转换 (页 ) )。使用数学表 达式时,请 注意,运算 符 +、 -、 *、 *、 / 以及前括号 、后括号是 ABAP/4 关键字,前 面和后面都 必须有空格 。在

23、除法运算 中,如果被 除数不为零 ,则除数不 能为零。对 于整除,用 运算符 DIV 或 MOD 代替 / 。用 DIV 获得整数商 并用 MOD 获得余数。如果将几种 数学表达式 组合在一起 ,对于相同 优先级的运 算符,从左 到右进行计 算(求幂计 算除外,它 是从右到左 进行)。因 此, * * 与 * ( * )相同,但 与( * ) * 不同 。DATA: COUNTER TYPE I.COMPUTE COUNTER = COUNTER + 1.COUNTER = COUNTER + 1.ADD 1 TO COUNTER.在此,三条 运算语句进 行相同算术 运算,例如 ,将1加到 字

24、段 COUNTER 内容上并将 结果赋给 COUNTER。DATA: PACK TYPE P DECIMALS 4, N TYPE F VALUE +5.2, M TYPE F VALUE +1.1.PACK = N / M.WRITE PACK.PACK = N DIV M.WRITE / PACK.PACK = N MOD M.WRITE /PACK.输出为: 4.7273 4.0000 0.8000该示例说明 除法的不同 类型。执行字段串 的算术运算类似于用 MOVE-CORRESPONDING 语句在字段 串之间复制 值(参见在字段串组 件之间复制 值 (页 ) ) ,可以用以 下关键

25、字, 执行字段串 的算术运算 :_ ADD-CORRESPONDING_ SUBTRACT-CORRESPONDING_ MULTIPLY-CORRESPONDING_ DIVIDE-CORRESPONDING对于所有同 名字段串组 件,ABAP/4 进行相应算 术运算。然 而,仅当所 有相关组件 都是数值型 数据类型时 ,该运算才 有意义。有关这些关 键字的详细 信息,参见 ABAP/4 关键字文档 。DATA: BEGIN OF RATE, USA TYPE F VALUE 0.6667, FRG TYPE F VALUE 1.0, AUT TYPE F VALUE 7.0, END OF

26、 RATE.DATA: BEGIN OF MONEY, USA TYPE I VALUE 100, FRG TYPE I VALUE 200, AUT TYPE I VALUE 300, END OF MONEY.MULTIPLY-CORRESPONDING MONEY BY RATE.WRITE / MONEY-USA.WRITE / MONEY-FRG.WRITE / MONEY-AUT.输出如下: 67 200 2,100在此,用 RATE-USA乘 以 MONEY-USA, 以此类推。添加字段顺 序除基本算术运 算 (页 ) 中所述的 基本加法之 外,ADD 语句有几个 变体,用于 添

27、加字段顺 序。例如:_ 添加字段 顺序并将结 果赋给另一 个字段语法ADD THEN UNTIL GIVING .如果 、 、 . 、 是在内存中 相同类型和 长度的等距 字段序列, 则进行求和 计算并将结 果赋给 _ 添加字段 顺序并将结 果添加到另 一个字段的 内容中语法ADD THEN UNTIL TO .该语句除了 将字段总和 添加到 的旧内容中 之外,与上 面语句的工 作方式相同 。有关其它相 似变体的信 息,参见有 关 ADD 语句的关键 字文档。DATA: BEGIN OF SERIES, N1 TYPE I VALUE 10, N2 TYPE I VALUE 20, N3 TY

28、PE I VALUE 30, N4 TYPE I VALUE 40, N5 TYPE I VALUE 50, N6 TYPE I VALUE 60, END OF SERIES.DATA SUM TYPE I.ADD SERIES-N1 THEN SERIES-N2 UNTIL SERIES-N5 GIVING SUM.WRITE SUM.ADD SERIES-N2 THEN SERIES-N3 UNTIL SERIES-N6 TO SUM.WRITE / SUM.输出如下: 150 350在此,将 N1 到 N5 组件内容求 和并将其值 赋给字段 SUM。然 后,将 N2 到 N6组件求 和并将其添 加到 SUM 的值中。使用数学函 数要指定数学 表达式,可 以从 ABAP/4 内部函数集 中选择运算 。语法COMPUTE

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

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