类型声明

时间:2016-02-21 06:45:17

标签: abap

我已经以这种方式声明了表gt_log_req,因为用户要求输入新字段zzname_create。以前它只使用标准的alv类型表,但是没有这样的字段,所以......

types: begin of ty_log_req,
 include type zmms_stock_rep_log_alv,
  ZZNAME_CREATE type resb-ZZNAME_CREATE,
  end of ty_log_req.

DATA: gt_log_req TYPE TABLE OF ty_log_req.

......以及之后的

DELETE gt_log_req
         WHERE dtres_reasid <> '000'.

但是这样我就遇到了dtres_reasid的“没有这样的字段”错误,但它出现在zmms_stock_rep_log_alv中!我哪里错了?

1 个答案:

答案 0 :(得分:2)

您已在结构中添加了名为INCLUDE的组件,因此字段名称为include-dtres_reasid。我怀疑这是你的意图,但你在那里犯了一个常见的入门级错误:INCLUDE TYPE / INCLUDE STRUCTURE是单独的指令,必须在与TYPES指令相同的级别输入。因此,您需要以任意方式结束TYPES语句INCLUDE,并以新的TYPES语句开头。

TYPES: BEGIN OF ty_log_req.
         INCLUDE TYPE zmms_stock_rep_log_alv.
TYPES:   zzname_Create TYPE resb-zzname_create, 
        END OF ty_log_req.

如果您使用了漂亮的打印机并启用了大小写转换,那么您可能早先发现了这一点。