声明数据(doc27).doc

上传人:sccc 文档编号:4592005 上传时间:2023-04-29 格式:DOC 页数:27 大小:210.92KB
返回 下载 相关 举报
声明数据(doc27).doc_第1页
第1页 / 共27页
声明数据(doc27).doc_第2页
第2页 / 共27页
声明数据(doc27).doc_第3页
第3页 / 共27页
声明数据(doc27).doc_第4页
第4页 / 共27页
声明数据(doc27).doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《声明数据(doc27).doc》由会员分享,可在线阅读,更多相关《声明数据(doc27).doc(27页珍藏版)》请在三一办公上搜索。

1、1声明数据概览内容数据类型和 对象简介数据类型基本数据类 型 - 预定义的基本数据类 型 - 用户定义的结构化数据 类型数据类型的 兼容性数据对象文字变量常量系统定义的 数据对象创建数据对 象和数据类 型DATA 语句CONSTANTS 语句STATICS 语句TABLES 语句TYPES 语句示例汇总预定义基本 数据类型和 对象示例用户定义的 基本数据类 型和对象示 例字段串示例内表示例使用类型组确定数据对 象的属性确定字段长 度确定数据类 型确定输出长 度确定小数位确定转换例 程本节说明如 何在 ABAP/4程 序中声明数 据。要能声 明数据,应 该熟悉定义 数据类型 数据对象之 间关系的

2、 ABAP/4 类型概念。下列内容介 绍ABAP/4 类型概念下列主题说 明在该指南中 ,术语“字 段”用于数 据对象。通常情况下 ,字段可以 是 任何数据 对象(参见 数据对象 (页 ) ) 字段符号 或形式参数 (参见 使用字段符号和通过参数传递数据)根据上下文 ,可以明确 术语“字段 ”代表什么 。2数据类型和 对象简介数据类型和 数据对象是 ABAP/4 类型概念的 基本组件。 二者均可由 用户声明和 维护。这与 其它编程语 言如 C、FORTRAN 或 PASCAL 不同,在这 些语言中用 户可以声明 数据对象, 但仅限于预 定义的数据 类型。在 ABAP/4 中,可以使 用与标准数

3、 据声明相似 的语法处理 数据类型, 而与数据对 象无关。特 殊程序以外 的数据类型 集中存储也 是可能的。下列列表是 数据类型和 对象主要特 征的概述: 数据类型 (基本的或 结构化的) -数据类 型是纯粹的 说明。 -没有与 数据类型相 关联的内存 。 -数据类 型描述数据 对象的技术 属性。-数据类 型是数据对 象的属性并 与数据对象 联系紧密。 数据对象 (文字、变 量、常量等 ):-数据对 象是程序在 运行时使用 的物理单元 。-每个数 据对象都有 分配给它的 特定数据类 型。-每个数 据对象占据 一些内存空 间。-ABAP/4 根据数据对 象的数据类 型处理数据 对象。在程序中,

4、必须声明要 使用的全部 数据对象。 声明过程中 ,必须给数 据对象分配 属性。其中 最重要的属 性是数据类 型。在 ABAP/4 中,可以使 用与其它程 序语言相似 的预定义的 数据类型, 或者使用用 户定义的数 据类型。由于 ABAP/4 中用户定义 的数据类型 允许编程具 有非常大的 灵活性,所 以提供了强 有力的工具 。它们的范 围从基本类 型(例如, 给定长度的 字符串)到 非常复杂的 结构(例如 ,嵌套表) 。将用户定义 的数据类型 分配给数据 对象使您能 精确处理需 要的数据对 象。可以按 使用预定义 数据类型的 方式使用用 户定义的数 据类型。可 以在程序内 对它们进行 局部明,

5、 或在 ABAP/4 词典中对它 们进行全局 保存。有三个层次 级的数据类 型和对象: 在 ABAP/4 词典中定义 的独立于程 序的数据 在一个程 序中全局使 用的内部数 据 在过程( 子程序和功 能模块)中 局部使用的 数据在本指南的 相应章节将 了解到有关 这些层次级 的详细内容 。3数据类型在 ABAP/4 中按结构和 定义对数据 类型分类。 数据类型是 : 基本的( 非结构化的 )或结构化 的 预定义的 或用户定义 的因此,有四 类数据类型 ,在下表中 列出。预定 义数据类型 的名称是固 定的。用户 定义的数据 类型的名称 由程序员在 程序中定义 。ABAP/4 中的数据类 型预定义

6、的用 户定义的基 本的C、D、 F、I、N、 P、T 和 X:ABAP/4 包含 8 个预定义基 本数据类型 。基本数据类 型 - 预定义的 (页 ) 用户定义的 基本数据类 型基于预定 义基本数据 类型。基本数据类 型 - 用户定义的 (页 ) 结构化的TABLE: 该预定义的 结构化的数 据类型仅用 于形式参数 和字段符号 的键入。字段串和内 表:这些结 构化的数据 类型可以用 于数据对象 并且是用户 定义的。结构化数据 类型 (页 ) 使用数据时 ,了解数据 类型是否兼 容是很重要 的。关于该 主题的详细 信息,参见3基本数据类 型 - 预定义的下表总结了 ABAP/4 中预定义的 基本

7、数据类 型(有效大 小以字节为 单位):ABAP/4数据类型数据类型默 认大小有效 大小初始值说明 C11 - 65535SPACE文 本、字符( 字母数字字 符)D8800000000日 期(格式: YYYYMMDD) F880浮 点数I440整 型(整数) N11 - 6553500.0数 字文本P81 - 160压缩 号T66000000时 间(格式: HHMMSS) X11 - 65535X00十 六进制在各方面, 数据类型 D、F、I 和 T 都是预定义 的,但数据 类型 C、N、P 和 X 可以有附加 说明。例如 ,可以在程 序中定义大 小。关于数字数 据类型 I、F 和 P 的详

8、细信息 ,参见 数字数据类 型 (页 ) 。4数字数据类 型ABAP/4 支持三种数 字数据类型 。它们是: 类型 I 的整型(整 数) 类型 P 的压缩号 类型 F 的浮点数类型 I 数据类型 I 数据的数值 范围是 -2*31 到 2*31-1 并且仅包括 整数。对算术运算 的非整型结 果(如分数 )进行四舍 五入,而不 是截断。类型 I 数据可用于 计数器、项 目号、索引 和时间期段 等。类型 P 数据类型 P 数据允许在 小数点后有 数字。类型 P 数据的数值 范围取决于 大小和小数 点后的位数 。有效大小 可以是从 1 到 16 字节的任何 值。将两个 十进制数字 压缩到一个 字节,

9、而最 后一个字节 包含一个数 字和符号。 在小数点后 最多允许 14 个数字。关 于定义小数 点后位数的 详细信息, 参见 DATA 语句的基本 格式 (页 ) 。使用类型 P 数据时,最 好将程序属 性设置为“ 定点算法” (参见指定程序属性 (页 Error! Not a valid link.) )。否则, 将类型 P 数字作为整 型对待。类型 P 数据可用于 如距离、重 量和钱数等 数值。类型 F 数据对于正数和 负数,类型 F 数的数值范 围是 1x10*-307 到 1x10*308, 包括 0(零)。精确范围近 似为 15 位十进制数 ,这取决于 硬件平台的 浮点算法。由于是在内

10、 部将类型 F 数据转换为 二进制系统 ,因此可能 出现舍入误 差。尽管 ABAP/4 处理器试图 将这些影响 减至最小, 但是如果要 求高精度, 则不应该使 用类型 F 数据。而应 代之以类型 P 数据。如果需要大 的数值范围 ,而且舍入 误差不重要 ,则可以使 用类型 F 数据。因为对类型 I 和 F 字段的算术 运算与机器 码语句关系 更紧密,所 以用类型 I 和类型 F 字段的计算 比用类型 P 字段的计算 要快;同时 对 P 字段的运算 要求更多的 软件支持。 尽管如此, 可能仍必须 使用类型 P 数据以满足 精度或数值 范围的要求 。类型 N 数据不包含 数值。虽然 由数字组成 ,

11、但这些数 字不用于计 算。科目号 和邮编是典 型的类型 N 字段。5基本数据类 型 - 用户定义的用户定义的 基本数据类 型完全是以 预定义的基 本数据类型 为基础的。 要定义自己 的基本数据 类型,请使 用 TYPES 语句(参见 TYPES 语句 (页 ) )。用户定义的 基本数据类 型使程序的 阅读和维护 更加容易: 例如,如 果在程序中 经常需要使 用某数据类 型集,通过 为类型定义 创建包括程 序(参见 包含程序),或者在 ABAP/4 词典的类型 组中定义数 据类型(参 见 使用类型组 (页 ) ),可以确 保总是使用 相同的数据 类型。 若要使数 据类型更易 于理解和识 别,可以

12、赋 予它们描述 性的名称。 在将用户 定义的数据 类型分配给 几个数据对 象之后,通 过更改 TYPES 语句中数据 类型的定义 ,可以用一 个操作更改 所有这些数 据对象的数 据类型。TYPES: NUMBER TYPE I, LENGTH TYPE P DECIMALS 2, CODE(3) TYPE C.DATA: NO_FLIGHTS TYPE NUMBER, NO_PASSENGERS TYPE NUMBER, DISTANCE TYPE LENGTH, HEIGHT TYPE LENGTH, . CITY_CODE TYPE CODE, COUNTRY_CODE TYPE CODE

13、, .示例中,定 义了名为 NUMBER 的数据类型 。该数据类 型除拥有不 同名称以使 程序更易于 阅读外,与 预定义的数 据类型 I 相同。该示例中还 定义了数据 类型 LENGTH, 该数据类型 是以预定义 的基本数据 类型 P为基础的 。为 LENGTH 定义了给定 数目的小数 位。例如, 如果需要更 改长度规格 的精度,仅 须在程序中 更改 TYPES 语句。还定义了第 三种数据类 型 CODE。 CODE 是以预定义 的类型 C 为基础的, 具有给定长 度 3。5结构化数据 类型通常情况下 ,ABAP/4 程序中的结 构化数据类 型是用户定 义的。在 ABAP/4 中,没有可 用的

14、预定义 结构化数据 类型,但下 列例外:可以使用预 定义的一般 表类型TABLE, 以便将具有 一般行结构 的内表传递 到子程序( 参见键入形式参数),或者键 入字段符号 (参见 键入字段符号)。有两种结构 化数据类型 : 字段串字段串是其 它数据类型 的集合。字 段串的组件 可以是字段 串本身或内 表。可以用 TYPES 语句或 DATA 语句(参见 用于字段串 的 DATA 语句 (页 ) )定义字段 串。通过 DATA 语句不能定 义独立数据 类型,而可 以定义具有 结构化类型 的数据对象 。 内表内表由相同 类型的几行 组成。与字 段串仅“水 平地”扩展 不同,内表 还“垂直地 ”扩展

15、。可以用 TYPES 或 DATA 语句的 OCCURS 参数定义内 表(参见 创建内表 (页 Error! Not a valid link.) )。由于字段串 能包含任何 类型的组件 ,而且可以 为任何类型 定义内表, 所以自定义 数据结构可 能变得非常 复杂。结构化数据 类型示例下列是 ABAP/4 中结构化数 据类型的示 例a)由一 系列基本数 据类型组成 的字段串( 平铺结构, 仅“水平” )b)为基 本字段定义 的内表(基 本数据类型 的动态排列 ,仅“垂直 ”)c)为简 单字段串定 义的内表( 带有行和列 的表)d)包含 子结构的结 构(嵌套结 构)e)结构 ,该结构包 含内表作

16、为 组件(垂直 结构)f)为包 含结构化组 件的字段串 定义的内表 (垂直行类 型的表)g)为字 段串定义的 内表,该字 段串包含内 表作为组件7数据类型的 兼容性使用数据时 ,有时需要 将数据从一 种类型转换 到另一种类 型。要作到 这一点,数 据类型必须 是可转换的 (参见 类型转换 (页 Error! Not a valid link.) )。可转换 性的一个重 要前提就是 兼容性。如果两个数 据类型具有 相同的技术 属性,则它 们是兼容的 。不同 ABAP/4 数据类型的 后果如下:基本数据类 型如果在类型 、大小和( 对于类型 P)小数位 等方面是相 同的,则基 本数据类型 和其它基

17、本 数据类型是 兼容的。基本数据类 型与结构化 数据类型相 互之间不兼 容。结构化数据 类型对于结构化 数据类型, 必须区分字 段串和内表 。字段串如果字段串 的结构相同 而且组件兼 容,则字段 串与其他字 段串兼容。 这意味着从 基本字段构 造字段串, 以便从子结 构形成整个 结构的方式 必须相同, 而且它们的 基本组件必 须相互兼容 。如果两个 字段串由顺 序相同的基 本字段组成 ,但这些字 段组合成不 同的子结构 ,则字段串 不兼容。字段串与基 本数据类型 和内表不兼 容。内表如果行类型 兼容,则内 表与其他内 表兼容。内 表的兼容性 不取决于行 数。内表与字段 串和基本数 据类型不兼

18、容。在上述情况 下,由于在 ABAP/4 程序运行期 间出现的每 个数据类型 是完全确定 的(例如, 数据类型 C 的长度总是 已定义并已 知的),所 以数据类型 之间的兼容 性总是涉及 到已完全指 定的数据类 型。该兼容 性是对称的 。在形式参数 和字段符号 键入的方面 ,使用有点 不同的、非 对称的兼容 性(参见键入形式参数 和 键入字段符号)。7数据对象在 ABAP/4 中,可以使 用几种数据 对象,如下 所示: 内部数据 对象创建内部数 据对象供在 特定的程序 中使用。在 该程序之外 无效。内部 数据对象包 括: 外部数据 对象外部数据对 象独立于程 序。不能直 接使用外部 数据对象,

19、 但能将其复 制到内部数 据对象,并 在完成后将 它们回写。 可以在整个 系统环境中 全局使用外 部数据对象 。ABAP/4 将外部数据 对象保存在 ABAP/4 词典中定义 的表中。要 从程序内部 访问该数据 ,请用 TABLES 语句(参见 TABLES 语句 (页 ) )在程序中 声明该表。 系统定义 的数据对象除用户定义 的数据对象 外,还有一 些数据对象 由系统自动 定义。 特殊数据 对象ABAP/4 还包括一些 具有特殊特 征的数据对 象,即:-参数参数是链接 到选择屏幕 的变量。参 数可以在程 序启动后接 受数值。-选择标 准选择标准是 用于指定数 值范围的特 殊内表。它 们也与

20、选择 屏幕相链接 。关于这些数 据对象及其 声明的详细 信息,参见使用选择屏幕。8文字文字是固定 值。ABAP/4 区分文本文 字和数字文 字。文本文字文本文字是 单引号内的 字母数字字 符序列。Antony Smith69190 Walldorf文本文字最 长可达 254 个字符。如 果某文本文 字包含引号 ,必须重复 引号,以使 系统能够将 内容识别为 文本文字而 不是文字的 结尾。WRITE: / This is Johns bicycle.该语句生成 下列输出:This is Johns bicycle要确保程序 仍易于维护 并且独立于 语言,请勿 在程序的最 终版本中显 式地使用文

21、本文字。而 应将其外部 地定义为文 本符号。文 本符号是 ABAP/4 文字基本概 念的一部分 。关于这方 面的详细信 息,以及关 于如何创建 和使用文本 符号的详细 信息,参见 处理文本摘要 (页 Error! Not a valid link.) 。数字文字数字文字是 可能包含前 导符号的数 字序列。可 包含多达 15 个数字。123-93 +456如果需要非 整型数值或 较长的数字 ,则必须使 用文本文字 ,该文本文 字自动转换 到正确的类 型。(详细 信息,参见 类型转换 (页 Error! Not a valid link.) )。12345678901234567890+0.584

22、98-8473.67同样,请使 用文本文字 表示浮点数 值。必须按 照下列格式 :E-12.34567-765E-041234E5+12E+23+12.3E-41E1609变量变量用于以 一定名称按 一定格式保 存并参考数 据。变量可 能在下列方 面不同 名称 类型 长度 结构可以利用 DATA 语句在程序 中声明变量 (参见 DATA 语句 (页 ) )。DATA: S1 TYPE I, S2 TYPE I, SUM TYPE I.SUM = S1 + S2.10常量常量是包含 值的数据对 象,该值是 在初始化时 确定的。在 程序执行期 间不能更改 常量。在程序中利 用 常量 语句声明常 量

23、(参见 CONSTANTS 语句 (页 ) )。如果试 图在程序的 其它地方更 改常量,在 语法检查或 运行期间, 系统将输出 错误消息。也可以在 ABAP/4 词典的类型 组中声明常 量(参见 使用类型组 (页 ) )。如果在程序 中频繁地需 要某特殊数 值,请使用 常量。在这 种情况下, 请勿使用文 字。如果需 要修改该值 ,只须更改 声明。CONSTANTS PI TYPE P DECIMALS 10 VALUE 3.1415926536.10系统定义的 数据对象启动 ABAP/4 程序时,一 些数据对象 自动可用而 无需声明。 系统定义的 数据对象包 括: SPACE数据对象 SPAC

24、E 是类型 C 的常量。长 为一个字符 并包含空格 。由于 SPACE 是常量,所 以不能更改 。 系统字段所有系统字 段都有格式 为 SY- 的名称,其 中 指定单个字 段。若要在 ABAP/4 编辑器中显 示可用系统 字段的列表 ,请在命令 行中键入“ SHOW SY”(请 选择“编辑 - 其它功能 - 命令输入” )。该列表 还包括系统 字段的数据 类型。下面是系统 字段示例: SY-SUBRC返 回代码值( 0,如果操 作成功) SY-UNAME用 户的登录名 SY-DATUM当 前日期 SY-UZEIT当 前时间 SY-TCODE当 前事务系统字段是 变量并且可 以由程序更 改。但是

25、, SAP 不建议这样 做,因为在 继续执行程 序时,将失 去保存在这 些字段中的 信息。11创建数据对 象和数据类 型本节说明如 何在程序中 创建数据对 象和数据类 型。除文字 外,还必须 利用声明语 句声明每个 数据对象。在声明语句 中,必须指 定所有数据 对象的数据 类型。要做 到这一点, 可以使用 数据类型 (页 ) 中说明的任 何数据类型 。在声明语句 中定义对象 的数据类型 ,有下列方 式之一 直接地, 使用 .TYPE . 间接地, 使用 LIKE .对下面列出 的大多数数 据声明语句 ,TYPE 和 LIKE 是可选的附 加项。利用 TYPE 选项,可以 直接将数据 类型 分配

26、给已声 明的数据对 象。利用 LIKE 选项,可以 将另一个数 据对象 的数据类型 分配给已声 明的数据对 象。这意味 着间接引用 数据类型。对数据对象 和数据类型 有独立的名 称空间。这 意味着一个 名称既可以 是数据类型 名,同时又 可以是数据 对象名。在程序中, 可以使用数 据声明语句 静态地定义 数据对象, 或者利用操 作语句动态 地创建数据 对象。ABAP/4 包括下列用 于静态地创 建数据对象 和数据类型 的关键字:DATA 语句 (页 ) 用于创建变 量CONSTANTS 语句 (页 ) 用于创建 常量STATICS 语句 (页 ) 用于创 建变量,这 些变量在程 序运行期间 一

27、直存在, 但仅在过程 中可见TABLES 语句 (页 ) 用于 创建表工作 区TYPES 语句 (页 ) 用于创建 用户定义的 数据类型在 内表环境中 ,可以使用 操作语句 APPEND、 COLLECT 和 INSERT 以动态地创 建内表的行 (参见 填充内表 (页 Error! Not a valid link.) )。在选择屏幕 环境中,可 以使用附加 语句 PARAMETERS 和 SELECT-OPTIONS 以创建带特 殊功能的数 据对象(参 见 使用选择屏幕)。11DATA 语句使用 DATA 语句定义局 部和全局变 量。关于局 部和全局变 量间区别的 详细信息, 参见在调用程

28、序和子系统之间传递数据。DATA 语句有一个 基本格式和 三个主要变 式,如下所 示: 用于字段 串的 DATA 语句 用于内表 的 DATA 语句 用于公用 内存块的 DATA 语句。下列内容说 明 DATA 语句的基本 格式下列内容说 明用于字段 串的 DATA 语句由于内表性 质的复杂性 ,将用一个 独立章节来 说明该主题 。关于定义 内表的详细 信息,参见 创建和处理内表 (页 Error! Not a valid link.) 。由于声明用 于几个程序 的公用内存 块与外部子 程序有关, 所以将在涉 及子程序的 章节中解释 该主题(参 见 声明数据作为通用部分)。12DATA 语句的

29、基本 格式可以在程序 中使用 DATA 语句的基本 格式以定义 内部变量。 语法如下:语法DATA () .基本格式中 ,关键字 DATA 有下列参数 :参数用途命名变量 (页 ) 指定变量的 数据类型和 长度 (页 ) 指定初始值 (页 ) 指定小数位 数 (页 ) 12命名变量变量名 最长可达 30 个字符。除 下面列出的 这些字符外 ,可以使用 任何字母数 字字符。 请勿使用 下列字符-加号 +-句点 .-逗号 ,-冒号 : -圆括号 ( ) 请勿创建 完全由数字 字符组成的 名称ABAP/4 包含具有保 留名(不允 许使用这些 保留名)的 预定义数据 对象(参见 系统定义的 数据对象

30、(页 ) )。另外, 如果变量名 与引导语句 的关键字的 参数相混淆 ,则请勿在 语句中使用 该变量名。书写 DATA 语句时,请 遵循这些指 南: 使用不要 求附加说明 的有意义的 字段名。 因为连字 符指示字段 串,所以不 要使用连字 符(参见 用于字段串 的 DATA 语句 (页 ) )。 使用下划 线以分离长 名称。 避免所有 其它特殊字 符。 始终使用 字母作为字 段名的第一 个字符。无需说明的 字段名示例 :GROUP_TOTALACCOUNT_NOFOREIGN_CURRENCYBANK_CODE13指定变量的 数据类型和 长度要指定数据 类型,请使 用 参数。可以 使用下列任

31、一形式创建 参数: TYPE LIKE TYPE 参数利用 TYPE 参数,可以 指定预定义 数据类型或 用户定义的 数据类型( 参见 数据类型 (页 ) )。语法如 下:语法DATA () TYPE .通过在 中指定所需 的长度,可 以为一些基 本数据类型 定义长度。 但仅对字段 类型 C、P、N 和 X 才是可能的 。关于默认 值和有效值 ,参见 基本数据类 型 - 预定义的 (页 ) 中的表。利用 TYPE 参数指定数 据类型示例 :DATA: NUMBER TYPE P, DATE TYPE D, HEXADECIMALFIELD TYPE X, COUNT TYPE I, LINE(

32、72) TYPE C.LIKE 参数利用 LIKE 参数,可以 将已定义数 据对象的数 据类型分配 给变量。语 法如下:语法DATA LIKE .使用 LIKE 参数时,按 照与数据对 象 完全相同的 类型和结构 创建字段 。可将任何数 据对象用于 。利 用 LIKE 参数,可以 引用在 ABAP/4 词典中声明 的数据对象 的数据类型 。DATA NUMBER_1 TYPE P.DATA NUMBER_2 LIKE NUMBER_1.DATA MYNAME LIKE SY-UNAME.示例中,用 与数据对象 NUMBER_1 相同的数据 类型声明数 据对象 NUMBER_2 。数据对象 MY

33、NAME 与系统定义 的数据对象 SY-UNAME 具有相同的 数据类型。LIKE 参数常用于 附属字段以 临时保存数 据库字段的 内容。该机 制可以避免 由于键入错 误,或更改 数据库字段 的定义而引 起的无意的 差异。例如 ,如果更改 数据库字段 的属性,则 系统自动改 写备份字段 的属性。DATA PLANE LIKE SFLIGHT-PLANETYPE.该语句创建 与 ABAP/4 词典字段 SFLIGHT-PLANETYPE 具有相同属 性、名为 PLANE 的数据对象 。PLANETYPE 是数据库表 SFLIGHT 的一列。要创建与现 有内表的行 具有相同数 据类型的数 据对象

34、,请 使用 LIKE 参数,如下 所示:语法DATA LIKE LINE OF .在这种情况 下, 必须是作为 内表创建的 数据对象( 参见创建内表数据对象 (页 Error! Not a valid link.) )。类型和长度 的默认值如果未在 DATA 语句中指定 参数 和 , 则创建长度 为 1 的字符字段 (类型 C)。如果 指定长度, 但未指定类 型,则创建 给定长度的 字符字段。DATA TEXTFIELD.示例创建长 度为 1 的字符字段 TEXTFIELD。14指定初始值利用 DATA 语句声明内 部变量时, 将隐式地给 字段分配初 始值。关于 不同数据类 型初始值的 详细信

35、息, 参见 基本数据类 型 - 预定义的 (页 ) 中的表。要更改字段 的初始值, 请使用 DATA 语句的 参数。语法 如下:语法DATA . VALUE .将字段 的初始值设 为 , 其中 可以是 文字(参 见 文字 (页 ) ) 常量(参 见 常量 (页 ) ) 显式的附 加项 IS INITIAL初始值规格 示例:DATA: COUNTER TYPE P VALUE 1, DATE TYPE D VALUE 19920601, FLAG TYPE C VALUE IS INITIAL.声明该数据 以后,字符 串 FLAG 包含其默认 初始值 SPACE。15指定小数位 数要定义类型 P

36、 字段的小数 位数,请使 用 参数。语法 如下:语法DATA TYPE P DECIMALS .小数位数 的最大值是 14(参见 数字数据类 型 (页 ) )。可以将数据 对象分配给 压缩码类型 变量,而该 数据对象具 有比变量更 多的小数位 。如果已将 程序属性指 定为“定点 运算”(参 见 指定程序属性 (页 Error! Not a valid link.) ),则将多 余的位数进 行四舍五入 。DATA WEIGHT TYPE P DECIMALS 2 VALUE 1.225.如果将属性 设置为“定 点运算”, 则 WEIGHT的 值为 1.23。15用于字段串 的 DATA 语句字段

37、串是程 序中的一组 内表。要声 明字段串, 请使用 DATA 语句并用 BEGIN OF 和 END OF 标记该字段 组的起始和 结束。语法 如下:语法DATA: BEGIN OF , , . END OF .这些语句定 义了字段串 。在 中,通过指 定长度、类 型和初始值 或小数位数 (如果需要 ),可以如 DATA 语句的基本 格式 (页 ) 中说明的那 样声明组件 字段。通过将字段 串名作为前 缀,并用连 字符将字段 串和组件连 接起来:-, 可以定址字 段串中的各 个组件。字段串的组 件可以有不 同的数据类 型。由于类 型 I 或 F 的字段是对 齐的(参见 对齐数据对象 (页 Er

38、ror! Not a valid link.) ),所以如 果需要,系 统将在组件 之间插入空 填充字段。 有时也将字 段串称为记 录或结构。DATA: BEGIN OF ADDRESS, NAME(20) TYPE C, STREET(20) TYPE C, NUMBER TYPE P, POSTCODE(5) TYPE N, CITY(20) TYPE C, END OF ADDRESS.该示例定义 了一个长度 为 73 的字段串 ADDRESS。 可以通过 ADDRESS-NAME、 ADDRESS-STREET 等定址组件 。可以将长字 段串的声明 收集在包括 程序中(参 见 包含程序

39、 )。但是, 如果频繁使 用该数据结 构,则最好 将它们保存 在 ABAP/4 词典中。关 于该主题的 详细信息, 参见文档 ABAP/4 词典 (页 Error! Not a valid link.) 。16CONSTANTS 语句如果在程序 中频繁使用 某常量,可 以利用 常量 语句,将其 声明为具有 固定值的变 量,如下所 示:语法CONSTANTS .要将字段串 定义为常量 ,请写:CONSTANTS: BEGIN OF , , . END OF .这些语句的 参数与 DATA 语句的基本 格式 (页 ) 和 用于字段串 的 DATA 语句 (页 ) 中说明的 DATA 语句的参数 相

40、同。有关 说明请参阅 这些主题。对于 常量 语句必须使 用 参数,而在 DATA 语句中该参 数是可选的 。利用 参数指定的 初始值,在 程序的执行 期间不能更 改。CONSTANTS: MYNAME(10) VALUE Fred, BIRTHDAY TYPE D VALUE 19600110, ZERO TYPE I VALUE IS INITIAL.示例的最后 一行说明了 变量 IS INITIAL 的用途。由 于对于 常量 语句,参数 VALUE 是必须的, 所以可以使 用 IS INITIAL 给常量分配 默认值。CONSTANTS: BEGIN OF MYADDRESS, NAME(

41、20) TYPE C VALUE Fred Flintstone, STREET(20) TYPE C VALUE Cave Avenue, NUMBER TYPE P VALUE 11, POSTCODE(5) TYPE N VALUE 98765, CITY(20) TYPE C VALUE Bedrock, END OF MYADDRESS.该示例定义 了常量字段 串 MYADDRESS。 可以利用 MYADDRESS-NAME、 MYADDRESS-STREET 等定址组件 ,但不能更 改组件。17STATICS 语句如果要在过 程(子程序 或功能模块 - 详细信息, 参见 模块化 ABAP/4 程序)的运行时 间之外仍保 留某变量的 数值,可以 在该过程中 利用 STATICS 语句定义该 变量。STATICS 语句是 DATA 语句的变异 。语法如下 :语法STATICS .要在过程中 将字段串定 义为静态有 效,请写:STATICS: BEGIN OF , , . END OF .这些语句的 参数与 DATA 语句的基本 格式 (页 ) 和 用于字段串 的 DATA 语句 (页 ) 中说明的 DATA 语句的参数 相同。有关 说明请参阅 这些主题。如果在程序 中多次调用 某过程,对

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号