取消内联声明怀疑

2020-09-16 02:42发布

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

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


嗨,

我只是在尝试使用abap内联声明的简单代码。 但是,我陷入了某些特定的代码行中。 下面是代码片段:

 TYPES:类型TY_FINAL,
  VBELN TYPE VBELN_VA,
  VKORG TYPE VKORG,
  KUNNR TYPE KUNNR,
  POSNR类型POSNR_VA,
  MATNR TYPE MATNR,
  TY_FINAL结束。
 数据:L_REF TYPE REF TO DATA,
  VBELN1类型VBELN_VA。
 选择选项:S1为VBELN1。
  选择开始。
  创建数据L_REF类型TY_FINAL。
  SELECT VBELN,
  VKORG,
  昆尔
  从VBAK
  到表@data(IT_VBAK)
  @ S1中的VBELN。
  如果IT_VBAK不是INITIAL。
  SELECT VBELN,
  POSNR,
  玛特尔
  从VBAP
  到表@data(IT_VBAP)
  对于@IT_VBAK中的所有条目
  在哪里VBELN = @ IT_VBAK-VBELN。
  万一。
  将IT_FINAL分配到字段符号()。
  ASSIGN L_REF-> *至FIELD-SYMBOL()。
 循环至IT_VBAK分配字段符号()。
   -VBELN =  -VBELN。
   -Vkorg =  -Vkorg。
   -kunnr =  -kunnr。
  读取表it_​​vbap,并用键vbeln =  -vbeln分配 -posnr =  -posnr。
   -matnr =  -matnr。
  将附加到。
  结局。
  UNASSIGN 

这是我的疑问:

1)使用内联声明时,有没有其他方法来声明选择选项?还是像传统方法一样,我必须使用DATA语句使用变量(我必须声明vbeln1类型为vbeln_va)?

2)如何将内部表分配给字段符号?

将IT_FINAL分配给字段符号()。

3)如何使用内联声明创建引用变量(在这种情况下为L_REF)?

此致

马特

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

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


嗨,

我只是在尝试使用abap内联声明的简单代码。 但是,我陷入了某些特定的代码行中。 下面是代码片段:

 TYPES:类型TY_FINAL,
  VBELN TYPE VBELN_VA,
  VKORG TYPE VKORG,
  KUNNR TYPE KUNNR,
  POSNR类型POSNR_VA,
  MATNR TYPE MATNR,
  TY_FINAL结束。
 数据:L_REF TYPE REF TO DATA,
  VBELN1类型VBELN_VA。
 选择选项:S1为VBELN1。
  选择开始。
  创建数据L_REF类型TY_FINAL。
  SELECT VBELN,
  VKORG,
  昆尔
  从VBAK
  到表@data(IT_VBAK)
  @ S1中的VBELN。
  如果IT_VBAK不是INITIAL。
  SELECT VBELN,
  POSNR,
  玛特尔
  从VBAP
  到表@data(IT_VBAP)
  对于@IT_VBAK中的所有条目
  在哪里VBELN = @ IT_VBAK-VBELN。
  万一。
  将IT_FINAL分配到字段符号()。
  ASSIGN L_REF-> *至FIELD-SYMBOL()。
 循环至IT_VBAK分配字段符号()。
   -VBELN =  -VBELN。
   -Vkorg =  -Vkorg。
   -kunnr =  -kunnr。
  读取表it_​​vbap,并用键vbeln =  -vbeln分配 -posnr =  -posnr。
   -matnr =  -matnr。
  将附加到。
  结局。
  UNASSIGN 

这是我的疑问:

1)使用内联声明时,有没有其他方法来声明选择选项?还是像传统方法一样,我必须使用DATA语句使用变量(我必须声明vbeln1类型为vbeln_va)?

2)如何将内部表分配给字段符号?

将IT_FINAL分配给字段符号()。

3)如何使用内联声明创建引用变量(在这种情况下为L_REF)?

此致

马特

付费偷看设置
发送
3条回答
哎,真难
1楼 · 2020-09-16 03:27.采纳回答

阅读文档吗?

https: //help.sap.com/http.svc/rc/abapdocu_752_index_htm/7.52/zh-CN/index.htm?file=abeninline_declarations.htm

"使用内联声明时,有其他方法来声明选择选项吗?还是必须像传统方式那样使用DATA语句来使用变量"

不,您唯一可以做的(但这不会更改SELECT-OPTIONS语句):

 DATA(var)= VALUE Scarr-carrid()。
 SELECT-OPTIONS选择VAR。
 

"如何将内部表分配给字段符号?"

正如图所示,但是当然内部表必须存在,ASSIGN后面的位置不是声明位置:

数据itab TYPE TABLE OF字符串。
 将itab分配给FIELD-SYMBOL()。
 

"如何使用内联声明创建引用变量(在这种情况下为L_REF)":

小事...

 DATA VAR TYPE i。
 引用var INTO DATA(dref1)。
 DATA(dref2)= REF#(var)。
 
粗暴的香蕉
2楼-- · 2020-09-16 03:38

感谢使用代码块-您认为下次您还可以通过缩进来很好地格式化代码,以使其更易于阅读吗?

黑丝骑士
3楼-- · 2020-09-16 03:22
# p #

"我认为内联声明的目的是完全避免将DATA语句用于声明目的。"

谁这么说? 不,您在适当的地方使用它。 当然,您实际上可以摆脱DATA,但是为什么呢?

类型Itab带空键的字符串的标准类型表。
 DATA(itab)= VALUE itab()。

 将itab分配给FIELD-SYMBOL()。
 

一周热门 更多>