我的基于OO的程序中出现"找不到字段目录"错误

2020-08-24 06:14发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好社区,

我有以下基于OO概念的简单代码,并且出现以下错误:"未找到字段目录"。

任何帮助或建议都会受到欢迎,请记住我是初学者。

感谢您抽出宝贵的时间来帮助我。

这是我的代码:

 CLASS lcl_deliveries定义。
   公共部分。
     类型:开始于lty_likp,
       交货类型为LIKP-VBELN,
     结束于lty_likp。

     方法:get_deliveries_data,
               build_fieldcatlog,
               display_alv。

     数据:lty_likp的gt_likp类型标准表,
           gt_fcat类型lvc_t_fcat。
 ENDCLASS。

 类别lcl_deliveries的实现。

   方法get_deliveries_data。
     选择vbeln INTO TABLE me-> gt_likp
                   来自likp
                   erdat>'20120201'和erdat <'20120215'。
   终结法。

   方法build_fieldcatlog。
     通话功能'LVC_FIELDCATALOG_MERGE'
     出口
         i_structure_name ='lty_likp'
         i_internal_tabname ='gt_likp'
       改变
         ct_fieldcat = gt_fcat
       例外情况
         接口不一致= 1
         程序错误= 2
         其他= 3。
     如果sy-subrc <> 0。
       消息ID sy-msgid类型sy-msgty编号sy-msgno
               与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
     万一。
   终结法。

   方法display_alv。
     通话画面100。
   终结法。
                 
 ENDCLASS。

 选择开始。
   数据:lo_deliveries类型参考lcl_deliveries,
         lo_container_100类型参考cl_gui_custom_container,
         lo_grid类型参考cl_gui_alv_grid。

   创建对象lo_deliveries。

   lo_deliveries-> get_deliveries_data()。

   创建对象lo_container_100
     出口
       container_name ='ALV'。

   创建对象lo_grid
     出口
       i_parent = lo_container_100。

   lo_deliveries-> build_fieldcatlog()。

   调用方法lo_grid-> set_table_for_first_display
     改变
       it_outtab = lo_deliveries-> gt_likp
       it_fieldcatalog = lo_deliveries-> gt_fcat
     例外情况
       invalid_parameter_combination = 1
       程序错误= 2
       too_many_lines = 3
       其他= 4。
   如果sy-subrc <> 0。
     消息ID sy-msgid类型sy-msgty编号sy-msgno
             与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
   万一。

   lo_deliveries-> display_alv()。
 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好社区,

我有以下基于OO概念的简单代码,并且出现以下错误:"未找到字段目录"。

任何帮助或建议都会受到欢迎,请记住我是初学者。

感谢您抽出宝贵的时间来帮助我。

这是我的代码:

 CLASS lcl_deliveries定义。
   公共部分。
     类型:开始于lty_likp,
       交货类型为LIKP-VBELN,
     结束于lty_likp。

     方法:get_deliveries_data,
               build_fieldcatlog,
               display_alv。

     数据:lty_likp的gt_likp类型标准表,
           gt_fcat类型lvc_t_fcat。
 ENDCLASS。

 类别lcl_deliveries的实现。

   方法get_deliveries_data。
     选择vbeln INTO TABLE me-> gt_likp
                   来自likp
                   erdat>'20120201'和erdat <'20120215'。
   终结法。

   方法build_fieldcatlog。
     通话功能'LVC_FIELDCATALOG_MERGE'
     出口
         i_structure_name ='lty_likp'
         i_internal_tabname ='gt_likp'
       改变
         ct_fieldcat = gt_fcat
       例外情况
         接口不一致= 1
         程序错误= 2
         其他= 3。
     如果sy-subrc <> 0。
       消息ID sy-msgid类型sy-msgty编号sy-msgno
               与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
     万一。
   终结法。

   方法display_alv。
     通话画面100。
   终结法。
                 
 ENDCLASS。

 选择开始。
   数据:lo_deliveries类型参考lcl_deliveries,
         lo_container_100类型参考cl_gui_custom_container,
         lo_grid类型参考cl_gui_alv_grid。

   创建对象lo_deliveries。

   lo_deliveries-> get_deliveries_data()。

   创建对象lo_container_100
     出口
       container_name ='ALV'。

   创建对象lo_grid
     出口
       i_parent = lo_container_100。

   lo_deliveries-> build_fieldcatlog()。

   调用方法lo_grid-> set_table_for_first_display
     改变
       it_outtab = lo_deliveries-> gt_likp
       it_fieldcatalog = lo_deliveries-> gt_fcat
     例外情况
       invalid_parameter_combination = 1
       程序错误= 2
       too_many_lines = 3
       其他= 4。
   如果sy-subrc <> 0。
     消息ID sy-msgid类型sy-msgty编号sy-msgno
             与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
   万一。

   lo_deliveries-> display_alv()。
 
付费偷看设置
发送
6条回答
CJones
1楼 · 2020-08-24 06:32.采纳回答

我将报告更改为SALV,它的工作方式非常吸引人,易于理解,并具有许多"打包"中的有用技巧。
我推荐它,并感谢您向我介绍它。

最诚挚的问候,谢谢!!!

半个程序猿
2楼-- · 2020-08-24 06:35

不建议使用CL_GUI_ALV_GRID。

建议使用CL_SALV_TABLE。

特别是

NB:使用LVC_FIELDCATALOG_MERGE的参数i_internal_tabname要求您以特殊的方式声明相应的变量,当前尚未正确声明。

Nir深蓝
3楼-- · 2020-08-24 06:37

您应该在参数i_structure_name中使用全局结构(在SE11中定义),不需要表参数。

粗暴的香蕉
4楼-- · 2020-08-24 06:52

+1到Sandra。 必须仔细检查问题日期,以确保这不是10年前突然复活的帖子。 SALV是必经之路,根本无需担心字段目录,没有屏幕,没有任何东西,非常简单。 有很多演示程序可以搜索SALV * DEMO *报告。

Alawn_Xu
5楼-- · 2020-08-24 06:36

Nikola Milojic

两个更正:

1)您应该仅引用SE11中定义的结构,不能像已经完成的那样提供内联/本地结构。

2)提要 您的字段目录参数目录在CAPS中进行检查,并检查

下面的代码示例以供参考。

 METHOD build_fieldcatlog。
     通话功能'LVC_FIELDCATALOG_MERGE'
     出口
     *** i_structure_name ='LTY_LIKP'->错误
         i_internal_tabname ='GT_LIKP'
       改变
         ct_fieldcat = gt_fcat
       例外情况
         接口不一致= 1
         程序错误= 2
         其他= 3。
     如果sy-subrc <> 0。
       消息ID sy-msgid类型sy-msgty编号sy-msgno
               与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
     万一。
   ENDMETHOD。

注意!

吹牛啤
6楼-- · 2020-08-24 06:32

并选择i_structure_name或i_internal_tabname,不要两者都选。

并以大写字母作为经验法则,在任何地方, 在引用字段名称,变量,SAP对象等时。

一周热门 更多>