ABAP基础知识完整版Word下载.docx

上传人:b****6 文档编号:16826101 上传时间:2022-11-26 格式:DOCX 页数:33 大小:36.66KB
下载 相关 举报
ABAP基础知识完整版Word下载.docx_第1页
第1页 / 共33页
ABAP基础知识完整版Word下载.docx_第2页
第2页 / 共33页
ABAP基础知识完整版Word下载.docx_第3页
第3页 / 共33页
ABAP基础知识完整版Word下载.docx_第4页
第4页 / 共33页
ABAP基础知识完整版Word下载.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

ABAP基础知识完整版Word下载.docx

《ABAP基础知识完整版Word下载.docx》由会员分享,可在线阅读,更多相关《ABAP基础知识完整版Word下载.docx(33页珍藏版)》请在冰豆网上搜索。

ABAP基础知识完整版Word下载.docx

小数位数

exp:

DATA:

COUNTER 

TYPEPDECIMALS3.

NAME(10)TYPECVALUE'

DELTA'

.

S_DATE 

TYPEDVALUE'

19991203'

BEGINOFPERSON,

NAME(10)TYPEC,

AGE 

TYPEI,

WEIGHT 

TYPEDECIMALS2,

ENDOFPERSON.

另外,有关DATA声明的指令还有:

CONSTANTS(声明常数)、STATICS(临时变量声明).

CONSTANTS 

PI 

TYPE 

DECIMALS 

VALUE 

'

3.14159'

STATICS关键字

声明的变量仅在目前的程序中使用,结束后会自动释放

语法:

STATICS<

c>

][<

]

系统专用变量说明

系统内部专门创建了SYST这个STRUCTURE,里面的栏位存放系统变量,常用的系统变量有:

SY-SUBRC:

系统执行某指令后,表示执行成功与否的变量,'

0'

表示成功

SY-UNAME:

当前使用者登入SAP的USERNAME;

SY-DATUM:

当前系统日期;

SY-UZEIT:

当前系统时间;

SY-TCODE:

当前执行程序的Transactioncode

SY-INDEX:

当前LOOP循环过的次数

SY-TABIX:

当前处理的是internaltable的第几笔

SY-TMAXL:

Internaltable的总笔数

SY-SROWS:

屏幕总行数;

SY-SCOLS:

屏幕总列数;

SY-MANDT:

CLIENTNUMBER

SY-VLINE:

画竖线

SY-ULINE:

画横线

TYPE关键字

用来指定资料型态或声明自定资料型态

Example:

TYPES:

BEGIN 

OF 

MYLIST,

NAME(10) 

C,

NUMBER 

I,

END 

MYLIST.

DATA 

LIST 

LIKE关键字

跟TYPE关键字使用格式相同,如

TRANSCODE 

LIKE 

SY-TCODE.

不同的是LIKE用在已有值的资料项,如系统变量,而TYPE关键字则是用在指定资料型态。

TABLES关键字

用来声明TableWorkArea的数据,对应至ABAP/4资料文件(DictionaryObject),由SQL指令加载所需数据

TABLES<

dbtab>

Example:

TABLES:

SPFL.

SELECT*FROMSPFL.

WRITE:

SPFL-MANDT,SPFL-CARRID,SPFL-CONNECTION.

ENDSELECT.

从ABAP/4Dictionary的SPFL档载入MANDT,CARRID,CONNECTION三个字段至SPFL此TableWorkArea

输出

一.WRITE语句

ABAP/4用来在屏幕上输出资料的指令是WRITE指令,例如:

WRITE:

USERNAMEIS:

SY-UNAME.

二.指定屏幕输出位置

指定输出位置的语句格式为:

[AT][/][<

pos>

][(<

len>

)]资料项[<

par>

其中:

/:

在下一行输出

:

指定输出的行号;

(<

):

指定输出位数(长度)

指定显示格式参数,参数有:

LEFT-JUSTIFIED 

资料*左对齐

CENTERED 

资料*中间对齐

RIGHT-JUSTIFIED资料*右对齐

UNDER<

g>

正对在资料项<

的下面显示

NO-GAP 

紧接着显示,不留空格

USINGEDITMASK<

m>

使用内嵌子元显示,如12:

20

USINGNOEDITMASK:

不使用内嵌子元

NO-ZER 

数字前面0的部分不显示

NO-SIGN:

不显示正负号

DECIMALS<

d>

显示<

位小数

EXPOENT<

e>

F(浮点数)指数的值

ROUND<

r>

四舍五入至小数点后<

CURRENCY<

币别显示

DD/MM/YY:

日期显示格式

MM/DD/YY:

YY/MM/DD:

YY/DD/MM

MM/DD/YYYY:

DD/MM/YYYY

YYYY/MM/DD:

YYYY/DD/MM:

例如1:

/10(6)'

ABCDEFGHIJK'

输出结果为:

ABCDEF

例如2:

DATA:

XTYPEIVALUE'

11:

20:

30'

A(5) 

TYPECVALUE'

AB 

CDE'

/XUSINGEDITMASK'

__:

__'

$___,___'

/YNO-GAP.

11:

30

$112,030

例如3:

LENTYPEIVALUE10,

POSTYPEIVALUE11,

TEXT(10) 

VALUE'

1234567890'

WRITE'

Thetext------------appearsinthetext.'

WRITEATPOS(LEN)TEXT.

WRITETO语句的基本形式

要将值(文字)或源字段内容写入目标字段,可以使用WRITETO语句:

语法

WRITE<

F1>

TO<

F2>

option>

].

DATA:

NUMBERTYPEFVALUE'

4.3'

TEXT(10),

FLOATTYPEF,

PACK 

TYPEPDECIMALS1.

WRITENUMBER.

WRITENUMBERTOTEXTEXPONENT2.

WRITE/TEXT.

WRITENUMBERTOFLOAT.

WRITE/FLOAT.

WRITENUMBERTOPACK.

WRITE/PACK.

MOVENUMBERTOPACK.

SOURCE'

SOURCE(10)VALUE'

Antony'

TARGET(10).

...

WRITE(NAME)TOTARGET.

TARGET.

exp:

COUNTERTYPEI.

COMPUTECOUNTER=COUNTER+1.

COUNTER=COUNTER+1.

ADD1TOCOUNTER.

在此,三条运算语句进行相同算术运算

输出屏幕上的线和空行

用下列语法,可以在输出屏幕上生成水平线:

ULINE[AT[/][<

][(<

)]].

它等同于

WRITE[AT[/][<

)]]SY-ULINE.

AT后的格式规范,与在在屏幕上定位WRITE输出(页28)中为WRITE语句说明的格式规范完全一样。

如果没有格式规范,系统则开始新的一行,并用水平线填充该行。

否则,只按指定输出水平线。

生成水平线的另一种方法,是在WRITE语句中键入恰当数量的连字符,如下所示:

)]]'

-----...'

垂直线

用下列语法,可以在输出屏幕上生成垂直线:

]]SY-VLINE.

]]'

|'

空行

用下列语法,可以在输出屏幕上生成空行:

SKIP[<

n>

该语句从当前行开始,在输出屏幕上生成<

个空行。

如果没有指定<

的值,就输出一个空行。

要将输出定位在屏幕的指定行上,请使用:

SKIPTOLINE<

该语句允许将输出位置向上或向下移动。

四.显示图示:

symbol-name>

ASSYMBOL.

icon-name>

ASICON.

例如:

INCLUDE 

SYMBOL>

ICON>

/'

Phonesymbol:

SYM_PHONEASSYMBOL.

AlarmIcon:

ICON_VOICE_OUTPUTASICON.

要查看系统所提供有那些符号及图示,可选择'

EDIT'

下的'

InsertStatement'

选择'

Write'

接下来选择要查看的群组,如SYMBOL或ICON,接下来按'

Display'

即可.

一.InternalTable的声明

ABAP/4中的InternalTable是一种DataStructure,类似于其他语言中的STRUTURE,它可以由几个不同类型的栏位(field)组成,用来表示具有不同属性的某一事物,单独一笔资料表示某个事物,多笔资料表示具有相同属性的多个事物.

Internaltable的定义有以下几种格式:

格式一. 

BEGINOF<

internaltable>

OCCURS 

field1>

TYPE<

type1>

field2>

type2>

field3>

type3>

… 

]

ENDOF 

语法:

f>

[WITH 

HEADER 

LINE]

VECTOR 

10 

WITH 

LINE.

格式二. 

workarea>

ENDOF<

TYPES<

OCCURS<

格式三. 

INCLUDESTRUCTURE<

tablename>

LIKE<

TYPESVECTORTYPEIOCCURS10.

TYPES:

BEGINOFLINE,

COLUMN1TYPEI,

COLUMN2TYPEI,

COLUMN3TYPEI,

ENDOFLINE.

TYPESITABTYPELINEOCCURS10.

BEGINOFDEEPLINE,

TABLE1TYPEVECTOR,

TABLE2TYPEITAB,

ENDOFDEEPLINE.

TYPESDEEPTABLETYPEDEEPLINEOCCURS10.

本示例创建与上例相同的内表数据类型(VECTOR和ITAB)。

然后创建数据类型DEEPLINE作为字段串,包含这些内表作为组件。

通过该字段串,数据类型DEEPTABLE被创建为内表。

因此该内表的元素本身就是内表。

DATATAB1TYPEITAB.

DATATAB2LIKETAB1WITHHEADERLINE.

同创建内表数据类型(页99)中所示,该示例创建数据类型ITAB作为内表。

通过使用DATA语句的TYPE参数引用ITAB,使数据对象TAB1与ITAB结构相同。

通过使用DATA语句的LIKE参数引用TAB1,使数据对象TAB2结构相同。

创建的TAB2带表头行。

因此,可以在程序中使用TAB2-COLUMN1、TAB2-COLUMN2和TAB2-COLUMN3等定位表格工作区域TAB2。

DATAFLIGHT_TABLIKESFLIGHTOCCURS10.

本示例创建数据对象FLIGHT_TAB,其结构与数据库表格SFLIGHT相同。

本示例介绍如何采用两种不同的步骤创建同一内表。

TYPESVECTOR_TYPETYPEIOCCURS10.

DATAVECTORTYPEVECTOR_TYPEWITHHEADERLINE.

在此创建一个内表数据类型VECTOR_TYPE,其行包含首先创建的基本类型I字段。

然后,通过引用VECTOR_TYPE创建数据对象VECTOR。

通过使用WITHHEADERLINE选项还创建表格工作区域VECTOR。

在这种情况下,表格工作区域包含一种类型I字段,可以通过名称VECTOR定位。

DATAVECTORTYPEIOCCURS10WITHHEADERLINE.

在这种情况下,通过直接在DATA语句中使用OCCURS选项创建完全一样的数据类型VECTOR。

1.TYPEStype.

2.TYPEStype(len).

3.TYPES:

BEGINOFstructype 

...

ENDOFstructype.

4.TYPESitabtype{TYPEtabkindOFlinetypeLIKEtabkindOFlineobj}

[WITH[UNIQUE|NON-UNIQUE]keydef][INITIALSIZEn].

5.TYPESitabtypeTYPERANGEOFtype.

TYPESitabtypeLIKERANGEOFf.

6.TYPESitabtype{TYPElinetype|LIKElineobj}OCCURSn.

APPENDLINE

格式:

APPEND<

举例一:

(使用WORKAREA)

DATA:

COL1TYPEI,

COL2TYPEI,

DATAITABLIKELINEOCCURS10.

DO2TIMES.

LINE-COL1=SY-INDEX.

LINE-COL2=SY-INDEX**2.

APPENDLINETOITAB.

ENDDO.

LOOPATITABINTOLINE.

WRITE:

/LINE-COL1,LINE-COL2.

ENDLOOP.

举例二(不使用WORKAREA)

BEGINOFITABOCCURS10,

ENDOFITAB.

ITAB-COL1=SY-INDEX.

ITAB-COL2=SY-INDEX**2.

APPENDITAB.

LOOPATITAB.

/ITAB-COL1,ITAB-COL2.

COL1TYPEC,

DO3TIMES.

APPENDINITIALLINETOITAB.

ITAB-COL1=SY-INDEX.ITAB-COL2=SY-INDEX**2.

/ITAB-COL1,ITAB-COL2.

举例三.(加入另一个Internaltable的元素)

格式:

APPENDLINESOF<

itab1>

[FROM<

n1>

][TO<

n2>

]TO<

itab2>

将<

的元素加入至<

中,可选取自<

至<

的范围.

APPENDLINESOFITABTOJTAB.

COLLECTLINE

COLLECT指令也是将元素加入Internaltable中,与APPEND的区别是:

COLLECT指令在非数值栏位相同的情况下,将数值栏位汇总.

格式:

COLLECT[<

INTO]<

itab>

BEGINOFITABOCCURS3,

COL1(3) 

TYPEC,

COL2 

ITAB-COL1='

ABC'

ITAB-COL2=10.

COLLECT 

ITAB.

XYZ'

ITAB-COL2=20.

ITAB-COL2=80.

此时,internaltable中放的是2笔数据,分别为:

ITAB-COL1 

ITAB-COL2

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

当前位置:首页 > 高等教育 > 管理学

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

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