2013-03-05 87 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).