您的位置:首页 > 其它

ABAP基础知识学习

2009-05-05 09:52 246 查看
数据类型

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 [] [][decimals]

变数名称

变数类型 及 长度

初值

小数位数

exp:

DATA : COUNTER TYPE P DECIMALS 3.

NAME(10) TYPE C VALUE 'DELTA'.

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 [] [] []

系统专用变数说明

系统内部专门创建了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叙述则是用

在指定资料型态。

*-------------------------------------------------------------------------------------*

输出

一. WRITE 语句

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

WRITE: 'USER NAME IS:', SY-UNAME.

二. 指定屏幕输出位置

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

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

其中: / : 在下一行输出

: 指定输出的行号;

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

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

LEFT-JUSTIFIED 资料*左对齐

CENTERED 资料*中间对齐

RIGHT-JUSTIFIED 资料*右对齐

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

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

USING EDIT MASK : 使用内嵌子元显示, 如 12:03:20

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

NO-ZER 数字前面 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',

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 TO [].

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 [/][][()]].

它等同于

WRITE [AT [/][][()]] SY-ULINE.

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

如果没有格 式规范,系 统则开始新 的一行,并 用水平线填 充该行。否 则,只按指 定输出水平 线。

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

WRITE [AT [/][][()]] '-----...'.

垂直线

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

语法

WRITE [AT [/][]] SY-VLINE.



WRITE [AT [/][]] '|'.

空行

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

语法

SKIP [].

该语句从当 前行开始, 在输出屏幕 上生成 个空行。如 果没有指定 的值,就输 出一个空行 。

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

语法

SKIP TO LINE .

该语句允许 将输出位置 向上或向下 移动。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: