将动态内部表转换为内部表

2020-08-22 00:47发布

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

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


大家好,

我已经使用字段符号创建了一个动态内部表。 现在,我需要将该动态Itab转换为另一个普通的内部表。 谁能告诉我如何将dyn_itab转换为另一个itab。

我用于创建动态表的代码:

调用方法cl_alv_table_create => create_dynamic_table

导出

i_style_table ='X'

it_fieldcatalog = it_fcat1

导入

ep_table = gt_dyn_table

例外情况

generate_subpool_dir_full = 1

其他= 2。

ASSIGN gt_dyn_table-> *至

创建数据new_line,例如的行。

ASSIGN new_line-> * TO

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

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


大家好,

我已经使用字段符号创建了一个动态内部表。 现在,我需要将该动态Itab转换为另一个普通的内部表。 谁能告诉我如何将dyn_itab转换为另一个itab。

我用于创建动态表的代码:

调用方法cl_alv_table_create => create_dynamic_table

导出

i_style_table ='X'

it_fieldcatalog = it_fcat1

导入

ep_table = gt_dyn_table

例外情况

generate_subpool_dir_full = 1

其他= 2。

ASSIGN gt_dyn_table-> *至

创建数据new_line,例如的行。

ASSIGN new_line-> * TO

付费偷看设置
发送
6条回答
骆驼绵羊
1楼-- · 2020-08-22 00:59

您可能会创建一些动态abap来定义变量,但这非常复杂并且可能无法正常工作。 为什么要避免使用字段符号? 通过它们访问动态表应该没有问题。 请说明您对静态表的需求。

哎,真难
2楼-- · 2020-08-22 01:19

我对该动态表没有任何结构。 该动态表是在该字段目录的帮助下在运行时创建的,并且字段目录列也无法修复,这些字段是在运行时动态添加的。

下面的代码:

FIELD-SYMBOLS: TYPE TABLE,

TYPE ANY

任何类型。

DATA:gt_dyn_table TYPE REF TO数据,

gw_line TYPE REF TO data。

(附加字段目录的代码)

计数=计数+ 1。

wa_fcat1-col_pos =计数。

wa_fcat1-coltext ='FR SALVAGE CUM%'。

wa_fcat1-fieldname ='CFSAL_PERC'。

将wa_fcat1添加到it_fcat1。

清除:wa_fcat1。

(使用另一个内部表(it_proc1)条目将动态列添加到字段目录的内部表中的代码

在it_proc1进入wa_proc1处循环。

将it_proc循环到wa_proc所在的frr_def_no = wa_proc1-frr_def_no。

count2 = count2 + 1。

ENDLOOP。

凝结计数3。

CONCATENATE col count3到count5。

计数=计数+ 1。

count3 = count3 + 1。

wa_fcat1-col_pos =计数。

wa_fcat1-coltext = wa_proc1-frr_def。

wa_fcat1-fieldname = count5。

将wa_fcat1添加到it_fcat1。

清除:wa_fcat1,count2。

ENDLOOP。

调用方法cl_alv_table_create => create_dynamic_table

导出

i_style_table ='X'

it_fieldcatalog = it_fcat1

导入

ep_table = gt_dyn_table

例外情况

generate_subpool_dir_full = 1

其他= 2。

现在我的要求是我想要gt_dyn_table动态表的静态内部表。

Alawn_Xu
3楼-- · 2020-08-22 01:00

您已经有了一个动态表。 您必须动态访问。 没有办法解决。 将动态表转换为静态表的整个想法毫无意义。 这几乎类似于要求四边形三角形的供应商。

您不是在说明您的要求,而是在说明您的要求的首选解决方案。 如果您明确说明了自己的要求,则可能会得到一些帮助。

处理动态表是一个常见问题解答,内容全面,并不难。 因此,我将锁定此讨论。

我是小鹏鹏啊
4楼-- · 2020-08-22 01:23

您好Swapnil,

已经有动态内部表。

如果您希望拥有普通内部表,那么 声明它并通过动态内部表填充它。

您正在面对什么问题?

葫芦娃快救爷爷
5楼-- · 2020-08-22 01:19

此消息已被审核。

我是小鹏鹏啊
6楼-- · 2020-08-22 01:11

嗨,

我遇到了同样的情况,但是我想将动态表作为Excel文件发送。 您可以使用fieldcatalog和动态表。 您将拥有一个表i_attachment(TYPE STANDARD TABLE OF solisti1。)然后,您将拥有内部表的所有行。 但是如何生成一个新的内部表,尤其是在运行时,确实是一个大问题。 也许对您有帮助。

最诚挚的问候。

DATA:g_sent_to_all TYPE子标志,
g_tab_lines TYPE i。 of solisti1,
i_body_msg类型标准表solisti1,
i_receivers类型标准表,somlreci1。

数据:w_document_data类似于i_document_data,
w_packing_list的类 类i_attachment的行,
w_body_msg,类i_body_msg的行,
w_receivers,类i_receivers的行。

类cl_abap_char_utilities定义负荷。 =>水平标签,
con_cret类型c值cl_abap_char_utilities => cr_lf。

环gt_fcat INTO gs_fcat。

匹配w_attachment gs_fcat字段名INTO w_attachment
单独按Tab。 >
ENDLOOP。

CONCATENATE con_cret w_attachment INTO w_attachment。
APPEND w_attachment TO i_attachment。
清除:w_attachment,gs_fcat,


LOOP AT INTO

LOOP AT gt_fcat INTO gs_fcat。
< br>分配结构的gs_fcat字段名称

如果不是初始。
并入w_attachment 并入w_attachment由con_tab分隔。
ELSE。
CONCATENATE w_attachment''INTO w_attachment由con_tab分隔。
ENDIF。

ENDLOOP。

CONCATENATE con_cret w_attachment INTO w_attachment。

APPEND w_attachment至i_attachment <。 br> CLEAR:w_attachment,

ENDLOOP。

------->``i_attachment''具有您想要的内部表的形状,逐行显示。

一周热门 更多>