如何在ABAP中动态地将结构转换为内部表

时间:2013-03-05 23:08:08

标签: structure sap abap

我正在尝试创建一个导入结构的方法,假设所有结构元素都是平面且相同的数据类型。然后我想动态地将它转换为具有该类型的表并返回它。我应该从哪里开始?我一直试图让它工作几个小时而且无处可去。

2 个答案:

答案 0 :(得分:4)

您可以create_dynamic_table使用cl_alv_table_create表单,如下所示:

* 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是一个可以帮助您入门的链接。

答案 1 :(得分: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).