微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

显示带有cl_salv_table的表:“ itab与形式参数t_table类型不兼容”

如何解决显示带有cl_salv_table的表:“ itab与形式参数t_table类型不兼容”

我需要显示一个cl_salv_table的内部表。目前,我使用bkpf表,切出三列并将其插入内部表。但是现在这是说参数和lt_bkpf是类型不兼容的。

这是我的代码

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 5(15) p_name1 FOR FIELD p_blart.
ParaMETERS: p_blart TYPE blart.

SELECTION-SCREEN END OF LINE.

AT SELECTION-SCREEN OUTPUT.
  p_name1 = 'Belegart'.

INITIALIZATION.
  p_blart = 'DD'. "Set default value
END-OF-SELECTION.

Data:
BEGIN OF gt_bkpf OCCURS 0,bukrs LIKE bkpf-bukrs,blart LIKE bkpf-blart,gjahr LIKE bkpf-gjahr,END OF gt_bkpf.

SELECT bukrs,blart,gjahr
  FROM bkpf
  WHERE blart LIKE @p_blart
  INTO CORRESPONDING FIELDS OF @gt_bkpf.
ENDSELECT.

cl_salv_table=>factory( IMPORTING r_salv_table = go_table
                        CHANGING t_table = gt_bkpf ).

  go_table->display( ).

解决方法

内部表用标题行声明(由于OCCURS),这已过时,并且在OO环境中不受支持。您必须像这样声明表:

TYPES: BEGIN OF ty_bkpf,bukrs TYPE bkpf-bukrs,blart TYPE bkpf-blart,gjahr TYPE bkpf-gjahr,END OF ty_bkpf.

DATA: lt_bkpf TYPE STANDARD TABLE OF ty_bkpf.

请注意,LIKE也已被TYPE取代。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。