我的SAPABAP基础语法学习笔记.docx

上传人:b****5 文档编号:2895543 上传时间:2022-11-16 格式:DOCX 页数:40 大小:87.74KB
下载 相关 举报
我的SAPABAP基础语法学习笔记.docx_第1页
第1页 / 共40页
我的SAPABAP基础语法学习笔记.docx_第2页
第2页 / 共40页
我的SAPABAP基础语法学习笔记.docx_第3页
第3页 / 共40页
我的SAPABAP基础语法学习笔记.docx_第4页
第4页 / 共40页
我的SAPABAP基础语法学习笔记.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

我的SAPABAP基础语法学习笔记.docx

《我的SAPABAP基础语法学习笔记.docx》由会员分享,可在线阅读,更多相关《我的SAPABAP基础语法学习笔记.docx(40页珍藏版)》请在冰豆网上搜索。

我的SAPABAP基础语法学习笔记.docx

我的SAPABAP基础语法学习笔记

ABAP基础学习笔记

学前说明:

1.ABAP/4每条语句以句号结束;

2.ABAP/4中象=,>,<,+,-,*,/等符号左右都需要有至少一个空格,否则报错;

3.整行注释用’*’号,星号要放当前行的第一个才有效,注释本行后面部分用’”’号;

一、基本数据类型:

TypeLengthRangeInitialValueDescription

C11-65535ByteSpace字符串数据,如’Program’

D88Byte‘00000000’日期数据,格式为YYYYMMDD

F88Byte0浮点数

I4-2^31至2^31-10整数

N11-65535Byte‘00…0’数值所组成的字符串

P81-16Byte0Packed数,用在小数点数

T66Byte‘000000’时间数据,格式为HHMMSS

X11-65535ByteX’00’16进位数

例:

C:

字符(串),长度为1,最大有65535BYTES,初始值为:

space,例:

‘M’;

D:

日期,格式为YYYYMMDD,最大是’9999/12/31’,例:

’1999/12/03’.

F:

浮点数,长度为8,例如:

4.285714285714286E-01

I:

整数范围:

-2^31~2^31-1

N:

数值组成的字符串:

011,‘302’.

P:

packed数,用于小数点数值,例如:

12.00542;

T:

时间,格式为HHMMSS,例如:

’14:

03:

00’,’21:

30:

39’.

X:

16进制数,例如‘1A03’.

二、变量的声明:

变量宣告包含name,length,type,structure等,语法如下:

DATA[][][]

其中:

[]里的内容表示可选项。

:

变量名称,最长30个字符,不可含有+,.,:

()等字符;

:

长度及变量类型;

:

初值

:

小数位数

例如:

DATA:

C1TYPEC,

INT1TYPEIVALUE1,

TEMPTYPEPDECIMAL2.

DATA后面的冒号表示后面声明多个变量,如果只有一个变量也可以写成:

DATAC1TYPEC.

TYPE也是用来声明变量的,与DATA差不多,不过TYPE不能直接给变量赋值。

例如:

TYPES:

INT1TYPEI.(不能VALUE1)

LIKE的使用:

TYPESTEMPLIKESY-TCODE.(即声明变量TEMP的类型与SY-TCODE的类型一样,当你不知道后面变量是什么类型时好用)

STRUCTURE

DATA:

BEGINOFMAN,

NAME(20)TYPEC,

PHONE(11)TYPEN,

ENDOFMAN.

结构在后面说到的内表里有说到。

常量的声明:

CONSTANTS临时变量的声明:

STATICS

例:

CONSTANTSP1TYPEPDECIMALS5VALUE‘3.14159’.

三、系统专用变量说明:

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

SPACE:

空格。

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:

画横线

还有其他系统变量,可以输入事务代码:

SE11查询系统表SYST

四:

WRITE用于在屏幕输出内容(相当于JAVA里的system.out.print())。

例如:

WRITE:

‘USERNAMEIS:

’,SY-UNAME.

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

WRITE:

[AT][/][][()]资料项[]

其中:

/:

表示在下一行输出

:

指定输出的列号(跟输出多少个空格有点像);

):

指定输出位数(长度)

:

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

LEFT-JUSTIFIED资料靠左对齐

CENTERED数据靠中间对齐

RIGHT-JUSTIFIED资料靠右对齐

UNDER正对在资料项的下面显示

NO-GAP紧接着显示,不留空格

USINGEDITMASK:

使用给定格式显示,如12:

03:

20

USINGNOEDITMASK:

不使用内嵌子元

NO-ZERO:

数字前面0的部分不显示

NO-SIGN:

不显示正负号

DECIMALS:

显示位小数

EXPOENT:

F(浮点数)指数的值

ROUND:

四舍五入至小数点后

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:

WRITE:

/10(6)‘ABCDEFGHIJK’.

输出结果为:

ABCDEF

例如2:

DATA:

XTYPEIVALUE’11:

20:

30’,

Y(5)TYPECVALUE‘ABCDE’.

WRITE:

/XUSINGEDITMASK‘__:

__:

__’.

WRITE:

/XUSINGEDITMASK‘$___,___’.

WRITE:

/YNO-GAP.

输出结果为:

11:

20:

30

$112,030

ABCDEF

显示图示:

语法:

WRITE:

ASSYMBOL.

WRITE:

ASICON.

例如:

INCLUDE.

INCLUDE.

WRITE:

/‘Phonesymbol:

’,SYM_PHONEASSYMBOL.

WRITE:

/‘AlarmIcon:

’,ICON_VOICE_OUTPUTASICON.

要查看系统所提供有那些符号及图标,可选择’模式’下的’write’确定后,接下来选择要查看的群组,如SYMBOL或ICON.

跳过指定空白行进行输出:

SKIP5.(跳过五行空白)

SKIPTOLINE5.(跳到第五行)

WRITE:

‘AAAAAA’.

结果自己去试试就知道了。

五:

INTERNALTALBE(内表)的声明及使用

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

为了存取或记录某班的同学数据,我们创建如下的internaltable:

DATA:

BEGINOFSTUDENTOCCURS20,

STD_IDTYPEN,

NAME(10)TYPEC,

AGETYPEI,

BIRTHTYPED,

SCORETYPEPDECIMALS2,

ENDOFSTUDENT.

此时我们已经创建了名叫STUDENT的internaltable,并且为它预先申请了能够存放20笔数据的Buffer(当然,如果存取数据不止20笔,程序执行时,会自动申请系统Buffer)

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

格式一.DATA:

BEGINOFOCCURS,

TYPE,

[TYPE,

TYPE,

…]

ENDOF.

格式二.TYPES:

BEGINOF,

TYPE,

[TYPE,

TYPE,

…]

ENDOF.

TYPESTYPEOCCURS.

格式三.DATA:

BEGINOF.

INCLUDESTRUCTURE.

DATA:

ENDOF.

DATA:

LIKEOCCURS.

1、APPENDLINE

格式:

APPEND[TO].

举例一.(使用workarea)

DATA:

BEGINOFLINE,

COL1TYPEI,

COL2TYPEI,

ENDOFLINE.

DATAITABLIKELINEOCCURS10.

DO2TIMES.

LINE-COL1=SY-INDEX.

LINE-COL2=SY-INDEX**2.

APPENDLINETOITAB.

ENDDO.

LOOPATITABINTOLINE.

WRITE:

/LINE-COL1,LINE-COL2.

ENDLOOP.

执行结果为:

11

24

举例二.(不使用workarea)

DATA:

BEGINOFITABOCCURS10,

COL1TYPEI,

COL2TYPEI,

ENDOFITAB.

DO2TIMES.

ITAB-COL1=SY-INDEX.

ITAB-COL2=SY-INDEX**2.

APPENDITAB.

ENDDO.

LOOPATITAB.

WRITE:

/ITAB-COL1,ITAB-COL2.

ENDLOOP.

执行结果与举例一相同.

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

格式:

APPENDLINESOF[FROM][TO]TO.

的元素加入至中,可选取自

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

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

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

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