如何在方法中使用VALUE

2020-08-30 00:36发布

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

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


嗨,

我正在尝试学习Value的新7.4 ABAP语法,并将新记录添加到内部表中。 我有类似的代码:

从ty_data开始,
            fld1 TYPE CHAR10,
            fld2 TYPE i,
            fld3 TYPE i,
 结束于ty_data。
 数据:ty_data的it_data类型标准表。

 做十次。
   it_data =值#(基础it_Data(fld1 ='ITERATION'
                                     fld2 = sy-index
                                     fdl3 = 1))。
 结束。

这有效。 但是,当我在一种方法中执行此操作并将内部表参数化为一个不断变化的参数时,我得到:不存在名称为"("。"(" .. error)的组件。

方法示例
     改变
       !C_DATA类型ty_data。
  方法示例
    c_data =值ty_data(base it_Data(fld1 ='ITERATION'
                                           fld2 = sy-index
                                           fdl3 = 1))。
  

我在做什么错了?

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

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


嗨,

我正在尝试学习Value的新7.4 ABAP语法,并将新记录添加到内部表中。 我有类似的代码:

从ty_data开始,
            fld1 TYPE CHAR10,
            fld2 TYPE i,
            fld3 TYPE i,
 结束于ty_data。
 数据:ty_data的it_data类型标准表。

 做十次。
   it_data =值#(基础it_Data(fld1 ='ITERATION'
                                     fld2 = sy-index
                                     fdl3 = 1))。
 结束。

这有效。 但是,当我在一种方法中执行此操作并将内部表参数化为一个不断变化的参数时,我得到:不存在名称为"("。"(" .. error)的组件。

方法示例
     改变
       !C_DATA类型ty_data。
  方法示例
    c_data =值ty_data(base it_Data(fld1 ='ITERATION'
                                           fld2 = sy-index
                                           fdl3 = 1))。
  

我在做什么错了?

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

这是因为您将参数声明为TY_DATA类型,它是结构而不是表类型...

闻人可可
2楼-- · 2020-08-30 01:38

感谢Sandra! 做到了。

土豆飞人
3楼-- · 2020-08-30 01:39

@ Dae Jin Swoppe 我注意到一个 东西,最后一行中有拼写错误,应该为fld3 = 1,就像在声明中那样为fld3。 我还尝试了下面的类似代码,但它没有给出任何语法,您可以像下面这样尝试。

 CLASS lcl_local DEFINITION。
   公共部分。
     TYPES:ty_t009 t009的类型表。
     方法示例
       改变
         c_data类型ty_t009。
 ENDCLASS。




 类别lcl_local IMPLEMENTATION。
   方法示例。
     c_data = VALUE#(基本c_data(mandt ='100'
                                     periv ='Z9'))。
   终结法。
 ENDCLASS。
 
spaceman01
4楼-- · 2020-08-30 01:19

嗨,唐加,

感谢您的快速反馈。 你是对的。 这些是编写示例代码时的错别字。 如果可以编辑我的原始帖子,我可以尝试修复它。 以您的示例为例,您可以尝试这样做吗?

 CLASS lcl_local定义。
   公共部分。

     方法示例
       改变
         c_data类型t009。
 ENDCLASS。


 类别lcl_local IMPLEMENTATION。
   方法示例。
     c_data = VALUE#(基本c_data(mandt ='100'
                                     periv ='Z9'))。
   终结法。
 ENDCLASS。

一周热门 更多>