data references(只能指向abap定義的基本資料或者基本資料組合體)1、定義資料參考變數(data references)
data dref type ref to data.(指向任意型別,但在建立時必須指定物件型別)
data dref type ref to data_type.
或者types t_dref type ref to data.
data dref type t_dref.
create data
get reference of dobj into dref.
2、動態建立資料參考的記憶體空間(create data)
create data dref |這種語句建立的物件沒有名稱,只有位址變數指向該記憶體變數;在申明參考變數時,未指定型別則必須加|說明。
有時需要動態建立動態型別資料物件,語法如下
create data dref type (name).
get reference of dobj into dref.
4、訪問資料參考變數指定的資料
訪問資料參考變數指定的資料有兩種情況:
1) 對於使用data dref type ref to data_type來宣告的資料參考變數,程式可以直接通過->*運算子直接訪問資料;
**樣例
types: begin of struc_1,
a type i,
b type ref to sflight,
c type p,
end of struc_1.
data: s1 type struc_1.
types: begin of struc_2,
x(10) type c,
y type ref to struc_1,
z type i,
end of struc_2.
data:s2 type struc_2,
r2 type ref to struc_2.
if s1-a > 10.
create data s1-b.
s1-b->carrid = 'lh'.
s1-b->paymentsum = 1000.
endif.
s2-y->a = 100.
s2-y->*-a = 200. "same as s2-y->a
s2-y->b->fldate = sy-datum.
2) 對於使用data dref type ref to data來宣告的資料參考變數,程式如果要訪問資料參考變數指定的資料,你首先要將資料參考變數賦值給乙個字段符號(field sysbol)(是不能直接通過資料參考變數來訪問的).如果資料參考變數為初始化狀態, sy-subrc就返回4。
assign dref->* to [casting ...].
**樣例
data: numref type ref to data,
number type i value 123.
field-symbols: type any.
get reference of number into numref.
assign numref->* to .
關於ABAP測試
abaper寫程式通常都是自己寫自己測試,測完之後再讓業務顧問測試,業務顧問測完再讓使用者測試。後面的測試步驟是沒有問題的,但是自己寫程式自己測試,我覺得不是乙個好的方法。我覺得如果專案上有兩個或者多個abap的時候,可以每個人分別測試對方的程式,寫測試用例和報告。關於這方面的優點我覺得如下 1.發...
關於ABAP內錶
1.內錶的型別及定義 1 any table 即任意表型別,此種定義方式只能在傳遞引數的時候定義。例如 form using changing type any table 2 any table包括了兩種型別 index table和hashed table 1 index table 包括了st...
ABAP 關於abap語言的乙個錯誤的理解
在這麼多年的sap使用中,我一直以為不包塊在任何事件塊內的abap語句sap會自動新增到start of selection事件塊中,但今天無意被乙個新同事發現不是這樣。仔細查閱sap的abap語言幫助,幫助對於 不包塊在任何事件塊內的abap語句 是這樣定義的 在report或者program語句...