ABAP定义一个结构,然后再根据这个结构来定义一个内表

DATA:BEGINOFtyp_man,name(20)TYPEc,heightTYPEpDECIMALS2,weightTYPEpDECIMALS2,ENDOFtyp_... DATA: BEGIN OF typ_man,
name(20) TYPE c,
height TYPE p DECIMALS 2,
weight TYPE p DECIMALS 2,
END OF typ_man.
DATA: gt_tb LIKE TABLE OF typ_man. 我想问的是第一个DATA换成TYPES为什么会出错?第二个DATA里面有个LIKE,为什么这个LIKE不能用TYPE?能不能详细解释一下,
展开
 我来答
静水逐花
推荐于2017-09-08 · TA获得超过1032个赞
知道小有建树答主
回答量:733
采纳率:0%
帮助的人:488万
展开全部

这地方有两个概念,数据类型与数据对象

数据类型有简单的基本类型,比如你用到的 I N C P等,也有根据这些基本类型自己定义的结构化数据类型,比如自己用types定义的,系统SE11创建件的结构

定义数据对象使用关键字data,定义数据类型使用关键字types

定义数据对象的时候两种常用的方式,一个是参考数据类型,一个是参考数据对象

参考数据类型的方式是使用type关键字,比如:data lv_str(10) type c.

参考数据对象的方式是使用like关键字,比如:data lv_str1 like lv_str.

你使用data关键字定义的typ_man,实际上是一个结构化的数据对象

参考数据对象定义gt_tb的时候,应该使用like,而不是type

你看这是我在自己代码里copy的一段

TYPES: BEGIN OF ty_itab,
  sel TYPE c,
  mjahr TYPE mjahr,
  mblnr TYPE mblnr,
  zeile TYPE mblpo,
  bwart TYPE bwart,
  werks TYPE werks_d,
  matnr TYPE matnr,
  menge TYPE menge_d,
  color(4) TYPE c,                            "行颜色
  cell_color TYPE slis_t_specialcol_alv,      "单元格颜色
  exception(1),                               "异常
  icon TYPE icon_d,                           "Icon
  symbol TYPE icon_d,                         "Symbol
END OF ty_itab.
DATA: gt_itab TYPE STANDARD TABLE OF ty_itab ,
      wa_itab like line of gt_itab.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式