ITPUB论坛-中国最专业的IT技术社区

 
 注册
热搜:
查看: 470|回复: 0

[原创] "NO_FIELDCATALOG_AVAILABLE

[复制链接]
认证徽章
论坛徽章:
0
跳转到指定楼层
1#
发表于 2017-12-26 21:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
使用  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE',想通过内表显示alv的字段。但是失败了。请帮忙看下,哪里有问题。
  1. *&---------------------------------------------------------------------------------*
  2. *& Program Name           :  Z_XXXXXX
  3. *& Title                  :  入库单查询
  4. *& Create Date            :  2017/12/24
  5. *& Program Type           :  Report
  6. *& Description            :  本报表用于入款单查询的相关信息
  7. *&---------------------------------------------------------------------------------*
  8. REPORT ZST12_01
  9.         MESSAGE-ID 00
  10.         NO STANDARD PAGE HEADING.
  11. *&----------------------TABLE DEFINITION ------------------------------------------*
  12. TABLES: MKPF,  "商品凭证
  13.          MSEG,  "商品
  14.          MAKT,  "商品描述
  15.          T001W. "地点/分支机构

  16. *&----------------------TYPE-POOLS-------------------------------------------------*
  17. TYPE-POOLS: SLIS.
  18. *&----------------------VARIABLE DEFINITION----------------------------------------*
  19. DATA : FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE, "定义显示字段
  20.        GS_LAYOUT TYPE SLIS_LAYOUT_ALV,                     "定义显示布局
  21.        GT_SORT   TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE,"定义排序
  22.        T_SORT    TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE,"SORT FORMAT
  23.        GT_EVENTS TYPE SLIS_T_EVENT,                        "定义事件
  24.        G_REPID LIKE SY-REPID,                              "定义系统变量
  25.        GS_VARIANT TYPE DISVARIANT.                        "定义变式

  26. *-------------------INTERNAL TABLE DEFINITION----------------------------------*
  27. DATA: BEGIN OF I_TABLE OCCURS 0,
  28.               MBLNR   LIKE MSEG-MBLNR,  "商品凭证编号
  29.               ZEILE   LIKE MSEG-ZEILE,  "商品凭证中的项目
  30.               BLART   LIKE MKPF-BLART,  "凭证类型
  31.               XBLNR   LIKE MKPF-XBLNR,  "参考凭证号
  32.               BWART   LIKE MSEG-BWART,  "移动类型
  33.               MATNR   LIKE MSEG-MATNR,  "商品号
  34.               MAKTX   LIKE MAKT-MAKTX,  "商品名称
  35.               WERKS   LIKE MSEG-WERKS,  "地点
  36.               NAME1   LIKE T001W-NAME1, "地点名称
  37.               LGORT   LIKE MSEG-LGORT,  "库存地点
  38.               SOBKZ   LIKE MSEG-SOBKZ,  "特殊库存表示
  39.               MENGE   LIKE MSEG-MENGE,   "数量
  40.               BUDAT   LIKE MKPF-BUDAT,   "入库日期
  41.               DIDIAN(25),
  42.               END OF I_TABLE.

  43. FIELD-SYMBOLS <I_TABLE> LIKE I_TABLE.


  44. DATA : IT_01 LIKE I_TABLE OCCURS 0.

  45. DATA : BEGIN OF I_TABLE1 OCCURS 0,
  46.        MATNR LIKE MSEG-MATNR, "商品号
  47.        MAKTX LIKE MAKT-MAKTX, "商品名称
  48.        END OF I_TABLE1.

  49. DATA : BEGIN OF I_TABLE2 OCCURS 0,
  50.        WERKS LIKE MSEG-WERKS,  "地点
  51.        NAME1 LIKE T001W-NAME1, "地点名称
  52.        END OF I_TABLE2.

  53. *----------------------SELECTION-SCREEN-----------------------
  54. SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE TEXT-010.
  55. SELECT-OPTIONS : S_BUDAT FOR MKPF-BUDAT," OBLIGATORY,   " 库的记账日期
  56.                  S_BLART FOR MKPF-BLART,               "凭证类型
  57.                  S_BWART FOR MSEG-BWART DEFAULT '101', "移动类型
  58.                  S_MATNR FOR mseg-matnr,               "商品编码
  59.                  S_WERKS FOR MSEG-WERKS.               "地点
  60. SELECTION-SCREEN END OF BLOCK BLOCK1.


  61. *---------------------AT SELECTION-SCREEN--------------------------------
  62. AT SELECTION-SCREEN.

  63. INITIALIZATION.


  64. *-----------------------EVENT START-OF-SELECTION----------------------------
  65. START-OF-SELECTION.
  66.   CLEAR:I_TABLE.
  67.   REFRESH:I_TABLE.

  68.   PERFORM SUB_FETCHDATA."收集数据


  69.   IF I_TABLE[] IS INITIAL.
  70.      MESSAGE I368 WITH '没有符合条件的记录'.
  71.      EXIT. "代表跳出当前界面,回到选择界面
  72.   ENDIF.

  73. *-----------------------EVENT END-OF-SELECTION------------------------------
  74. END-OF-SELECTION.

  75.     PERFORM ALV-DISPLAY. "展示数据


  76. *------------------------------FORM FETCHDATA-------------------------------
  77. FORM SUB_FETCHDATA.
  78.    SELECT MSEG~MBLNR
  79.           MSEG~ZEILE
  80.           MKPF~BLART
  81.           MKPF~XBLNR
  82.           MSEG~BWART
  83.           MSEG~MATNR
  84.           MSEG~WERKS
  85.           MSEG~LGORT
  86.           MSEG~SOBKZ
  87.           MSEG~MENGE
  88.           MKPF~BUDAT
  89.    FROM MSEG INNER JOIN MKPF ON MSEG~MBLNR = MKPF~MBLNR
  90.              INTO CORRESPONDING FIELDS OF TABLE I_TABLE
  91.    WHERE     MKPF~BUDAT IN S_BUDAT
  92.          AND MKPF~BLART IN S_BLART
  93.          AND MSEG~BWART IN S_BWART
  94.          AND MSEG~MATNR IN S_MATNR
  95.          AND MSEG~WERKS IN S_WERKS.

  96. ** FIELD-SYMBOLS LOOP
  97.    LOOP AT I_TABLE ASSIGNING <I_TABLE>.
  98.     SELECT SINGLE MAKTX INTO <I_TABLE>-MAKTX FROM MAKT
  99.          WHERE MATNR = <I_TABLE>-MATNR AND SPRAS ='E'.
  100.     SELECT SINGLE NAME1 FROM T001W INTO <I_TABLE>-NAME1
  101.         WHERE WERKS =  <I_TABLE>-WERKS.
  102.     CONCATENATE <I_TABLE>-WERKS <I_TABLE>-NAME1 INTO <I_TABLE>-DIDIAN.
  103.    ENDLOOP.

  104. ENDFORM.  "SUB_FETCHDATA

  105. *---------------------ALV-DISPLAY-----------------------------------------
  106. FORM ALV-DISPLAY.
  107.   REFRESH FIELDCAT.
  108.   PERFORM FRM_FILL_FIELD.

  109.    GS_VARIANT-REPORT = SY-REPID.
  110.    GS_VARIANT-USERNAME = SY-UNAME.

  111. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  112.    EXPORTING
  113.       I_CALLBACK_PROGRAM = G_REPID
  114.       IT_FIELDCAT        = FIELDCAT[]
  115.       IS_LAYOUT          = GS_LAYOUT
  116.       I_SAVE             = 'A'
  117.       I_DEFAULT          = ''
  118.       IS_VARIANT         = GS_VARIANT  "变式
  119.       I_GRID_TITLE       = '入库单查询'
  120.       IT_SORT            = GT_SORT[]
  121.       IT_EVENTS          = GT_EVENTS[]
  122.    TABLES
  123.       T_OUTTAB           = I_TABLE
  124.    EXCEPTIONS
  125.       OTHERS             = 2.
  126. ENDFORM.  "EALV-DISPLAY

  127. *--------------------FORM FRM_FILL_FIELD---------------------------------------
  128. FORM FRM_FILL_FIELD.
  129.    CLEAR FIELDCAT.

  130.    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
  131.    EXPORTING
  132.      I_PROGRAM_NAME  = G_REPID
  133.      I_STRUCTURE_NAME = 'I_TABLE'
  134. *     I_INCLNAME = G_REPID
  135. *     I_CLIENT_NEVER_DISPLAY = 'X'
  136. *     I_BYPASSING_BUFFER = 'X'
  137. *     I_BUFFER_ACTIVE   = 'X'
  138.    CHANGING
  139.       CT_FIELDCAT  = FIELDCAT[]
  140.    EXCEPTIONS
  141.         INCONSISTENT_INTERFACE       = 1
  142.         PROGRAM_ERROR                = 2
  143.    OTHERS                       = 3.


  144. ENDFORM. "SUB FRM_FILL_FIELD
复制代码
报错信息如下,感觉就是CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE',这块fieldcat有问题,但是实在找不出原因,麻烦给个建议,谢谢大家。


打赏鼓励一下!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 |
  | | |
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表