ABAP基础知识学习
2010-02-03 09:06
218 查看
数据类型
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 .
该语句允许 将输出位置 向上或向下 移动。
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 .
该语句允许 将输出位置 向上或向下 移动。
相关文章推荐
- ABAP基础知识学习(三)
- ABAP基础知识学习
- ABAP基础知识学习(一)
- ABAP基础知识学习(一)
- ABAP基础知识学习(二)
- ABAP基础知识学习(转)
- Linux基础知识学习:linux用命令重启
- Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
- Objective-C学习笔记(1) 基础知识
- 黑马程序员学习log第四篇基础知识:JAVA的面向对象之多线程总结
- PHP学习笔记(一)基础知识
- 黑马程序员学习log第九篇基础知识:JAVA的面向对象之正则表达式及反射总结
- Geoserver学习(一)——基础知识
- X86汇编语言学习教程之2 ———— 基础知识
- PHP学习笔记(二)基础知识结束
- Node.js的学习历程四npm的基础知识点
- 【学习笔记】Linux基础知识
- jQuery Mobile基础知识学习
- 学习shell脚本之前的基础知识
- html5基础知识学习