2013-03-11 42 views
0

通常我們聲明表字段作爲像下面的數據類型。ABAP動態地選擇表字段作爲數據類型

DATA:key TYPE VBAK-VBELN。

,但我想在聲明中動態地給字段名。 Like,

DATA:key TYPE VBAK- fieldname

任何幫助?

+1

您能否嘗試描述爲什麼要動態聲明類型? – vwegert 2013-03-11 13:41:28

+0

檢查了這一點,試圖獲得一個SAP堆棧交換開始http://area51.stackexchange.com/proposals/41621/sap-systems-applications-and-products – Jared 2013-03-13 16:31:53

回答

0

你可以做到這一點很容易地,如果你使用任何類型的字段符號。

DATA: lt_line type vbak. 
Field-Symbols: <dat> type any. 

Assign component (fieldname) of Structure lt_line to <dat>. 

如果你提供關於你正在嘗試做更多的信息,或許我可以提供一個更好的選擇:

然後,它是那樣簡單。

+0

感謝您的幫助。它幫助了我。我也發佈了我的最終答案。 – user10 2013-03-12 05:54:43

1

在我的情況下,兩個表和字段名稱是未知的。所以這是我最終的解決方案。

DATA: T_REF TYPE REF TO DATA, 
     TAB(20) TYPE c VALUE 'VBAP', 
     TAB_COMP(20) TYPE c VALUE 'WERKS'. 

FIELD-SYMBOLS: <T> TYPE ANY, 
       <COMP> TYPE ANY. 

CREATE DATA T_REF TYPE (TAB). 
ASSIGN T_REF->* TO <T>. 
ASSIGN COMPONENT TAB_COMP OF STRUCTURE <T> TO <COMP>. 

SELECT WERKS FROM VBAP INTO <COMP> UP TO 5 ROWS. 
    WRITE:/<COMP>. 
ENDSELECT. 
+2

@vwegert我可以從我的用戶界面傳遞任何表中的任何字段。 – user10 2013-03-12 09:24:44