工作生活与爱好

工作中的记录; 生活中的记忆; 业余爱好的记载。

2007-01-20

 

ABAP基础知识学习

数据类型
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 .
该语句允许 将输出位置 向上或向下 移动。

Comments: 发表评论



<< Home

Archives

1990年1月15日   2007年1月14日   2007年1月15日   2007年1月16日   2007年1月17日   2007年1月18日   2007年1月19日   2007年1月20日   2007年1月22日   2007年1月23日   2007年1月24日   2007年1月25日   2007年1月26日   2007年1月27日   2007年1月29日   2007年1月30日   2007年1月31日   2007年2月1日   2007年2月2日   2007年2月3日   2007年3月13日   2007年5月15日   2007年5月16日   2007年6月2日  

This page is powered by Blogger. Isn't yours?