显示 table 和 cl_salv_table:"itab is not type compatible with formal parameter t_table"
Displaying a table with cl_salv_table: "itab is not type compatible with formal parameter t_table"
我需要用 cl_salv_table
显示内部 table。目前我取 bkpf
table,切出三列并将它们插入内部 table。但是现在说参数和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( ).
内部 table 是用 header 行声明的(因为 OCCURS),这是过时的并且在 OO 环境中不受支持。您必须像这样声明 table:
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 替换了。
我需要用 cl_salv_table
显示内部 table。目前我取 bkpf
table,切出三列并将它们插入内部 table。但是现在说参数和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( ).
内部 table 是用 header 行声明的(因为 OCCURS),这是过时的并且在 OO 环境中不受支持。您必须像这样声明 table:
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 替换了。