ABAP语法完整版
SAP ABAP / 4 基础知识学习
数据类型
C :字符串
D :日期型格式为 YYYYMMDD 例:'1999/12/03'
F : 浮点数长度为8
I :整数
N :数值组成的字符串 如:011,'302'
P : PACKED数用于小数点数值 如:12.00542
T : 时间格式为:HHMMSS 如:'14:03:00'
X : 16进制数 如:'1A03'
*-------------------------------------------------------------------------------------*
变量声明
DATA <F> [<Length>] <type> [<value>][decimals]
<F> 变量名称
<length><type> 变量类型及长度
<value> 初值
<decimals> 小数位数
exp:
DATA : COUNTER TYPE P DECIMALS 3.
NAME(10) TYPE C VALUE 'DELTA'.
讲故事ppt
S_DATE TYPE D VALUE '19991203'.
exp:
DATA : BEGIN OF PERSON,
NAME(10) TYPE C,
AGE TYPE I,
WEIGHT TYPE DECIMALS 2,
END OF PERSON.
另外,有关DATA声明的指令还有: CONSTANTS(声明常数)、STATICS(临时变量声明).
exp:
CONSTANTS PI TYPE P DECIMALS 5 VALUE '3.14159'.
STATICS 关键字
声明的变量仅在目前的程序中使用, 结束后会自动释放
语法:
STATICS <c> [<length>] <type> [<value>] [<decimals>]
系统专用变量说明
系统内部专门创建了SYST这个STRUCTURE,里面的栏位存放系统变量,常用的系统变量有:
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: 画横线
TYPE 关键字
用来指定资料型态或声明自定资料型态
年计划目标怎么写
Example:
TYPES: BEGIN OF MYLIST,
NAME(10) TYPE C,
NUMBER TYPE I,
END OF MYLIST.
DATA LIST TYPE MYLIST.莫西沙星片
LIKE 关键字
跟TYPE关键字使用格式相同, 如
DATA TRANSCODE LIKE SY-TCODE.
不同的是 LIKE 用在已有值的资料项, 如系统变量, 而TYPE关键字则是用在指定资料型态。
TABLES 关键字
用来声明 Table Work Area 的数据, 对应至 ABAP/4 资料文件(Dictionary Object), 由SQL 指令加载所需数据
语法:
TABLES <dbtab>
Example:
TABLES: SPFL.
SELECT * FROM SPFL.
WRITE: SPFL-MANDT, SPFL-CARRID,SPFL-CONNECTION.
ENDSELECT.
从ABAP/4 Dictionary 的 SPFL 档载入MANDT,CARRID,CONNECTION 三个字段至SPFL
此Table Work Area
*-------------------------------------------------------------------------------------*
输出
一. WRITE 语句
ABAP/4用来在屏幕上输出资料的指令是WRITE指令,例如:
WRITE: 'USER NAME IS:', SY-UNAME.
二. 指定屏幕输出位置
指定输出位置的语句格式为:
WRITE: [AT] [ / ] [<pos>] [(<len>)] 资料项 [<par>]
其中: / : 在下一行输出
<pos>: 指定输出的行号;
(<len>):指定输出位数(长度)
<par>: 指定显示格式参数,参数有:
LEFT-JUSTIFIED 资料*左对齐
CENTERED 资料*中间对齐
RIGHT-JUSTIFIED 资料*右对齐
UNDER <g> 正对在资料项<g>的下面显示
NO-GAP 紧接着显示,不留空格
USING EDIT MASK <m>: 使用内嵌子元显示, 如 12:03:20
USING NO EDIT MASK: 不使用内嵌子元
NO-ZER 数字前面 0 的部分不显示
NO-SIGN: 不显示正负号
DECIMALS <d>: 显示 <d> 位小数
EXPOENT <e>: F(浮点数)指数的值
ROUND <r>: 四舍五入至小数点后<r>位
CURRENCY <c>: 币别显示
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',
A(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
例如3: DATA: LEN TYPE I VALUE 10,
POS TYPE I VALUE 11,
TEXT(10) VALUE '1234567890'
WRITE 'The text ------------ appears in the text.'.
WRITE AT POS(LEN) TEXT.
WRITE TO 语句的基本 形式
要将值(文字)或源字段内容写入目标字段,可以使用 WRITE TO 语句:
语法
WRITE <F1> TO <F2> [<option>].回来的反义词
DATA: NUMBER TYPE F VALUE '4.3',
TEXT(10),
FLOAT TYPE F,
PACK TYPE P DECIMALS 1.
WRITE NUMBER.
WRITE NUMBER TO TEXT EXPONENT 2.
WRITE / TEXT.
WRITE NUMBER TO FLOAT.
WRITE / FLOAT.
WRITE NUMBER TO PACK.
WRITE / PACK.
MOVE NUMBER TO PACK.
WRITE / PACK.
exp:
青导航DATA: NAME(10) VALUE 'SOURCE',
SOURCE(10) VALUE 'Antony',
TARGET(10).
...
WRITE (NAME) TO TARGET.
WRITE: TARGET.
exp :
DATA: COUNTER TYPE I.
COMPUTE COUNTER = COUNTER + 1.
COUNTER = COUNTER + 1.
ADD 1 TO COUNTER.
在此,三条运算语句进行相同算术运算
输出屏幕上的线和空行
用下列语法,可以在输出屏幕上生成水平线:
语法
ULINE [AT [/][<pos>][(<len>)]].