将动态-内部表分配给字段符号。

2020-09-02 08:24发布

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

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


嗨!

我想在运行时将内部表分配给字段符号。 我想通过参数说来提供内部表名:P_TABLENAME。

我正在尝试这样做,但无法分配。

P_TABLENAME ='MARA'。

将表字段(P_TABLENAME)分配给

但是,如果我这样做,它将分配给字段符号:

表:MARA。

将表字段MARA分配给

请向我提出建议。

谢谢

Darshan Patel

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

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


嗨!

我想在运行时将内部表分配给字段符号。 我想通过参数说来提供内部表名:P_TABLENAME。

我正在尝试这样做,但无法分配。

P_TABLENAME ='MARA'。

将表字段(P_TABLENAME)分配给

但是,如果我这样做,它将分配给字段符号:

表:MARA。

将表字段MARA分配给

请向我提出建议。

谢谢

Darshan Patel

付费偷看设置
发送
3条回答
蓋茨
1楼 · 2020-09-02 08:46.采纳回答

您好尝试此代码,它将起作用并奖励我..它将允许您在选择屏幕上提供表名-

&----


*&报告ZGILL_FS *

*&*

&----


*&*

*& *

&----


REPORT ZGILL_FS行大小为250

行数为65。

参数p_table

字段符号类型表。

字段符号类型任意。

类型:Itab的开头,

t_name类型的标签名,

t_ref类型对数据的引用,

itab的结尾。

data itab1类型的itab表具有唯一性 密钥t_name。

使用p_table执行fetch_data。

使用p_table执行print_table。

&----


* &表格fetch_data

&- -


  • 文本

----


  • -> P_P_TABLE文本

----


使用P_TABLE1类型的标签名来获取数据。

<

itab2-t_name = p_table1。

创建(itab2-t_name)的数据itab2-t_ref类型表。

分配itab2 -t_ref-> *到

将itab2附加到itab1。

从(p_table1)的25行中选择*到表的相应字段中。

ENDFORM。 " fetch_data

&----


*&表格print_table

&----


  • 文本

----


  • -> P_P_TABLE文本

----


FORM print_table,使用P_TABLE1类型的标签名。

DATA t_ref1类型REF TO数据。

数据itab2类型itab。

字段符号任何类型。

使用密钥t_name = p_table1将表itab1读入itab2。

ASSIGN itab2-t_ref-> * TO

创建数据t_ref1类似的行。

ASSIGN t_ref1-> * TO

DO。

*读取表分配索引1。

读取表分配索引SY-INDEX。

* WRITE:/p_table1。

NEW-LINE。

如果sy-subrc <> 0。

退出。

ENDIF。

DO。

分配结构的sy-index

IF sy-subrc <> 0.

退出。

ENDIF。

写:,''。

ENDDO。

ENDDO 。

ENDFORM。" print_table

CJones
2楼-- · 2020-09-02 08:27

嗨,

看到这个。

表格TRDIR。

数据名称(10)值'TRDIR-NAME'。

FIELD-SYMBOLS

将" XYZ_PROG"移动到TRDIR-NAME。

将表字段(名称)分配给

输出:XYZ_PROG

选中此项以获取更多信息。

http://www.sts.tu-harburg。 de/teaching/sap_r3/ABAP4/assign.htm

奄奄一息的小鱼
3楼-- · 2020-09-02 08:38

我们可以使用字段符号来选择运行时内存结构和表...

示例:假设我们已经创建了代理商销售订单,将自动创建DO,我们需要验证订单数量,计划行确认数量(系统根据批次可用性自动计算)和DO数量是否相同,然后仅提交 语句应以其他方式回滚执行。...在此示例中,使用BAPI_SALESORDER_CREATEFROMDAT2创建订单后,在执行BAPI_COMMIT之前,我们可以使用以下示例读取运行时结构和表

数据:fxvbep TYPE vbep。

数据:字段(50)。

FIELD-SYMBOLS: TYPE表。 "任何。"表。 " vbep。

字段='(SAPMV45A)FXVBEP []'。 "计划行数

分配(字段)到

数据:field1(50)。

字段符号:类型rv45a。

字段1 ='(SAPMV45A)RV45A'。 "订单数量

分配(field1)到

数据:field2(50)。

FIELD-SYMBOLS: TYPE Lipsd。

field2 ='(SAPMV50A)LIPSD'。 "交货数量

分配(field2)至

读取表进入fxvbep索引1。

如果 -kwmeng = fxvbep-bmeng AND
-kwmeng = -g_lfimg。

执行bapi_commit。

ELSE。
执行bapi_rollback。

ENDIF。

一周热门 更多>