ABAP如何将Structure数据转成内表

ABAP如何将Structure里面的数据转成内表
我有一个别人写好的Method,返回结构是一个Structure,里面的数据不止一行。我如何能将所有的Structure里面的数据转到一个内表(如itab)

你可以使用 APPEND LINES OF 语句将 Structure 中的数据逐行添加到内表中。

以下是一个示例代码:

TYPES: BEGIN OF ty_structure,
         field1 TYPE string,
         field2 TYPE string,
       END OF ty_structure.

DATA: it_structure TYPE STANDARD TABLE OF ty_structure,
      wa_structure TYPE ty_structure,
      itab TYPE STANDARD TABLE OF ty_structure.

* 假设 Method 返回的结构体已经被存储在 it_structure 中
* 遍历 it_structure 中的每一行数据
LOOP AT it_structure INTO wa_structure.
  APPEND wa_structure TO itab. " 将 Structure 中的数据添加到内表中
ENDLOOP.



以上代码中,我们首先定义了一个 ty_structure 类型的结构体和两个内表 it_structure 和 itab。然后,我们通过遍历 it_structure 内表中的每一行数据,并将其逐行添加到 itab 内表中。

请根据你实际使用的结构体和内表名称,将上面的代码修改为适合你的情况。

答案出自 编程语言 https://www.wodianping.com/

但是在Loop At it_structure.....时会报错,说它不是一个内表呀。如ZSC_S_ORCH_PROC_ITEM2SERVE是一个结构,
s_item2serve_list1是一个结构变量,用来存放Method返回的结果。
t_item2serve_list1是一个内表变量,用来存放结构转换后的结构。


```c
  DATA: s_item2serve_list1 type ZSC_S_ORCH_PROC_ITEM2SERVE.
  DATA: t_item2serve_list1 type STANDARD TABLE OF ZSC_S_ORCH_PROC_ITEM2SERVE.
  data: wa_item2serve_list1 TYPE ZSC_S_ORCH_PROC_ITEM2SERVE.



调用 方法时,用s_item2serve_list1来接收Method的结构

```c
 CALL METHOD ZCL_SC_ELE_ORCH_UTILS=>ZIF_SC_ELE_ORCH_UTILS~GET_LENS_ITEM_TO_SERVE_RULES
        EXPORTING
          I_QUOTATION         = <fs_ori_data>-vbeln
        IMPORTING
*         E_ID_CRULE          =
*         E_NAME_CRULE        =
*         E_DESC_CRULE        =
*         E_PRIORITY          =
*         E_SUB_PRIORITY      =
*         E_LAST_SITE_KEY     =
          ET_ITEM2SERVE_LIST  = s_item2serve_list1
          ET_PROFIL_AREA_LIST = t_area_list1
*         E_ERROR_MSG         =

下面就是想用你说的方法来转换,但报错

     loop at s_item2serve_list1 INTO wa_item2serve_list1.
       
     endloop.

img

有人说如果类型是Structure,那结果肯定只有一行,那直接用Append就可以了。
如果有多行,那类型应该定义为Table。