AMDP重复条目

2020-09-20 02:52发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我正在尝试为MARA和M...

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

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


你好

我正在尝试为MARA和MARC Table创建简单的AMDP类。

我收到重复的条目。

下面是我的代码:

AMDP类

 CLASS zcl_material_list定义
   上市
   最后
   创建公众。
   公共部分。
   接口if_amdp_marker_hdb。
   TYPES:开始于ty_s_mara,
         mandt类型的mandt,
         matnr TYPE matnr,
         MTART类型MTART,
         MATKL型MATKL,
         MEINS类型MEINS,
         werks TYPE werks_d,
         结束于ty_S_mara。
 类型:tt_mara ty_s_mara的类型标准表。
   方法material_list
     输入
       VALUE(ip_werks)TYPE werks_d
       值(ip_mandt)类型mandt
       VALUE(ip_filters)TYPE字符串" SELECT OPTION字符串的参数
     出口
        值(et_material)类型tt_mara。
   受保护的部分。
   专用部分。
 ENDCLASS。
 类别zcl_material_list IMPLEMENTATION。
 方法material_list通过数据库过程
                      对于组屋
                      语言SQLSCRIPT
                      选项只读
                      使用mara marc。
 et_material =选择mara.mandt,
                      mara.matnr,
                      mara.mtart,
                      mara.matkl,
                      mara.meins,
                      马克·韦克斯
                 从玛拉到玛拉
                 内部加入marc作为marc
                     在mara.matnr = marc.matnr
                     在哪里marc.werks = ip_werks
                       和mara.mandt = ip_mandt;
 *其中mara.matnr = ip_matnr;
  et_material = APPLY_FILTER(:et_material,:ip_filters);
 终结法。
 ENDCLASS。
 

报告致电AMDP类

报告zr_amdp_select_option。
 桌子:玛拉。
 参数:p_werks类型werks_d。
 SELECT-OPTIONS:s_matnr用于mara-matnr。
 **针对AMDP CLass实例的在线声明
 数据(it_data)=新的zCl_material_list()。
 数据:LR_ALV类型参考CL_SALV_TABLE。
 *********数据获取*******************
 *构建where子句以获取数据
 *类方法将选择选项转换为动态where子句
 *在选择数据后将传递给AMDP进行数据过滤


 数据(lv_where)= cl_shdb_seltab => combine_seltabs(
 it_named_seltabs = VALUE#(
 (name ='MATNR'dref = REF#(s_matnr []))
 ))。
 ********不合理的方法******************

 * cl_shdb_seltab => combine_seltabs(
 *出口
 * it_named_seltabs = VALUE#(
 *(名称='MATNR'dref = REF#(S_MATNR []))
 *)
 *  接收
 * rv_where = DATA(lv_where))。

 ******调用AMDP方法获取数据***********
 调用METHOD it_data-> material_list
 出口
   ip_filters = lv_where
   ip_werks = p_werks
   ip_mandt = sy-mandt
 输入
   et_material =数据(it_matnr)。
 *尝试。
 调用方法CL_SALV_TABLE => FACTORY"获取SALV工厂实例
 *出口
 * LIST_DISPLAY = IF_SALV_C_BOOL_SAP => FALSE
 * R_CONTAINER =
 * CONTAINER_NAME =
 输入
   R_SALV_TABLE = LR_ALV
 改变
   T_TABLE = it_matnr。
 *捕捉CX_SALV_MSG。
 * ENDTRY。
 LR_ALV-> display()。


 输出
 客户matnr Mattyp mat grp uom工厂
 120 100006287 ZPKG 320 NOS MF01
 120 100006287 ZPKG 320 NOS MF01
 120 100006289 ZPKG 320 NOS MF01
 120 100006289 ZPKG 320 NOS MF01


 

条目正在重复...

此致

Aditya Vora

2条回答
Tong__Ming
2020-09-20 03:32 .采纳回答

如果您有不同的客户端和该客户端的数据,则原因可能是在加入条件下客户端的任务比较。

 ...
 在mara.mandt = marc.mand
 和mara.matnr = marc.matnr
 ... 

关于,
弗洛里安语

一周热门 更多>