2013-03-05 51 views
3

我試圖創建一個方法,該方法將導入一個假定所有結構元素都是平面和相同數據類型的結構。然後我想動態地將它轉換爲該類型的表並返回它。我應該從哪裏開始?我一直試圖讓這個工作幾個小時,並沒有得到任何好處。如何在ABAP中動態地將結構轉換爲內部表格

回答

4

您可以使用使用cl_alv_table_createcreate_dynamic_table形式像這樣:

* Create dynamic internal table and assign to FS 
    CALL METHOD cl_alv_table_create=>create_dynamic_table 
    EXPORTING 
     it_fieldcatalog = ifc 
     i_length_in_byte = 'X' "added by Paul Robert Oct 28, 2009 17:04 
    IMPORTING 
     ep_table   = dy_table. 
    ASSIGN dy_table->* TO <dyn_table>. 
* Create dynamic work area and assign to FS 
    CREATE DATA dy_line LIKE LINE OF <dyn_table>. 
    ASSIGN dy_line->* TO <dyn_wa>. 

Here是一個鏈接,這將幫助您開始。

+0

這已被檢舉的作爲唯一的鏈接的答案(它不會如果鏈接失效,這很有用,不幸的是,這種情況一直髮生)。你能否編輯這個在答案中包含必要的信息?謝謝! – josliber 2016-12-08 18:17:34

2

絕對沒有必要使用CL_ALV_TABLE_CREATE - 純粹的矯枉過正。使用Run Time Type Services (RTTS)獲取有關輸入數據的信息(和驗證有關的組件類型的假設),然後使用dynamic form of CREATE TABLE

* asssuming that l_type_name contains the type name of a single element 
    CREATE DATA lr_table TYPE STANDARD TABLE OF (l_type_name).