第三章 声明数据Word文档格式.docx

上传人:b****1 文档编号:922549 上传时间:2023-04-29 格式:DOCX 页数:36 大小:38.72KB
下载 相关 举报
第三章 声明数据Word文档格式.docx_第1页
第1页 / 共36页
第三章 声明数据Word文档格式.docx_第2页
第2页 / 共36页
第三章 声明数据Word文档格式.docx_第3页
第3页 / 共36页
第三章 声明数据Word文档格式.docx_第4页
第4页 / 共36页
第三章 声明数据Word文档格式.docx_第5页
第5页 / 共36页
第三章 声明数据Word文档格式.docx_第6页
第6页 / 共36页
第三章 声明数据Word文档格式.docx_第7页
第7页 / 共36页
第三章 声明数据Word文档格式.docx_第8页
第8页 / 共36页
第三章 声明数据Word文档格式.docx_第9页
第9页 / 共36页
第三章 声明数据Word文档格式.docx_第10页
第10页 / 共36页
第三章 声明数据Word文档格式.docx_第11页
第11页 / 共36页
第三章 声明数据Word文档格式.docx_第12页
第12页 / 共36页
第三章 声明数据Word文档格式.docx_第13页
第13页 / 共36页
第三章 声明数据Word文档格式.docx_第14页
第14页 / 共36页
第三章 声明数据Word文档格式.docx_第15页
第15页 / 共36页
第三章 声明数据Word文档格式.docx_第16页
第16页 / 共36页
第三章 声明数据Word文档格式.docx_第17页
第17页 / 共36页
第三章 声明数据Word文档格式.docx_第18页
第18页 / 共36页
第三章 声明数据Word文档格式.docx_第19页
第19页 / 共36页
第三章 声明数据Word文档格式.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第三章 声明数据Word文档格式.docx

《第三章 声明数据Word文档格式.docx》由会员分享,可在线阅读,更多相关《第三章 声明数据Word文档格式.docx(36页珍藏版)》请在冰点文库上搜索。

第三章 声明数据Word文档格式.docx

这与其它编程语言如C、FORTRAN或PASCAL不同,在这些语言中用户可以声明数据对象,但仅限于预定义的数据类型。

在ABAP/4中,可以使用与标准数据声明相似的语法处理数据类型,而与数据对象无关。

特殊程序以外的数据类型集中存储也是可能的。

下列列表是数据类型和对象主要特征的概述:

_数据类型(基本的或结构化的)

-数据类型是纯粹的说明。

-没有与数据类型相关联的内存。

-数据类型描述数据对象的技术属性。

-数据类型是数据对象的属性并与数据对象联系紧密。

_数据对象(文字、变量、常量等):

-数据对象是程序在运行时使用的物理单元。

-每个数据对象都有分配给它的特定数据类型。

-每个数据对象占据一些内存空间。

-ABAP/4根据数据对象的数据类型处理数据对象。

在程序中,必须声明要使用的全部数据对象。

声明过程中,必须给数据对象分配属性。

其中最重要的属性是数据类型。

在ABAP/4中,可以使用与其它程序语言相似的预定义的数据类型,或者使用用户定义的数据类型。

由于ABAP/4中用户定义的数据类型允许编程具有非常大的灵活性,所以提供了强有力的工具。

它们的范围从基本类型(例如,给定长度的字符串)到非常复杂的结构(例如,嵌套表)。

将用户定义的数据类型分配给数据对象使您能精确处理需要的数据对象。

可以按使用预定义数据类型的方式使用用户定义的数据类型。

可以在程序内对它们进行局部明,或在ABAP/4词典中对它们进行全局保存。

有三个层次级的数据类型和对象:

_在ABAP/4词典中定义的独立于程序的数据

_在一个程序中全局使用的内部数据

_在过程(子程序和功能模块)中局部使用的数据

在本指南的相应章节将了解到有关这些层次级的详细内容。

3数据类型

在ABAP/4中按结构和定义对数据类型分类。

数据类型是:

_基本的(非结构化的)或结构化的

_预定义的或用户定义的

因此,有四类数据类型,在下表中列出。

预定义数据类型的名称是固定的。

用户定义的数据类型的名称由程序员在程序中定义。

ABAP/4中的数据类型

预定义的

用户定义的

基本的

C、D、F、I、N、P、T和X:

ABAP/4包含8个预定义基本数据类型。

基本数据类型-预定义的(页3)

用户定义的基本数据类型基于预定义基本数据类型。

基本数据类型-用户定义的(页5)

结构化的

TABLE:

该预定义的结构化的数据类型仅用于形式参数和字段符号的键入。

字段串和内表:

这些结构化的数据类型可以用于数据对象并且是用户定义的。

结构化数据类型(页5)

使用数据时,了解数据类型是否兼容是很重要的。

关于该主题的详细信息,参见

3基本数据类型-预定义的

下表总结了ABAP/4中预定义的基本数据类型(有效大小以字节为单位):

ABAP/4数据类型

数据类型

默认大小

有效大小

初始值

说明

C

1

1-65535

SPACE

文本、字符

(字母数字字符)

D

8

'

00000000'

日期

(格式:

YYYYMMDD)

F

浮点数

I

4

整型(整数)

N

00...0'

数字文本

P

1-16

压缩号

T

6

000000'

时间

HHMMSS)

X

X'

00'

十六进制

在各方面,数据类型D、F、I和T都是预定义的,但数据类型C、N、P和X可以有附加说明。

例如,可以在程序中定义大小。

关于数字数据类型I、F和P的详细信息,参见数字数据类型(页4)。

4数字数据类型

ABAP/4支持三种数字数据类型。

它们是:

_类型I的整型(整数)

_类型P的压缩号

_类型F的浮点数

类型I数据

类型I数据的数值范围是-2**31到2**31-1并且仅包括整数。

对算术运算的非整型结果(如分数)进行四舍五入,而不是截断。

类型I数据可用于计数器、项目号、索引和时间期段等。

类型P数据

类型P数据允许在小数点后有数字。

类型P数据的数值范围取决于大小和小数点后的位数。

有效大小可以是从1到16字节的任何值。

将两个十进制数字压缩到一个字节,而最后一个字节包含一个数字和符号。

在小数点后最多允许14个数字。

关于定义小数点后位数的详细信息,参见DATA语句的基本格式(页12)。

使用类型P数据时,最好将程序属性设置为“定点算法”(参见指定程序属性(页Error!

Notavalidlink.))。

否则,将类型P数字作为整型对待。

类型P数据可用于如距离、重量和钱数等数值。

类型F数据

对于正数和负数,类型F数的数值范围是1x10**-307到1x10**308,包括0(零)。

精确范围近似为15位十进制数,这取决于硬件平台的浮点算法。

由于是在内部将类型F数据转换为二进制系统,因此可能出现舍入误差。

尽管ABAP/4处理器试图将这些影响减至最小,但是如果要求高精度,则不应该使用类型F数据。

而应代之以类型P数据。

如果需要大的数值范围,而且舍入误差不重要,则可以使用类型F数据。

因为对类型I和F字段的算术运算与机器码语句关系更紧密,所以用类型I和类型F字段的计算比用类型P字段的计算要快;

同时对P字段的运算要求更多的软件支持。

尽管如此,可能仍必须使用类型P数据以满足精度或数值范围的要求。

类型N数据不包含数值。

虽然由数字组成,但这些数字不用于计算。

科目号和邮编是典型的类型N字段。

5基本数据类型-用户定义的

用户定义的基本数据类型完全是以预定义的基本数据类型为基础的。

要定义自己的基本数据类型,请使用TYPES语句(参见TYPES语句(页18))。

用户定义的基本数据类型使程序的阅读和维护更加容易:

_例如,如果在程序中经常需要使用某数据类型集,通过为类型定义创建包括程序(参见包含程序),或者在ABAP/4词典的类型组中定义数据类型(参见使用类型组(页23)),可以确保总是使用相同的数据类型。

_若要使数据类型更易于理解和识别,可以赋予它们描述性的名称。

_在将用户定义的数据类型分配给几个数据对象之后,通过更改TYPES语句中数据类型的定义,可以用一个操作更改所有这些数据对象的数据类型。

TYPES:

NUMBERTYPEI,

LENGTHTYPEPDECIMALS2,

CODE(3)TYPEC.

.......

DATA:

NO_FLIGHTSTYPENUMBER,

NO_PASSENGERSTYPENUMBER,

DISTANCETYPELENGTH,

HEIGHTTYPELENGTH,

....

CITY_CODETYPECODE,

COUNTRY_CODETYPECODE,

......

示例中,定义了名为NUMBER的数据类型。

该数据类型除拥有不同名称以使程序更易于阅读外,与预定义的数据类型I相同。

该示例中还定义了数据类型LENGTH,该数据类型是以预定义的基本数据类型P为基础的。

为LENGTH定义了给定数目的小数位。

例如,如果需要更改长度规格的精度,仅须在程序中更改TYPES语句。

还定义了第三种数据类型CODE。

CODE是以预定义的类型C为基础的,具有给定长度3。

5结构化数据类型

通常情况下,ABAP/4程序中的结构化数据类型是用户定义的。

在ABAP/4中,没有可用的预定义结构化数据类型,但下列例外:

可以使用预定义的一般表类型TABLE,以便将具有一般行结构的内表传递到子程序(参见键入形式参数),或者键入字段符号(参见键入字段符号)。

有两种结构化数据类型:

_字段串

字段串是其它数据类型的集合。

字段串的组件可以是字段串本身或内表。

可以用TYPES语句或DATA语句(参见用于字段串的DATA语句(页15))定义字段串。

通过DATA语句不能定义独立数据类型,而可以定义具有结构化类型的数据对象。

_内表

内表由相同类型的几行组成。

与字段串仅“水平地”扩展不同,内表还“垂直地”扩展。

可以用TYPES或DATA语句的OCCURS参数定义内表(参见创建内表(页Error!

由于字段串能包含任何类型的组件,而且可以为任何类型定义内表,所以自定义数据结构可能变得非常复杂。

结构化数据类型示例

下列是ABAP/4中结构化数据类型的示例

a)由一系列基本数据类型组成的字段串(平铺结构,仅“水平”)

b)为基本字段定义的内表(基本数据类型的动态排列,仅“垂直”)

c)为简单字段串定义的内表(带有行和列的表)

d)包含子结构的结构(嵌套结构)

e)结构,该结构包含内表作为组件(垂直结构)

f)为包含结构化组件的字段串定义的内表(垂直行类型的表)

g)为字段串定义的内表,该字段串包含内表作为组件

7数据类型的兼容性

使用数据时,有时需要将数据从一种类型转换到另一种类型。

要作到这一点,数据类型必须是可转换的(参见类型转换(页Error!

可转换性的一个重要前提就是兼容性。

如果两个数据类型具有相同的技术属性,则它们是兼容的。

不同ABAP/4数据类型的后果如下:

基本数据类型

如果在类型、大小和(对于类型P)小数位等方面是相同的,则基本数据类型和其它基本数据类型是兼容的。

基本数据类型与结构化数据类型相互之间不兼容。

结构化数据类型

对于结构化数据类型,必须区分字段串和内表。

字段串

如果字段串的结构相同而且组件兼容,则字段串与其他字段串兼容。

这意味着从基本字段构造字段串,以便从子结构形成整个结构的方式必须相同,而且它们的基本组件必须相互兼容。

如果两个字段串由顺序相同的基本字段组成,但这些字段组合成不同的子结构,则字段串不兼容。

字段串与基本数据类型和内表不兼容。

内表

如果行类型兼容,则内表与其他内表兼容。

内表的兼容性不取决于行数。

内表与字段串和基本数据类型不兼容。

在上述情况下,由于在ABAP/4程序运行期间出现的每个数据类型是完全确定的(例如,数据类型C的长度总是已定义并已知的),所以数据类型之间的兼容性总是涉及到已完全指定的数据类型。

该兼容性是对称的。

在形式参数和字段符号键入的方面,使用有点不同的、非对称的兼容性(参见键入形式参数和键入字段符号)。

7数据对象

在ABAP/4中,可以使用几种数据对象,如下所示:

_内部数据对象

创建内部数据对象供在特定的程序中使用。

在该程序之外无效。

内部数据对象包括:

_外部数据对象

外部数据对象独立于程序。

不能直接使用外部数据对象,但能将其复制到内部数据对象,并在完成后将它们回写。

可以在整个系统环境中全局使用外部数据对象。

ABAP/4将外部数据对象保存在ABAP/4词典中定义的表中。

要从程序内部访问该数据,请用TABLES语句(参见TABLES语句(页17))在程序中声明该表。

_系统定义的数据对象

除用户定义的数据对象外,还有一些数据对象由系统自动定义。

_特殊数据对象

ABAP/4还包括一些具有特殊特征的数据对象,即:

-参数

参数是链接到选择屏幕的变量。

参数可以在程序启动后接受数值。

-选择标准

选择标准是用于指定数值范围的特殊内表。

它们也与选择屏幕相链接。

关于这些数据对象及其声明的详细信息,参见使用选择屏幕。

8文字

文字是固定值。

ABAP/4区分文本文字和数字文字。

文本文字

文本文字是单引号内的字母数字字符序列。

AntonySmith'

69190Walldorf'

文本文字最长可达254个字符。

如果某文本文字包含引号,必须重复引号,以使系统能够将内容识别为文本文字而不是文字的结尾。

WRITE:

/'

ThisisJohn'

sbicycle'

.

该语句生成下列输出:

sbicycle

要确保程序仍易于维护并且独立于语言,请勿在程序的最终版本中显式地使用文本文字。

而应将其外部地定义为文本符号。

文本符号是ABAP/4文字基本概念的一部分。

关于这方面的详细信息,以及关于如何创建和使用文本符号的详细信息,参见处理文本摘要(页Error!

Notavalidlink.)。

数字文字

数字文字是可能包含前导符号的数字序列。

可包含多达15个数字。

123

-93

+456

如果需要非整型数值或较长的数字,则必须使用文本文字,该文本文字自动转换到正确的类型。

(详细信息,参见类型转换(页Error!

12345678901234567890'

+0.58498'

-8473.67'

同样,请使用文本文字表示浮点数值。

必须按照下列格式:

[<

mantissa>

][E][<

exponent>

]'

-12.34567'

-765E-04'

1234E5'

+12E+23'

+12.3E-4'

1E160'

9变量

变量用于以一定名称按一定格式保存并参考数据。

变量可能在下列方面不同

_名称

_类型

_长度

_结构

可以利用DATA语句在程序中声明变量(参见DATA语句(页11))。

S1TYPEI,

S2TYPEI,

SUMTYPEI.

....

SUM=S1+S2.

10常量

常量是包含值的数据对象,该值是在初始化时确定的。

在程序执行期间不能更改常量。

在程序中利用常量语句声明常量(参见CONSTANTS语句(页16))。

如果试图在程序的其它地方更改常量,在语法检查或运行期间,系统将输出错误消息。

也可以在ABAP/4词典的类型组中声明常量(参见使用类型组(页23))。

如果在程序中频繁地需要某特殊数值,请使用常量。

在这种情况下,请勿使用文字。

如果需要修改该值,只须更改声明。

CONSTANTSPITYPEPDECIMALS10VALUE'

3.1415926536'

10系统定义的数据对象

启动ABAP/4程序时,一些数据对象自动可用而无需声明。

系统定义的数据对象包括:

_SPACE

数据对象SPACE是类型C的常量。

长为一个字符并包含空格。

由于SPACE是常量,所以不能更改。

_系统字段

所有系统字段都有格式为SY-<

name>

的名称,其中<

指定单个字段。

若要在ABAP/4编辑器中显示可用系统字段的列表,请在命令行中键入“SHOWSY”(请选择“编辑->

其它功能->

命令输入”)。

该列表还包括系统字段的数据类型。

下面是系统字段示例:

_SY-SUBRC返回代码值(0,如果操作成功)

_SY-UNAME用户的登录名

_SY-DATUM当前日期

_SY-UZEIT当前时间

_SY-TCODE当前事务

系统字段是变量并且可以由程序更改。

但是,SAP不建议这样做,因为在继续执行程序时,将失去保存在这些字段中的信息。

11创建数据对象和数据类型

本节说明如何在程序中创建数据对象和数据类型。

除文字外,还必须利用声明语句声明每个数据对象。

在声明语句中,必须指定所有数据对象的数据类型。

要做到这一点,可以使用数据类型(页3)中说明的任何数据类型。

在声明语句中定义对象的数据类型,有下列方式之一

_直接地,使用<

declaration>

...TYPE<

datatype>

_间接地,使用<

LIKE<

dataobject>

对下面列出的大多数数据声明语句,TYPE和LIKE是可选的附加项。

利用TYPE选项,可以直接将数据类型<

分配给已声明的数据对象。

利用LIKE选项,可以将另一个数据对象<

的数据类型分配给已声明的数据对象。

这意味着间接引用数据类型。

对数据对象和数据类型有独立的名称空间。

这意味着一个名称既可以是数据类型名,同时又可以是数据对象名。

在程序中,可以使用数据声明语句静态地定义数据对象,或者利用操作语句动态地创建数据对象。

ABAP/4包括下列用于静态地创建数据对象和数据类型的关键字:

DATA语句(页11)

用于创建变量

CONSTANTS语句(页16)

用于创建常量

STATICS语句(页17)

用于创建变量,这些变量在程序运行期间一直存在,但仅在过程中可见

TABLES语句(页17)

用于创建表工作区

TYPES语句(页18)

用于创建用户定义的数据类型

在内表环境中,可以使用操作语句APPEND、COLLECT和INSERT以动态地创建内表的行(参见填充内表(页Error!

在选择屏幕环境中,可以使用附加语句PARAMETERS和SELECT-OPTIONS以创建带特殊功能的数据对象(参见使用选择屏幕)。

11DATA语句

使用DATA语句定义局部和全局变量。

关于局部和全局变量间区别的详细信息,参见在调用程序和子系统之间传递数据。

DATA语句有一个基本格式和三个主要变式,如下所示:

_用于字段串的DATA语句

_用于内表的DATA语句

_用于公用内存块的DATA语句。

下列内容说明DATA语句的基本格式

下列内容说明用于字段串的DATA语句

由于内表性质的复杂性,将用一个独立章节来说明该主题。

关于定义内表的详细信息,参见创建和处理内表(页Error!

由于声明用于几个程序的公用内存块与外部子程序有关,所以将在涉及子程序的章节中解释该主题(参见声明数据作为通用部分)。

12DATA语句的基本格式

可以在程序中使用DATA语句的基本格式以定义内部变量。

语法如下:

语法

DATA<

f>

[(<

length>

)]<

type>

[<

value>

][<

decimals>

].

基本格式中,关键字DATA有下列参数:

参数

用途

命名变量(页12)<

指定变量的数据类型和长度(页13)<

<

指定初始值(页14)<

指定小数位数(页15)<

12命名变量

变量名<

最长可达30个字符。

除下面列出的这些字符外,可以使用任何字母数字字符。

_请勿使用下列字符

-加号+

-句点.

-逗号,

-冒号:

-圆括号()

_请勿创建完全由数字字符组成的名称

ABAP/4包含具有保留名(不允许使用这些保留名)的预定义数据对象(参见系统定义的数据对象(页10))。

另外,如果变量名与引导语句的关键字的参数相混淆,则请勿在语句中使用该变量名。

书写DATA语句时,请遵循这些指南:

_使用不要求附加说明的有意义的字

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2