我的SAP-ABAP基础语法学习笔记

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ABAP基础学习笔记

学前说明:

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

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

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

一、基本数据类型:

Type Length Range Initial Value Description

C 1 1-65535Byte Space 字符串数据, 如’Program’

D 8 8Byte ‘00000000’ 日期数据, 格式为YYYYMMDD

F 8 8Byte 0 浮点数

I 4 -2^31至2^31-1 0 整数

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

P 8 1-16Byte 0 Packed 数, 用在小数点数

T 6 6Byte ‘000000’ 时间数据, 格式为HHMMSS

X 1 1-65535Byte X’00’ 16进位数

例:

C: 字符(串), 长度为1, 最大有65535 BYTES, 初始值为: 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等,语法如下:

DA TA [] [] []

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

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

:长度及变量类型;

:初值

:小数位数

例如:

DA TA:C1 TYPE C,

INT1 TYPE I V ALUE 1,

TEMP TYPE P DECIMAL 2.

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

DATA C1 TYPE C.

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

例如:

TYPES: INT1 TYPE I.(不能VALUE 1)

LIKE的使用:

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

STRUCTURE

DATA:BEGIN OF MAN,

NAME(20)TYPE C,

PHONE(11)TYPE N,

END OF MAN.

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

常量的声明:CONSTANTS 临时变量的声明:STATICS

例:CONSTANTS P1 TYPE P DECIMALS 5 VALUE ‘3.14159’.

三、系统专用变量说明:

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

SPACE: 空格。

SY-SUBRC : 系统执行某指令后,表示执行成功与否的变量,’0’ 表示成功

SY-UNAME: 当前使用者登入SAP的USERNAME;

SY-DATUM: 当前系统日期;

SY-UZEIT: 当前系统时间;

SY-TCODE: 当前执行程序的Transaction code(事务代码)

SY-INDEX : 当前LOOP循环过的次数

SY-TABIX: 当前处理的是internal table(内表)的第几笔

SY-TMAXL: Internal table的总笔数

SY-SROWS: 屏幕总行数;

SY-SCOLS: 屏幕总列数;

SY-MANDT: CLIENT NUMBER

SY-VLINE: 画竖线

SY-ULINE: 画横线

还有其他系统变量,可以输入事务代码:SE11 查询系统表SYST

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

例如:

WRITE: ‘USERNAME IS:’ , SY-UNAME.

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

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

其中: / : 表示在下一行输出

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

():指定输出位数(长度)

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

LEFT-JUSTIFIED 资料靠左对齐

CENTERED 数据靠中间对齐

RIGHT-JUSTIFIED 资料靠右对齐

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

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

USING EDIT MASK : 使用给定格式显示, 如 12:03:20

USING NO EDIT MASK: 不使用内嵌子元

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: X TYPE I VALUE ’11:20:30’,

Y(5) TYPE C VALUE ‘AB CDE’.

WRITE: / X USING EDIT MASK ‘__:__:__’.

WRITE: / X USING EDIT MASK ‘$___,___’.

WRITE: / Y NO-GAP.

输出结果为:

11:20:30

$112,030

ABCDEF

显示图示:

语法: WRITE: AS SYMBOL.

WRITE: AS ICON.

例如: INCLUDE .

INCLUDE .

WRITE: / ‘Phone symbol:’, SYM_PHONE AS SYMBOL.

WRITE: / ‘Alarm Icon:’, ICON_VOICE_OUTPUT AS ICON.

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

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

SKIP 5.(跳过五行空白)

SKIP TO LINE 5. (跳到第五行)

WRITE: ‘AAAAAA’.

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

相关文档
最新文档