ABAP基礎篇 語法 資料型別

2021-06-16 02:10:34 字數 3909 閱讀 2285

1. 數字型別(numeric types)

(1).型別

abap支援三種數字型別:

i:整型

範圍:-2147483648 to 2147483647

p:16位

範圍:取決於小數字的長度

f:浮點型別

範圍:+/- 2.2250738585072014e-308 to 1.7976931348623157e+308

注意事項:因為長度的關係,所以盡量不要用兩個該型別的資料相等作為判斷條件

(2).定義方法

[f1] type i.

[f1] type p decimals [num].

[f1] type f.

(3).使用

i型別:

主要是用於計數器,數量,索引,偏移量等等

例如:*取得內錶行數

data: v_counter type i.

v_counter = lines( i_tab ).

*根據索引讀取內錶中的資料

data: v_index type i.

read table i_tab index v_index.

*擷取字串

data: v_offset_start type i,

v_offset_length   type i,

v_c(10) type c,

l_c(3)  type c.

v_c = 『abcdefghij』.

v_offset_start = 3.

v_offset_length   = 5

l_c = v_c+v_offset_start(v_offset_length).

result:

l_c = 『defgh』.

p型別:

主要和資料庫中的quan型別關聯;

常用場合:大小,長度,重量,貨幣等有單位的場合

*根據單位把數量寫入字元型變數中

write:[數量] to [字元型變數] unit [單位].

f型別:

常用場合:計算

字元型別:

一.包括:

c:字元

n:應該算是字元型的數字

d:日期型別,標準長度8(yyyymmdd),注意其初期值的判斷,不是space,而是'00000000',判斷語句可以使用is initial or not。

t:時間型別,標準長度6(hhmmss)

二.具體使用:

1.對字串的操作

1).shift:截斷字串

shift [by places] .:

作用:去掉字串的前n個位置的字元,如果n未指定,預設為1,如果指定的n小於等於0,則字串不變。如果n超出字串的長度,則字串變空,所以在做此操作的時候要注意n的指定。可以首先獲得該字串的長度,方法:len=strlen(c)。

mode:指定字串截斷的方向。

left:從左邊截斷

right:從右邊截斷

circular:把左邊的字元放到右邊。

shift up to .:

作用:把字串中在str以前的字元都去掉,同樣可以指定mode,原理同上。

shift left deleting leading .

shift right deleting trailing .:

作用:這兩個語句就是把字串c中前的(left)或者後的(right)的字元str都去掉。

以上語句常用的場合:

a.去掉字串中的前導字元。例如:如果alv中定一了乙個欄位是10位的字元,裡面放的是so,po等number,而你不想顯示前面的0,那麼就可以這樣做:shift left deleting leading 0.

b.已知某個字串中包含固定的字元,想把這個固定字元前面的字元刪掉,那麼可以使用:shift up to 。例如:某個物料,通過增強mga00002和mga00003對其加了字首,這個字首部分是在某固定值表中取得的資料,在具體顯示中,要把其字首去掉。如te-mrp-mat1中想把te去掉,mrp表示該物料是跑mrp的,需求要求把te-去掉,mrp可以在固定值表中取得,則可以使用shift up to 'mrp'.

2).replace:替換字串

replace with into [length ].:

作用:把字串c中的str1替換成str2,如果指定l,就是指定了替換的長度。如果替換成功,則sy-subrc設定成0。

常用場合:

字串的替換操作比較常用,需要注意的是l的指定長度。

3). translate:轉換字串

translate to upper case.

translate to lower case.:

作用:字串的大小寫的轉換

translate using . :

作用:根據規則r轉換字串c

常用場合:

sap系統一般都是使用大寫字母的,但是某些特定的字段卻是用小寫字母來標記的,在操作這些欄位的時候就需要注意大小寫的轉換了。轉換規則倒是不太常用,到現在我還沒有遇到過。

4). search:查詢字串

search for .:

作用:在字串c中查詢str,如果找到了,sy-subrc為0,sy-fdpos為找到字串的具體位置。

需要說明的地方:注意模式的使用

指定str:查詢str,str中後面的空格忽略

指定.str.:查詢str,包含了str中尾部的空格

指定*str:查詢以str結尾的字串

指定str*:查詢以str開頭的字串

的指定:

主要用到的就是:starting at 指定開始位置

ending at 指定結束位置

常用場合:

一般用來判斷某個字串是否符合條件。也可以結合其他語句對字串進行操作。

5).condense:去掉字串中的空格

condense [no-gaps].:

作用:去掉字串中的前面和後面的空格,如果指定no-gaps,則去掉字串中的所有空格。

常用場合:獲得字串的精確長度,用於判斷。

6).split:拆分字串

split at into ... .

作用:按照分割字元del把字串c分割成c1…cn。

split at into table .

作用:按照分割字元del把c分割,然後放到內錶中的相應字段

常用場合:

檔名的分割,根據完整的檔案路徑加檔名把檔名分割出來。

難點:無法確定要分割多少次.

解決方法:兩兩分割,到最後的那個就是了。例如:str=c:/dir1/dir2/dir3/file

split str at '/' into str1 str2.

find str2 for '/'.

check sy-subrc = 0.

do.find str2 for '/'.

if sy-subrc = 0.

split str2 into str1 str2.

else.

exit.

endif.

enddo.

檔案上傳的型別是字串,把其分割後放到內錶中。例如上面的問題:

data: begin of itab occurs 0 ,

col1(30) type c,

end of itab.

split str at '/' into table itab.

describe table itab lines line.

read table itab index line.

itab-col1就是file

7).concatenate:連線字串

concatenate ... into [separated by ].

作用:把c1…cn用s分隔連線到c中

MySQL 基礎語法 資料型別

ddl 語句 資料定義語句,定義不同資料庫 資料表 列 索引等資料庫物件,常用關鍵字有create drop alter等 dml 語句 資料操作語句,用於新增 刪除 修改和查詢資料庫記錄,並檢查資料的完整性。常用關鍵字有 insert delete update select等 dcl 語句 資料...

C 基礎 (1) 基本語法 資料型別

1.成員變數 變數是類的屬性或資料成員,用於儲存資料。2.成員函式 函式是一系列執行指定任務的語句,類中的成員函式指其方法 c 中有3種資料型別 值型別 引用型別 指標型別 1 值型別可以直接分配資料,例如你宣告乙個int型別,系統開闢乙個記憶體空間儲存該int的值 2 引用型別不儲存資料,而是儲存...

ABAP資料型別

abap 4 資料型別 下表總結了 abap 4 中預定義的 基本資料類 型 有效大 小以位元組為 單位 資料型別 默 認大小 有效 大小 初始值 說明c1 1 65535 space 文 本 字元 字母數字字 符 d8 8 00000000 日 期 格式 yyyymmdd f8 80浮 點數i4 ...