ME11/ME12拷贝采购信息记录

注意点:
ECC没有好用的修改/创建采购信息记录BAPI所以使用BDC处理,
因为BDC执行过程如果遇到黄色提示消息就会暂停,所以如果遇到黄色提示需要增强处理
还有就是价格的小数位数问题,如JPY不能使用小数位数问题处理

增强调整
在这里插入图片描述
在这里插入图片描述
如下是复制代码-有个记录日志的自荐表,可以自行设计
在这里插入图片描述
REPORT zmm315.

INCLUDE zmm315_top.

INCLUDE zmm315_frm.

*-----------------------------------------------------------------------

  • I N I T I A L I Z A T I O N
    *-----------------------------------------------------------------------
    INITIALIZATION.

AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-group1 = ‘SP1’.
screen-active = ‘0’.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
*-----------------------------------------------------------------------

  • A T S E L E C T I O N - S C R E E N
    *-----------------------------------------------------------------------
    AT SELECTION-SCREEN.

START-OF-SELECTION.

PERFORM frm_get_data."获取数据

IF p_job = ‘X’.

PERFORM frm_bapi_creat USING 'X'.

ELSE.

PERFORM frm_get_fieldcat TABLES    gt_fieldcat.."alv显示列

PERFORM frm_get_layout  CHANGING  gw_alv_layout."格式设置

PERFORM frm_show_alv."alv显示

ENDIF.

END-OF-SELECTION.

&---------------------------------------------------------------------
*& 包含 ZMM315_TOP
&---------------------------------------------------------------------
TABLES:mara,lfa1,lfm1,eina,eine,a017,konp.

DATA:BEGIN OF gs_alv,
sel,"选择
light TYPE char10, "红绿灯 icon_led_red icon_led_green
msg TYPE char100, "消息
infnr LIKE eina-infnr , "采购信息记录编号
infnr_n LIKE eina-infnr , "采购信息记录编号
bismt LIKE mara-bismt , "旧物料编号
maktx_o LIKE makt-maktx , "旧物料描述
meins_o LIKE mara-meins , "旧物料基本单位
lifnr LIKE a017-lifnr , "供应商
name1 LIKE lfa1-name1 , "供应商名称
matnr LIKE mara-matnr , "PLM物料编号(NEW)
maktx_n LIKE makt-maktx , "PLM物料描述)
meins_n LIKE mara-meins , "PLM物料基本单位
ekorg LIKE a017-ekorg , "采购组织
werks LIKE a017-werks , "工厂
esokz LIKE a017-esokz , "采购类型
aplfz LIKE eine-aplfz , "计划交货时间
ekgrp LIKE eine-ekgrp , "采购组
norbm LIKE eine-norbm , "标准定单数量
webre LIKE eine-webre , "基于收货的发票验证
mwskz LIKE eine-mwskz , "税码
kbetr LIKE eine-netpr , "含税价
konwa LIKE konp-konwa , "币别
kpein LIKE konp-kpein , "价格基数
datab LIKE a017-datab , "开始日期
datbi LIKE a017-datbi , "结束日期
kosrt LIKE konh-kosrt, "暂估价标识
zjj TYPE eine-netpr, "净价(未乘基数)
mtart TYPE mara-mtart, "物料类型
meins TYPE mara-meins, "单位
knumh TYPE a017-knumh, "条件号
kumne TYPE konp-kumne, "条件号
kmein TYPE konp-kmein, "条件号
kumza TYPE konp-kumza, "条件号
waers TYPE eine-waers, "条件号

   verkf   TYPE eina-verkf,
   telf1   TYPE eina-telf1,

   esokz_x TYPE c,
 END OF gs_alv.

DATA:gt_alv LIKE TABLE OF gs_alv.

DATA:
gt_fieldcat TYPE lvc_t_fcat, "fieldcat
gw_fieldcat TYPE lvc_s_fcat,
gw_alv_layout TYPE lvc_s_layo. " ALV 布局

DATA: gv_grid TYPE REF TO cl_gui_alv_grid. " alv 对象

DATA lv_check TYPE c."检查按钮

DATA:gt_ztmm315_log TYPE STANDARD TABLE OF ztmm315_log,
gs_ztmm315_log TYPE ztmm315_log.

DEFINE init_fieldcat."fieLdcat 宏
GW_FIELDCAT-KEY = &2.
GW_FIELDCAT-FIELDNAME = &3.
GW_FIELDCAT-SELTEXT = &4.
GW_FIELDCAT-SCRTEXT_L = &4.
GW_FIELDCAT-SCRTEXT_M = &4.
GW_FIELDCAT-SCRTEXT_S = &4.
GW_FIELDCAT-REF_FIELD = &5.
GW_FIELDCAT-REF_TABLE = &6.
GW_FIELDCAT-EDIT = &7.
GW_FIELDCAT-CHECKBOX = &8.
GW_FIELDCAT-NO_ZERO = &9.
APPEND GW_FIELDCAT TO &1.
CLEAR GW_FIELDCAT.
END-OF-DEFINITION.

DATA: lt_bdcdata TYPE TABLE OF bdcdata, " BDC执行内表
lt_msgtab TYPE TABLE OF bdcmsgcoll WITH HEADER LINE, " BDC返回信息表
ls_bdcdata TYPE bdcdata,
ls_msgtab TYPE bdcmsgcoll. " BDC返回信息表

*-----------------------------------------------------------------------

  • P A R A M E T E R S & S E L E C T - O P T I O N S
    *-----------------------------------------------------------------------
  • 功能选择界面
    SELECT-OPTIONS:s_werks FOR a017-werks OBLIGATORY,
    s_ekorg FOR a017-ekorg,
    s_matnr FOR mara-matnr,
    s_bismt FOR mara-bismt,
    s_lifnr FOR lfa1-lifnr.

PARAMETERS:p_esokz LIKE eine-esokz DEFAULT ‘0’,
p_datbi LIKE a017-datbi DEFAULT ‘20240201’,
p_job AS CHECKBOX . "MODIF ID sp1.
&---------------------------------------------------------------------
*& 包含 ZMM315_FRM
&---------------------------------------------------------------------
&---------------------------------------------------------------------
*& Form FRM_GET_DATA
&---------------------------------------------------------------------

  •   取数
    

----------------------------------------------------------------------
FORM frm_get_data .

DATA lv_bapicurr_d TYPE bapicurr_d.
DATA:lv_tabix TYPE sy-tabix.
DATA:lv_lfa1_werks_mes TYPE char100.

REFRESH gt_ztmm315_log.
REFRESH gt_alv.

SELECT mara~matnr AS bismt,
mara~bismt AS matnr,
mara~mtart,
a017~knumh,
a017~lifnr,
a017~ekorg,
a017~werks,
a017~esokz,
a017~datab,
a017~datbi
FROM mara INNER JOIN a017 ON mara~matnr = a017~matnr
INTO CORRESPONDING FIELDS OF TABLE @gt_alv
WHERE mara~matnr IN @s_matnr
AND mara~bismt IN @s_bismt
AND a017~esokz EQ @p_esokz
AND a017~werks IN @s_werks
AND a017~ekorg IN @s_ekorg
AND a017~lifnr IN @s_lifnr
AND a017~datab <= @p_datbi
AND a017~datbi >= @p_datbi
AND ( mara~mtart = ‘ZKG’ OR mara~mtart = ‘ZYD’ ).
IF gt_alv[] IS INITIAL.
MESSAGE ‘没有符合条件的数据’ TYPE ‘S’ DISPLAY LIKE ‘E’.
LEAVE LIST-PROCESSING.
ENDIF.

IF gt_alv[] IS NOT INITIAL.

SELECT
  maktx ,
  matnr
  FROM makt INTO TABLE @DATA(lt_makt_n)
  FOR ALL ENTRIES IN @gt_alv
  WHERE matnr = @gt_alv-matnr
    AND spras = @sy-langu.
SORT lt_makt_n BY matnr.

SELECT
  meins,
  matnr,
  lvorm,
  mstae
  FROM mara INTO TABLE @DATA(lt_mara_n)
  FOR ALL ENTRIES IN @gt_alv
  WHERE matnr = @gt_alv-matnr.
SORT lt_mara_n BY matnr.

SELECT
  matnr,
  werks,
  lvorm,
  mmsta
  INTO TABLE @DATA(lt_marc)
  FROM marc
  FOR ALL ENTRIES IN @gt_alv
  WHERE matnr = @gt_alv-matnr
    AND werks = @gt_alv-werks
  •    AND lvorm = 'X'
    .
    

    SORT lt_marc BY matnr werks.

    SELECT
    meins,
    bismt
    FROM mara INTO TABLE @DATA(lt_mara_o)
    FOR ALL ENTRIES IN @gt_alv
    WHERE bismt = @gt_alv-bismt.
    SORT lt_mara_o BY bismt.

    SELECT
    maktx ,
    matnr
    FROM makt INTO TABLE @DATA(lt_makt_o)
    FOR ALL ENTRIES IN @gt_alv
    WHERE matnr = @gt_alv-bismt
    AND spras = @sy-langu.
    SORT lt_makt_o BY matnr.

    SELECT
    lfa1~lifnr,
    lfa1~name1,
    lfa1~nodel,
    lfa1~sperq,
    lfa1~loevm,
    lfa1~sperr,
    lfa1~sperm,
    lfm1~sperm AS sperm_1 ,
    lfm1~loevm AS loevm_1 ,
    lfm1~ekorg
    FROM lfa1 INNER JOIN lfm1 ON lfa1~lifnr = lfm1~lifnr
    INTO TABLE @DATA(lt_lfa1)
    FOR ALL ENTRIES IN @gt_alv
    WHERE lfa1~lifnr = @gt_alv-lifnr
    AND lfm1~ekorg = @gt_alv-ekorg.
    SORT lt_lfa1 BY lifnr ekorg.

    SELECT eina~infnr,
    eina~matnr,
    eina~verkf,
    eina~telf1,
    eine~aplfz,
    eine~esokz,
    eine~ekorg,
    eine~ekgrp,
    eine~norbm,
    eine~mwskz,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放弃幻想_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值