复制内部表定义并添加其他字段

2020-08-24 20:36发布

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

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


嗨,

最简单的方法是基于现有内部表动态定义内部表,但向第二个表添加其他字段。 这是动态完成的,而不是通过DATA语句。

类型:t_ds的开头,
ds类型DDOBJNAME,
结构类型DDOBJNAME,
类型(01)类型c,
数据类型DDOBJNAME,
febko类型febko," DEEP STRUCTURE
febep类型febep,"深度结构
febre类型t_febre,
t_ds的结尾。

类型:
t_ds的t_ds_tab类型表。

我想动态定义与t_ds完全一样的内部表,但带有一个附加字段(深):
bsid类型bsid。

谢谢,
弗雷德

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

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


嗨,

最简单的方法是基于现有内部表动态定义内部表,但向第二个表添加其他字段。 这是动态完成的,而不是通过DATA语句。

类型:t_ds的开头,
ds类型DDOBJNAME,
结构类型DDOBJNAME,
类型(01)类型c,
数据类型DDOBJNAME,
febko类型febko," DEEP STRUCTURE
febep类型febep,"深度结构
febre类型t_febre,
t_ds的结尾。

类型:
t_ds的t_ds_tab类型表。

我想动态定义与t_ds完全一样的内部表,但带有一个附加字段(深):
bsid类型bsid。

谢谢,
弗雷德

付费偷看设置
发送
4条回答
灬番茄
1楼 · 2020-08-24 21:36.采纳回答

RTTS可以做到这一点。

示例代码(不干净且未处理的异常!)

数据:lo_structdescr_in类型参考cl_abap_structdescr,
       lo_structdescr_out类型参考cl_abap_structdescr,
       lo_datadescr类型参考cl_abap_datadescr,
       lt_components TYPE cl_abap_structdescr => component_table,
       lref_tab TYPE REF TO数据。

 类型:开始于lty_test_s,
          t100 TYPE t100,"结构
          test_field1 TYPE字符串,
        结束于lty_test_s。

 * -------------------------------------------------  ------------------- *

 "获取原始组件
 lo_structdescr_in?= cl_abap_structdescr => describe_by_name('LTY_TEST_S')。
 lt_components = lo_structdescr_in-> get_components()。

 "更新组件
 lo_datadescr?= cl_abap_elemdescr => describe_by_name('BSID')。
 附加值cl_abap_structdescr => component(name ='BSID'
                                              类型= lo_datadescr)至lt_components。

 "创建新的动态结构和新表
 lo_structdescr_out?= cl_abap_structdescr => create(p_components = lt_components)。
 DATA(lo_tabdesc)= cl_abap_tabledescr => create(lo_structdescr_out)。
 创建数据lref_tab类型句柄lo_tabdesc。
 ASSIGN lref_tab-> *到FIELD-SYMBOL()。
SKY徐
2楼-- · 2020-08-24 21:25

腓特烈表哥 不要忘记照顾异常:-)

宇峰Kouji
3楼-- · 2020-08-24 21:28

嗨,弗雷德

您可以基于字段目录(例如ALV网格)创建内部表

   调用方法cl_alv_table_create => create_dynamic_table
     出口
       it_fieldcatalog = t_fldcat
     输入
       ep_table = o_newtable。
   ASSIGN o_newtable-> *至
DafaDDDa
4楼-- · 2020-08-24 21:36

将RTTS优先于此与GENERATE SUBROUTINE POOL一起使用的非官方方法(在一个程序中限制为36个调用,然后出现运行时错误)。

一周热门 更多>