SAP-ABAP ALV报错 NO_FIELDCATALOG_AVAILABLE


abap alv报错 NO_FIELDCATALOG_AVAILABLE

想通过内表字段结构,显示alv报表的字段,使用 CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE',但是失败了。

原因:REUSE_ALV_FIELDCATALOG_MERGE只能通过DDIC表或结构生成fieldcat字段,不能通过内表生成(以下情况除外)

*以下代码由于gt_alv内表的列在SE11都有【资料元素/Data Element】,非【固定类型】,所以 PERFORM get_field_cat .......gt_alv内表不会报错。
DATA: BEGIN OF gt_alv OCCURS 0,
        vbeln  LIKE ykisdt0001-vbeln,
        posnr  LIKE ykisdt0001-posnr,
        netwr  LIKE vbap-netwr,
        waerk  LIKE ykisdt0001-waerk,
        kwmeng LIKE ykisdt0001-kwmeng,
        vrkme  LIKE ykisdt0001-vrkme,
        zmeng  LIKE ykisdt0001-zmeng,
        zieme  LIKE ykisdt0001-zieme,
        status LIKE bapiret2-type,
        msg    LIKE bapiret2-message,

      END OF gt_alv.

FORM layout .

  PERFORM get_field_cat
  USING 'YKIR0001' " main program name
        'YKIR0001TOP' " top include name
        'GT_ALV'. " itab name

  PERFORM change_fieldcat ."USING 'X'.

  PERFORM output_alv
  TABLES gt_alv " output data itab
  USING 'YKIR0001'.  " main program name for save output format

ENDFORM.
使用内表调用REUSE_ALV_FIELDCATALOG_MERGE未报错示例原因

错误示例: