WRITE {[AT] [/][pos][(len|*|**)]} dobj
[UNDER other_dobj]
[NO-GAP]
[int_format_options]
[
[COLOR {{{color [ON]}|OFF}|{= col}}]
[INTENSIFIED [{ON|OFF}|{= flag}]]
[INVERSE [{ON|OFF}|{= flag}]]
[HOTSPOT [{ON|OFF}|{= flag}]]
[INPUT [{ON|OFF}|{= flag}]]
[FRAMES [{ON|OFF}|{= flag}]]
[RESET]
]
[
{AS CHECKBOX}
| {AS ICON}
| {AS SYMBOL}
| {AS LINE}
]
[QUICKINFO info].
在ABAP編輯器裏,可使用可視的方式來使用WRITE,上面語法中的全部選項均可以在下面體現,好比對顏色、圖標等:
WRITE AT [/][<pos>][(<len|*|**>)] dobj.
斜線/表示新的一行
<pos>是最長爲三位數字的數字或變量,表示在屏幕上的位置
<len>是最長爲三位數字的數字或變量,表示輸出最大長度
若是<pos><len>只包含直接值(即,不是變量),能夠忽略關鍵字 AT,不然爲變量時不能省。
DATA: len TYPE i VALUE 10,
pos TYPE i VALUE 11,
text(10) VALUE '1234567890'.
WRITE 'The text ------------ appears in the text.'.
"注,這裏的AT關鍵字不能省略,由於後面的pos len爲變量,而不是直接量
WRITE AT pos(len) text."能夠從新繪製屏幕,覆寫已經輸入的內容
The text -1234567890- appears in the text.
若是輸出長度<len>過短,則顯示部份內容。若是是數字類型,則左邊截斷數字,並用星號(*)做前綴;若是是字符類型,則截斷右邊字符,可是不會在後面向數字類型那樣加上星號(*):
DATA: number TYPE i VALUE 1234567890,
text(10) VALUE 'abcdefghij'.
WRITE: (5) number, /(5) text.
*7890
abcde
若是指定的是* or **,通常與數據類型相關,且**比*要長或兩倍
數據類型 |
輸出長度 |
定位 |
b |
3 |
右對齊 |
s |
5 |
右對齊 |
P |
2 * 字段長度(+1若是有小數點) |
右對齊 |
F |
24 |
右對齊 |
I |
11 |
右對齊 |
C |
字段長度,maximum 255 |
左對齊 |
D |
8 |
左對齊 |
N |
字段長度,maximum 255 |
左對齊 |
T |
6 |
左對齊 |
X |
2 * 字段長度,maximum 255 |
左對齊 |
數字數據類型 F、I 和 P 是右對齊的,左邊用空格填充,若是有足夠的空間,也輸出千位分隔符。若是類型 P 字段包含小數位,則默認輸出長度會增長一位。
對數據類型D,當輸出數據使用WRITE 語句時,系統自動設定的日期格式(例如,DD/MM/YYYY 或 MM/DD/YYYY,但要注意,輸出寬度必定要指定爲10,不能比10小,也不能是默認的輸出寬度)來輸出數據:
DATA: d TYPE d VALUE '20110709'.
WRITE: d , (9) d, (10)d.
20110709 20110709 2011.07.09
時間也是同樣:
DATA : t TYPE t value '111111'.
WRITE: t , (7) t , (8) t.
111111 111111 11:11:11
下面字段number變量實際上輸出總長爲 13,即9 位數字(包括小數點)、前導負號和做爲分隔符的兩個逗號。但由於這裏的變量爲P(8)類型,因此默認狀況下(Write語句中未使用len參數)系統會爲P(8)類型預留輸出長度爲 2*8+1(一位符號位)=17,因此前面剩餘的位置用四個空格填充。
DATA number TYPE p VALUE '-1234567.89' DECIMALS 2.
WRITE: number.
WRITE:/(12) number.
WRITE:/(11) number.
WRITE:/(10) number.
1,234,567.89-
1234,567.89-
1234567.89-
*34567.89-
P類型與日期或時間不同,若是寬度沒有足夠寬,但又比最小寬度要大時,會輸出部分的千分位符號,但日期與時間是要麼全輸出格式符號,要麼全不輸出。
DATA: g(5) VALUE 'Hello',
f(5) VALUE 'Dolly'.
WRITE: g, f.
WRITE: /10 g,
/ f UNDER g.
WRITE: / g NO-GAP, f.
Hello Dolly
Hello
Dolly
HelloDolly
鼠標放上去有提示信息
WRITE: (10) sy-datum QUICKINFO 'Date of list creation',
(8) sy-uzeit QUICKINFO 'Time of list creation'.
ALV顏色輸出,請參數《ALV.docx》文檔中的顏色章節。
COLOR {{{color [ON]}|OFF}|{= col}}
若是INVERSE設置爲OFF(默認),則該選項設置的爲輸出字符的背景色,INVERSE爲ON時,設置的爲輸出字符的前景色(即字符自己的顏色)
你可使用靜態的color,或者使用動態的col。使用color時,能夠省略ON。col是一個類型爲i的變量。color與col的取值以下表:
color |
col |
顏色描述 |
COL_BACKGROUND 注:與其也不一樣,這裏不能取數值0 其餘能夠兩種取值:一種是1~7之間 的數值,另外一種是後面 COL_* 開頭 的顏色常量 |
0 |
GUI-dependent |
{1 |COL_HEADING } |
1 |
|
{ 2 |COL_NORMAL } |
2 |
|
3 |
Yellow |
|
{ 4 | COL_KEY } |
4 |
Blue-green |
{ 5 | COL_POSITIVE } |
5 |
Green |
{ 6 | COL_NEGATIVE } |
6 |
Red |
{ 7 | COL_GROUP } |
7 |
orange桔黃 |
OFF選項等效於color爲COL_BACKGROUND或者col爲0,這也是默認值,此時色依賴於GUI window。
INTENSIFIED [{ON|OFF}|{= flag }]
INTENSIFIED選項設置background color高亮顯示(即顏色加深)。若是指定爲ON或者flag爲非0時,background color會使用高亮方式來顯示(默認),不然爲OFF或flag爲0時,使用弱的background color。例外:An exception to this is the COL_BACKGROUND background color, used by INTENSIFIED OFF to control the foreground color.
若是ON、OFF、flag都沒指定時,默認爲ON,即高亮顯示
INVERSE [{ON|OFF}|{= flag}]
該選項主要是用來設置COLOR選項是設置背景仍是前景色,flag爲i類型。若是指定爲ON或者flag爲非0時,則COLOR用來設置前景色(注:COLOR COL_BACKGROUND INVERSE ON時,前景與背景色同樣,因此此時看不到文字);若是爲OFF或者flag爲0時,則COLOR用來設置背景色的(默認)
若是ON、OFF、flag都沒指定時,默認爲ON,即默認設置的就是背景色
DATA col TYPE i VALUE 0.
DO 8 TIMES.
col = sy-index - 1.
" FORMAT COLOR = col.
WRITE: / col COLOR OFF,
"此種好像不存在,與高亮前景是同樣的,即前景色只能是高亮的?
'低亮前景' COLOR = col INTENSIFIED OFF INVERSE ON ,
'高亮前景' COLOR = col INTENSIFIED ON INVERSE ON ,
'低亮背景' COLOR = col INTENSIFIED OFF INVERSE OFF ,
'高亮背景' COLOR = col INTENSIFIED ON INVERSE OFF .
enddo.
DATA sum TYPE i.
FORMAT COLOR COL_NORMAL.
DO 10 TIMES.
WRITE / sy-index.
sum = sum + sy-index.
WRITE sum COLOR COL_TOTAL.
ENDDO.
ULINE.
WRITE sum UNDER sum COLOR COL_GROUP.
HOTSPOT [{ON|OFF}|{= flag}]
鼠標放上去會顯示成手的形狀
若是爲ON或者flag爲非0,則放上去會顯示手,此時的單擊就如同雙擊(等效按F2);不然不會發生變化。
若是ON、OFF、flag都沒指定時,默認爲ON
點擊列表上的超連接會觸發AT LINE-SELECTION事件。若是輸出字段不採用熱點連接,則用戶必須雙擊或按F2來觸發事件
如INPUT ON 時,則HOTSPOT ON將會失效
START-OF-SELECTION.
"FORMAT HOTSPOT.
WRITE 'Click me!' COLOR 5 HOTSPOT ON.
"FORMAT HOTSPOT OFF.
AT LINE-SELECTION.
WRITE 'Yeah!' COLOR 3.
INPUT [{ON|OFF}|{= flag}]
使用ON選項(或者flag不爲0)格式化後繼輸出字段爲可輸入字段(Input-enabled)。
Input-enabled字段對於輸出選項COLOR,INVERSE,andHOTSPOT再也不起做用,但INTENSIFIED會有效
能夠格式化ULINE爲輸入字段,但空行SKIP不能。
若是ON, OFF, nor flag都不輸入時,默認爲ON
若是輸出的字段只包含空格,則不會顯示爲可輸入,除非在以前使用了SET BLANK LINES ON。
DATA: input_field TYPE c LENGTH 100,
line_num TYPE i.
START-OF-SELECTION.
WRITE 'Input text:'.
SET BLANK LINES ON.
"FORMAT INPUT.
WRITE / input_field INPUT on.
"FORMAT INPUT OFF.
WRITE / '>>> OK <<<' COLOR 5 HOTSPOT.
AT LINE-SELECTION.
IF sy-lisel = '>>> OK <<<'.
line_num = sy-lilli - 1.
READ LINE line_num FIELD VALUE input_field.
WRITE: 'The input was:',/ input_field.
ENDIF.
FRAMES [{ON|OFF}|{= flag}]
該選項決定了"-" and "|"字符是否顯示爲表格框線,仍是普通的字符。若是爲ON或者flag爲非0時,則顯示爲表格框線(默認);不然顯示爲普通的字符。
若是ON, OFF, nor flag都指定,默認爲ON
"FORMAT FRAMES ON.
WRITE: / '----',
/ '| |',
/ '----'.
"FORMAT FRAMES OFF.
WRITE: / '----' FRAMES OFF,
/ '| |' FRAMES OFF,
/ '----' FRAMES OFF.
與FORMAT語句做用同樣
Addition |
State after RESET |
State after Program Start |
State after Reporting Event/List Event |
COLOR |
OFF |
OFF |
OFF |
INTENSIFIED |
OFF |
ON |
ON |
INVERSE |
OFF |
OFF |
OFF |
HOTSPOT |
OFF |
OFF |
OFF |
INPUT |
OFF |
OFF |
OFF |
FRAMES |
ON |
ON |
No change |
FORMAT RESET INTENSIFIED ON.
若是dobj的第一個字符爲"X" or "x"時,複選框會被選中,不然不會被選中
鉤選時,第一個字符爲設置爲"X"(注:不要使用類型爲string的dobj,由於此時即便能夠輸出爲複選框,但勾選後,其值不會發生改變)
除了INPUT, NO-GAP, UNDER,其它選項都會被忽略
INPUT OFF時,複製框是隻讀的
DATA: check1 TYPE c LENGTH 1 VALUE 'X',
check2 TYPE c LENGTH 1 VALUE ' ',
check3 TYPE string VALUE ``.
START-OF-SELECTION.
WRITE: / check1 AS CHECKBOX INPUT OFF, 'Checkbox 1',
/ check2 AS CHECKBOX, 'Checkbox 2',
/ check3 AS CHECKBOX, 'Checkbox 3'.
AT LINE-SELECTION.
READ: LINE 3 FIELD VALUE check1,
LINE 4 FIELD VALUE check2,
LINE 5 FIELD VALUE check2.
WRITE: / '-' NO-GAP FRAMES OFF,check1 NO-GAP,'-' NO-GAP FRAMES OFF,
check2 NO-GAP, '-' NO-GAP FRAMES OFF,check3 NO-GAP, '-' NO-GAP FRAMES OFF.
輸出圖標
圖標的名稱能夠由ICON 類型組裏來得到:
可使用上面定義的圖標常量名Name,或者是直接使用其值`@XX@`。另外,這些值也能夠經過 SHOWICON 程序來快速查找,SHOWICON 顯示了這些圖標的詳細信息,如:顯示寬度、圖標常量名、圖標內部值(`@XX@`)、是否可打印等:
"注意:@0A@串只能放在字符串的最前面,不然原樣輸出
WRITE:/ `@15@ Icon`.
WRITE:/ `Icon@15@`.
WRITE:/ `@B_EXEC@ Icon`.
WRITE:/ icon_execute_object AS ICON.
在使用 @XX@ 格式時,能夠不需使用AS ICON選項也會解釋成圖標,但要位於字符串的最前面
還能夠經過RSTXICON程序來查看系統中預置的圖標:
@XX@格式的圖標代碼能夠直接在文本中使用:
輸出符號:打印機可打印的符號??
能夠從SYM類型組中獲取須要輸入的符號名:
或快速從 SHOWSYMB 程序中獲取:
WRITE sym_left_hand AS SYMBOL.
WRITE '? ' AS SYMBOL. "還能夠直接使用符號常量的值
WRITE ' ? ' AS SYMBOL."不放在字符串首也可輸出
畫表格線。
畫線實質上能夠直接使用WRITE來輸出"-" and "|",只要這些字符是繼續的,它們也會自動的轉換爲下面這些相應的表格線。
line_space |
Blank |
line_top_left_corner |
Top left corner |
line_bottom_left_corner |
Bottom left corner |
line_top_right_corner |
Top right corner |
line_bottom_right_corner |
Bottom right corner |
line_horizontal_line |
Horizontal line |
line_vertical_line |
Vertical line |
line_left_middle_corner |
T section turned to the left |
line_right_middle_corner |
T section turned to the right |
line_bottom_middle_corner |
Reversed T section |
line_top_middle_corner |
T section |
line_cross |
Cross |
WRITE: /1(30) 'line_space:' RIGHT-JUSTIFIED, line_space as LINE.
SKIP.
WRITE: /1(30) 'line_top_left_corner:' RIGHT-JUSTIFIED, line_top_left_corner as LINE.
SKIP.
WRITE: /1(30) 'line_bottom_left_corner:' RIGHT-JUSTIFIED, line_bottom_left_corner as LINE.
SKIP.
WRITE: /1(30) 'line_top_right_corner:' RIGHT-JUSTIFIED, line_top_right_corner as LINE.
SKIP.
WRITE: /1(30) 'line_bottom_right_corner:' RIGHT-JUSTIFIED, line_bottom_right_corner as LINE.
SKIP.
WRITE: /1(30) 'line_horizontal_line:' RIGHT-JUSTIFIED, line_horizontal_line as LINE.
SKIP.
WRITE: /1(30) 'line_vertical_line:' RIGHT-JUSTIFIED, line_vertical_line as LINE.
SKIP.
WRITE: /1(30) 'line_left_middle_corner:' RIGHT-JUSTIFIED, line_left_middle_corner as LINE.
SKIP.
WRITE: /1(30) 'line_right_middle_corner:' RIGHT-JUSTIFIED, line_right_middle_corner as LINE.
SKIP.
WRITE: /1(30) 'line_bottom_middle_corner:' RIGHT-JUSTIFIED, line_bottom_middle_corner as LINE.
SKIP.
WRITE: /1(30) 'line_top_middle_corner:' RIGHT-JUSTIFIED, line_top_middle_corner as LINE.
SKIP.
WRITE: /1(30) 'line_cross:' RIGHT-JUSTIFIED, line_cross as LINE.
ULINE [AT [/][<pos>][(<len>)]].
等效下面兩個語句:
WRITE [AT [/][<pos>][(<len>)]] SY-ULINE.
WRITE [AT [/][<pos>][(<len>)]] '-----'
ULINE:在當前位置畫橫線
ULINE AT m(n):在當前行的第m個位置畫一個長度爲n的橫線
UNLINE /m(n):先用「/」換一行,而後在第m個位置畫一個長度爲n的橫線
WRITE [AT [/][<pos>]] sy-vline.
或者:
WRITE [AT [/][<pos>]] '|'.
SKIP [<n>].
該語句從當前行開始,在輸出屏幕上生成<n>個空行。若是沒有指定<n>的值,就輸出一個空行。
要將輸出定位在屏幕的指定行上(SKIP [<n>]是輸入空行後繼續在後面輸出,而下面的是直接將輸出位置先定位到LINE <n>,而後再繼續在LINE <n>後輸出),請使用:
SKIP TO LINE <n>.
不能使用WRITE: / ' '.語句來直接輸出空行,但若是使用如下語句後,WRITE: / ' '.語句仍是能夠輸出空行:
SET BLANK LINES ON|OFF.
SET BLANK LINES ON.
DO 5 TIMES.
WRITE / ' '.
ENDDO.
SET BLANK LINES OFF.
WRITE / '*****'.
FORMAT [COLOR {{{color [ON]}|OFF}|{= col}}]
[INTENSIFIED [{ON|OFF}|{= flag}]]
[INVERSE [ {ON|OFF} | {= flag} ]]
[HOTSPOT [ {ON|OFF} | {= flag} ]]
[INPUT [{ON|OFF}|{= flag}]]
[FRAMES [{ON|OFF}|{= flag}]]
[RESET].
使用WRITE輸出時,對輸出內容的格式設置。但若是WRITE語句中使用了FORMAT中一樣的選項設置,將會覆蓋FORMAT裏的相應設置,因此FORMAT全部設置均可以移到WRITE語句中。
WRITE {source|(source_name)} TO destination
[LEFT-JUSTIFIED|CENTERED|RIGHT-JUSTIFIED]
{ { [EXPONENT exp]
[NO-GROUPING]
[NO-SIGN]
[NO-ZERO]
[CURRENCY cur]
{ {[DECIMALS dec][ROUND scale]}|[UNIT unit]}
}
| {[ENVIRONMENT TIME FORMAT][TIME ZONE tz]} [STYLE stl]
}
[USING{ {NO EDIT MASK}|{EDIT MASK mask} }]
[ DD/MM/YY|MM/DD/YY|DD/MM/YYYY|MM/DD/YYYY|DDMMYY|MMDDYY|YYMMDD ].
source_name與destination必須是fixed length (flat data type)類型的
全部源source都會看做是String,若是是固定長度類型C,則尾部空格會被去掉。
對齊時,會在前、後或先後補空格。若是是右對齊時,若是目標過短,則會截斷左邊。
destination目標類型只能是固定長度的CNDT類型。
DATA: formatted_text TYPE c LENGTH 10.
WRITE 'Left' TO formatted_text LEFT-JUSTIFIED.
WRITE:/ formatted_text.
WRITE 'Center' TO formatted_text CENTERED.
WRITE:/ formatted_text.
WRITE 'Right' TO formatted_text RIGHT-JUSTIFIED.
WRITE:/ formatted_text.
WRITE 'CenterCenter' TO formatted_text RIGHT-JUSTIFIED.
WRITE:/ formatted_text.
Left
Center
Right
nterCenter
定義了浮點數的指位位數。不能與ENVIRONMENT TIME FORMAT 、 TIME ZONE一塊兒使用。只能用於f 類型或者 STYLE 選項。
DATA: float TYPE f,
formatted_text TYPE c LENGTH 23.
float = 123456789.
WRITE float TO formatted_text EXPONENT 0.
WRITE: / formatted_text .
WRITE float TO formatted_text EXPONENT 1.
WRITE: / formatted_text .
WRITE float TO formatted_text EXPONENT 16.
WRITE: / formatted_text .
WRITE float TO formatted_text EXPONENT -4.
WRITE: / formatted_text .
123456789,00000000
12345678,900000000E+01
0,0000000123456789E+16
1234567890000,0000E-04
此選項不能與ENVIRONMENT TIME FORMAT 、 TIME ZONE一塊兒使用。對數字類型起做用,使用該選項表示沒有千分位
此選項不能與ENVIRONMENT TIME FORMAT 、 TIME ZONE一塊兒使用。對數字類型起做用,使用該選項表示+號不輸出
DATA: number TYPE i,
formatted_text TYPE c LENGTH 2.
number = -1.
WRITE number TO formatted_text.
WRITE:/ formatted_text.
WRITE number TO formatted_text NO-SIGN.
WRITE:/ formatted_text.
1-
1
此選項不能與ENVIRONMENT TIME FORMAT 、 TIME ZONE一塊兒使用。零或者前導零不會顯示
DATA: num TYPE n LENGTH 10 VALUE '123',
formatted_text TYPE c LENGTH 10.
WRITE num TO formatted_text.
WRITE:/ formatted_text.
WRITE num TO formatted_text NO-ZERO.
WRITE:/ formatted_text.
DATA: i TYPE i VALUE 0.
WRITE i TO formatted_text NO-ZERO.
WRITE:/ '-',formatted_text,'-'.
0000000123
123
- -
WRITE: '000123',
/ '000123' NO-ZERO.
000123
123
不能與ENVIRONMENT TIME FORMAT 、 TIME ZONE、STYLE一塊兒使用,適用於i, p, f類型。
數據庫字段TCURC-WAERS存儲了貨幣代碼,通常貨幣都是精確到小數點後兩位,除非這些貨幣代碼在 TCURX-CURRKEY出現,則此時的貨幣的小數位以TCURX-CURRDEC爲準
DATA: int TYPE i VALUE 12345678,
formatted_text TYPE c LENGTH 10.
WRITE int TO formatted_text NO-GROUPING CURRENCY 'JPY'.
WRITE:/ formatted_text.
WRITE int TO formatted_text NO-GROUPING CURRENCY 'EUR'.
WRITE:/ formatted_text.
12345678
123456,78
不能與ENVIRONMENT TIME FORMAT, TIME ZONE, UNIT一塊兒使用,決定了數字的小數位數
若是是P類型,同時使用CURRENCY選項,則會先執行CURRENCY,再應用DECIMALS;若是是f類型則會忽略CURRENCY。
DATA: pack TYPE p LENGTH 8 DECIMALS 4
VALUE '1234.5678',
formatted_text TYPE c LENGTH 10.
WRITE pack TO formatted_text NO-GROUPING DECIMALS 2.
WRITE: / formatted_text.
1234,57
不能與STYLE, ENVIRONMENT TIME FORMAT, TIME ZONE, UNIT一塊兒使用
做用是:在格式化以前,將 源值 乘以 10-/+scale,而後對於整數(I或P無小數)取整(與DECIMALS選項一塊兒使用時則會保留數位)。對於浮點數f,好像不起做用
DATA: pack TYPE p LENGTH 8 DECIMALS 0
VALUE '12345678',
formatted_text TYPE c LENGTH 24,
f TYPE f VALUE '123.456',
i TYPE i VALUE '12345678'.
WRITE pack TO formatted_text NO-GROUPING ROUND 2 DECIMALS 4.
WRITE: / formatted_text.
WRITE: / f.
WRITE f TO formatted_text NO-GROUPING ROUND 2.
WRITE: / formatted_text.
WRITE i TO formatted_text NO-GROUPING ROUND 2.
WRITE: / formatted_text.
123456,7800
1,2345600000000000E+02
1,2345600000000000E+02
123457
DATA pack TYPE p VALUE '123.456'
DECIMALS 3.
WRITE pack DECIMALS 2.
WRITE: / pack ROUND -2,
/ pack ROUND -1,
/ pack ROUND 1,
/ pack ROUND 2.
123.46
12,345.600
1,234.560
12.346
1.235
不能與DECIMALS, ROUND, STYLE, ENVIRONMENT TIME FORMAT, TIME ZONE一塊兒使用
單位代碼可從數據庫表 T006-MSEHI得到,DECAN列決定了小數點的位置,若是指定的單位代碼中T006中不存在,則會忽略。若是爲P類型同時有CURRENCY選項,則會先執行CURRENCY選項 ,f類型會忽略。
對於f類型,UNIT選項與DECIMALS做用同樣 請參見 知識小結.docx文檔
DATA: pack TYPE p LENGTH 8 DECIMALS 4
VALUE '1234.0000',
formatted_text TYPE c LENGTH 12.
WRITE pack TO formatted_text NO-GROUPING UNIT 'PC'.
WRITE: / formatted_text.
1234,0000
不能與CURRENCY, DECIMALS, EXPONENT, NO-GROUPING, NO-SIGN, NO-ZERO, ROUND, STYLE, TIME ZONE, or UNIT同時使用
可使用 SET COUNTRY來設置。對T類型有使用,其餘類型忽略
USING NO EDIT MASK 撤消對 ABAP/4 詞典中指定的格式模板的激活。
DATA time TYPE t VALUE '154633'.
WRITE: time,
"這裏直接使用的是格式模板,還可使用詞典中已有的轉換規則函數
/(8) time USING EDIT MASK '__:__:__'.
154633
15:46:33
示例:由於數據元素(data element)S_FLTIME的domain域S_DURA在詞典中關聯一個名叫「SDURA」的轉換規則(請看後面兩個截圖),因此msk返回"==SDURA",而後WRITE語句使用該規則將seconds轉換分鐘的格式進行顯示:
DATA: time TYPE s_fltime,
minutes TYPE i,
msk TYPE string, output(6) TYPE c.
DESCRIBE FIELD time EDIT MASK msk.
WRITE: / msk.
minutes = 333.
"將分鐘轉換小時爲單位顯示
WRITE: / minutes USING EDIT MASK msk.
"使用轉換規則相應的轉換函數結果也是同樣
CALL FUNCTION 'CONVERSION_EXIT_SDURA_OUTPUT'
EXPORTING
input = 333
IMPORTING
OUTPUT = output.
WRITE: / output.
==SDURA
5:33
5:33
其實規則是由轉換函數來實現的,能夠經過轉換規則找到對應的轉換函數:
選項 |
用途 |
DD/MM/YY |
注,這裏的分隔符 / 是一種語法格式,它會在運行時根據用戶所設置的具體日期格式來替換它。 |
MM/DD/YY |
|
DD/MM/YYYY |
|
MM/DD/YYYY |
|
DDMMYY |
無分隔符。 |
MMDDYY |
無分隔符。 |
YYMMDD |
無分隔符。 |
Write具體成什麼格式的日期,這與當前用戶主數據所設定的格式來顯示,用戶主數據日期格式能夠經過如下方式獲取到:
獲取當前Client端的日期格式與時間格式:
SELECT datfm INTO lv_datfm FROM usr01
UP TO 1 ROWS WHERE bname = sy-uname.
ENDSELECT.
DATA: date_short TYPE c LENGTH 8,
date_long TYPE c LENGTH 10,
date_mask TYPE c LENGTH 8,
date_mask2 TYPE c LENGTH 8.
WRITE sy-datum TO: date_short,
date_long,
date_mask DD/MM/YY,
date_mask2 DD/MM/YYYY.此處會截斷
WRITE: sy-datum,
/ sy-datum YYMMDD.
2012.07.04
120704