嵌套动态表

2020-08-26 04:06发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家您好, 我有创建嵌套动态表...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

我有创建嵌套动态表的要求。

示例-

创建动态表(

使用上面创建的动态表创建一个嵌套的动态表()。

我尝试使用以下代码,但无法创建嵌套的动态表。

让我知道是否还有其他创建嵌套动态表的过程。

谢谢。

数据:
       lt_comptab类型cl_abap_structdescr => component_table,
       ls_comp与lt_comptab类似,
       lt_comptab2类型cl_abap_structdescr => component_table,
       ls_comp2与lt_comptab类似,
       lref_newstr类型参考cl_abap_structdescr,
       lref_tab_type类型引用到cl_abap_tabledescr,
       lt_fcat类型lvc_t_fcat,
       ls_fcat TYPE lvc_s_fcat,
       ls_dd03p类型dd03p,
       lt_data类型引用数据,
       lt_data2类型引用数据。
 字段符号:类型标准表。
 字段符号:类型标准表。
 通话功能'LVC_FIELDCATALOG_MERGE'
   出口
     i_structure_name ='SCARR'
   改变
     ct_fieldcat = lt_fcat
   例外情况
     接口不一致= 1
     程序错误= 2
     其他= 3。
 IF sy-subrc NE 0。
   消息ID sy-msgid类型sy-msgty编号sy-msgno
           与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
 万一。


 循环到lt_fcat INTO ls_fcat。
   如果ls_fcat-ref_table不是INITIAL。
     清除ls_dd03p。
     通话功能" BUS_DDFIELD_GET"
       出口
         i_tabnm = ls_fcat-ref_table
         i_fldnm = ls_fcat字段名称
       输入
         e_dd03p = ls_dd03p
       例外情况
         field_not_found = 1
         其他= 2。
     如果sy-subrc EQ 0。
       ls_comp-name = ls_fcat字段名。
       ls_comp-type?= cl_abap_datadescr => describe_by_name(ls_dd03p-rollname)。
       附加ls_comp至lt_comptab。
       清除ls_comp。
     万一。
   其他。
     ls_comp-name = ls_fcat字段名。
     ls_comp-type?= cl_abap_datadescr => describe_by_name(ls_fcat-rollname)。
     附加ls_comp至lt_comptab。
     清除ls_comp。
   万一。
 结局。


 清除ls_fcat。

 lref_newstr = cl_abap_structdescr => create(lt_comptab)。
 lref_tab_type = cl_abap_tabledescr => create(lref_newstr)。


 创建数据lt_data类型的句柄lref_tab_type。
 将lt_data-> *分配给。


 ls_fcat-fieldname ='NESTED_TABLE'。
 * ls_fcat-inttype ='CHAR'。
 * ls_fcat-intlen = 000006。
 ls_fcat-rollname = 。  "对于SFLIGHT
 附加ls_fcat至lt_fcat。


 ls_comp2-name = ls_fcat字段名称。
 ls_comp2-type?= cl_abap_datadescr => describe_by_name(ls_fcat-rollname)。


 将ls_comp2附加到lt_comptab2。


 DATA(lref_newstr2)= cl_abap_structdescr => create(lt_comptab)。
 DATA(lref_tab_type2)= cl_abap_tabledescr => create(lref_newstr2)。


 创建数据lt_data2类型句柄lref_tab_type2。
 将lt_data2-> *分配给
6条回答
compass1988
2020-08-26 04:47

嗨,Sandra Rossi,

下面是类型结构。

 TYPES:类型为ts_str,
          CARRID类型S_CARR_ID,
          CARRNAME类型为S_CARRNAME,
          CURRCODE类型为S_CURRCODE,
          URL类型S_CARRURL,
          nested_table类型标准表,带有空键,
        ts_str的结尾,

        ts_scarr的tt_str类型标准表,
       

        ts_deep的开头,
        nested_str类型char30,
        ts_str的选项卡类型标准表,
        ts_deep的结尾,

        tt_deep带有空键的ts_deep的标准类型表。

在上述类型TT_STR中,我想在运行时动态创建。

并使用TT_STR来创建动态深层结构TT_DEEP。

预先感谢。

一周热门 更多>