我的SAP-ABAP基础语法学习笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
其中: [] 里的内容表示可选项。
例如:
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
USING NO EDIT MASK: 不使用内嵌子元
NO-ZERO: 数字前面 0 的部分不显示
NO-SIGN: 不显示正负号
DECIMALS
EXPOENT
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:
WRITE:
例如: 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’.
结果自己去试试就知道了。