Professional Documents
Culture Documents
資料類型
C :字串
F : 浮點數 長度為 8
I :整數
N :數值組成的字串 如:011,'302'
T : 時間 格式為:HHMMSS 如:'14:03:00'
X : 16 進制數 如:'1A03'
*------------------------------------------------------------------------------------- *
變數宣告
DATA [] [][decimals]
變數名稱
變數類型 及 長度
初值
小數位數
exp:
exp:
NAME(10) TYPE C,
AGE TYPE I,
END OF PERSON.
另外,有關 DATA 宣告的指令還有: CONSTANTS(宣告常數)、STATICS(臨時變數宣告).
exp:
STATICS 敘述
宣告的變數僅在目前的程式中使用, 結束後會自動釋放
語法:
STATICS [] [] []
系統專用變數說明
SY-DATUM: 當前系統日期;
SY-UZEIT: 當前系統時間;
SY-SROWS: 螢幕總行數;
SY-SCOLS: 螢幕總列數;
SY-VLINE: 畫豎線
SY-ULINE: 畫橫線
TYPE 敘述
用來指定資料型態或宣告自定資料型態
Example:
NAME(10) TYPE C,
NUMBER TYPE I,
END OF MYLIST.
LIKE 敘述
跟 TYPE 敘述使用格式相同, 如
在指定資料型態。
*-------------------------------------------------------------------------------------*
輸出
一. WRITE 語句
二. 指定螢幕輸出位置
指定輸出位置的語句格式為:
其中: / : 在下一行輸出
: 指定輸出的行號;
():指定輸出位數(長度)
: 指定顯示格式參數,參數有:
LEFT-JUSTIFIED 資料*左對齊
CENTERED 資料*中間對齊
RIGHT-JUSTIFIED 資料*右對齊
UNDER 正對在資料項的下麵顯示
NO-GAP 緊接著顯示,不留空格
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:
輸出結果為: ABCDEF
WRITE: / Y NO-GAP.
輸出結果為:
11:20:30
$112,030
ABCDEF
WRITE TO 語句的基本 形式
語法
WRITE TO [].
TEXT(10),
FLOAT TYPE F,
WRITE NUMBER.
WRITE / TEXT.
WRITE / FLOAT.
WRITE / PACK.
WRITE / PACK.
exp:
TARGET(10).
...
WRITE: TARGET.
exp :
DATA: COUNTER TYPE I.
COUNTER = COUNTER + 1.
ADD 1 TO COUNTER.
輸出螢幕上 的線和空行
語法
它等同於
垂直線
語法
空行
語法
SKIP [].
語法
SKIP TO LINE .
四. 顯示圖示:
WRITE: AS ICON.
例如: INCLUDE .
INCLUDE .
*------------------------------------------------------------------------------------- *
TYPE ,
[ TYPE ,
TYPE ,
…]
END OF .
語法:
Example:
TYPE ,
[ TYPE ,
TYPE ,
…]
END OF .
INCLUDE STRUCTURE .
DATA: END OF .
exp:
COLUMN1 TYPE I,
COLUMN2 TYPE I,
COLUMN3 TYPE I,
END OF LINE.
END OF DEEPLINE.
本示例創建 與上例相同 的內表資料 類型(VECTOR 和 ITAB) 。然後創建 資料類型 DEEPLINE 作為欄位串 ,包含這些
內表作為組 件。通過該 欄位串,數 據類型 DEEPTABLE 被創建為內 表。因此該 內表的元素 本身就是內 表。
exp :
COLUMN2 TYPE I,
COLUMN3 TYPE I,
END OF LINE.
同 創建內表數 據類型 (頁 99) 中所示,該 示例創建數 據類型 ITAB 作為內表。 通過使用 DATA 語句的 TYPE 參數引用
ITAB, 使資料物件 TAB1 與 ITAB 結構相同。 通過使用 DATA 語句的 LIKE 參數引用 TAB1, 使資料物件 TAB2 結構相同。
創建的 TAB2 帶表頭行。 因此,可以 在程式中使 用 TAB2-COLUMN1、 TAB2-COLUMN2 和 TAB2-COLUMN3 等定位表
格 工作區域 TAB2。
exp :
*------------------------------------------------------------------------------------- *
1. TYPES type.
2. TYPES type(len).
END OF structype.
*------------------------------------------------------------------------------------- *
APPEND LINE
格式:APPEND TO
COL1 TYPE I,
COL2 TYPE I,
END OF LINE.
DO 2 TIMES.
LINE-COL1 = SY-INDEX.
LINE-COL2 = SY-INDEX ** 2.
ENDDO.
WRITE : / LINE-COL1,LINE-COL2.
ENDLOOP.
COL1 TYPE I,
COL2 TYPE I,
END OF ITAB.
DO 2 TIMES.
ITAB-COL1 = SY-INDEX.
ITAB-COL2 = SY-INDEX ** 2.
APPEND ITAB.
ENDDO.
LOOP AT ITAB.
WRITE : / ITAB-COL1,ITAB-COL2.
ENDLOOP.
exp:
COL1 TYPE C,
COL2 TYPE I,
END OF ITAB.
DO 3 TIMES.
APPEND ITAB.
ENDDO.
LOOP AT ITAB.
ENDLOOP.
將的元素加入至中,可選取自至的範圍.
COLLECT LINE
COL2 TYPE I,
END OF ITAB.
COLLECT ITAB.
COLLECT ITAB.
COLLECT ITAB.
ITAB-COL1 ITAB-COL2
'ABC' 90
'XYZ' 20
*------------------------------------------------------------------------------------- *
INSERT LINE
: internal table
Example:
COL1 TYPE I,
COL2 TYPE I,
END OF LINE.
ENDDO.
LINE-COL1=100.
LINE-COL2=200.
ENDLOOP.
執行結果:
1 10 20
3 20 40
4 30 60
語法:
Example:
*------------------------------------------------------------------------------------- *
讀取 internal table
格式一:
ENDLOOP.
Example:
WRITE: / SY-TABIX,LINE-COL1.
ENDLOOP.
格式二:
舉例. (格式二)
COL1 TYPE I,
COL2 TYPE I,
END OF ITAB.
DO 10 TIMES.
ITAB-COL1 = SY-INDEX.
ITAB-COL2 = SY-INDEX * 2.
APPEND ITAB.
ENDDO.
執行結果同樣是:
ITAB-COL1 = 3
ITAB-COL2 = 6.
Example:
語法:
Example:
ITAB-COL1 = 'ABC'.
*------------------------------------------------------------------------------------- *
LINE-COL1 = 29.
Internal table 排序
SORT [][BY …]
: 為指定排序的欄位.
Example:
確定內表屬 性
如果在處理 過程中想知 道內表一共 包含多少行 ,或者想知 道定義的 OCCURS 參數的大小 ,請使用 DESCRIBE 語句,
用法 如下:
語法
如果使用 LINES 參數,則將 填充行的數 量寫入變數 。 如果使用 OCCURS 參數,則將 行的初始號 寫入變數 。
COL1 TYPE I,
COL2 TYPE I,
END OF LINE.
DO 1000 TIMES.
LINE-COL1 = SY-INDEX.
LINE-COL2 = SY-INDEX ** 2.
ENDDO.
其輸出為:
0 10
1.000 10
*-------------------------------------------------------------------------------------*
加總
SUM.
SUM.
ENDLOOP.
將值重置為 預設值
語法
CLEAR .
exp:
WRITE NUMBER.
CLEAR NUMBER.
WRITE / NUMBER.
輸出為:
10
*------------------------------------------------------------------------------------- *
語法
語法
END OF SERIES.
WRITE SUM.
WRITE / SUM.
輸出如下:
150
350
在此,將 N1 到 N5 元件內容求 和並將其值 賦給欄位 SUM。然 後,將 N2 到 N6 組件求 和並將其添 加到 SUM 的值中。
*------------------------------------------------------------------------------------- *
螢幕輸入命令
1. PARAMETER: 輸入一個變量或欄位內容
2. SELECTION-OPTIONS: 使用條件篩選畫面來輸入數據
PARAMETERS 指令
語法:
PARAMETERS
[RADIOBUTTON GROUP ]
Example:
PARAMETERS: NAME(8),
AGE TYPE I,
BIRTH TYPE D.
執行結果:
1. DEFAULT
設定輸入的預設值
Example:
2. LOWER CASE
3. OBLIGATORY
4. AS CHECKBOX
輸入 CHECKBOX 的格式
Example:
NTD AS CHECKBOX.
執行結果:
5. RADIOBUTTON GROUP
Example:
exp :
TABLES SPLFI.
........
ENDSELECT.
*------------------------------------------------------------------------------------- *
SELECTION-OPTIONS
1. SIGN:
I: 表篩選條件符合的資料
E: 表篩選條件不符合的資料
2. OPTION: 比較的條件符號
EQ(等於),NE(不等於),GT(大於),LE(小於),CP(包含),NP(不包含)
3. LOW: 最小值
4. HIGH: 最大值
語法:
SELECTION-OPTIONS FOR
Example:
TABLES SPFLI.
改變條件輸入格式
1. DEFAULT TO
設定開始結束範圍輸入預設值
Example:
2. NO-EXTENSION
3. NO INTERVALS
設定不要區間範圍輸入畫面
4. LOWER CASE
輸入轉換成大寫
5. OBLIGATORY
強制要求輸入
配合 SELECT 命令
Example:
TABLES SPFLI.
WRITE: / SPFLI-CONNID,SPFLI-CITYFROM,SPFLI-CITYTO.
ENDSELECT.
2.使用 CHECK 參數
Example:
TABLES SPFLI.
SELECT-OPTIONS AIRLINE FOR SPFLI-CONNID.
CHECK AIRLINE.
WRITE: / SPFLI-CONNID,SPFLI-CITYFROM,SPFLI-CITYTO.
ENDSELECT.
exp:
TABLES SPFLI.
SPFLI-CITYFR IN S_CITYFR,
SPFLI-CITYTO IN S_CITYTO,
SPFLI-CONNID IN S_CONNID.
SPFLI-CITYFROM, SPFLI-CITYTO.
ENDSELECT.
3.使用 IF … IN 敘述
Example:
IF SPFLI-CONNID IN AIRLINE.
WRITE: / SPFLI-CONNID,SPFLI-CITYFROM,SPFLI-CITYTO.
ENDIF.
ENDSELECT.
*-------------------------------------------------------------------------------------*
SELECTION-SCREEN
1.產生空白列
語法:
SELECTION-SCREEN SKIP []
Example:
SELECTION-SCREEN SKIP 2.
產生兩列空白列
2.產生底線
語法:
Example:
自第 10 格開始產生長度 30 的底線
3.印出備註說明
語法:
Example:
4. 同一列中輸入數個資料項
語法:
……
Example:
PARAMETERS NAME(10).
5. 繪出 BLOCK PANEL
語法: