SAP采购订单打印

这是一个SAP ABAP程序,用于处理和打印不同类型的采购订单,包括物料采购、资产采购、消耗性采购、委外加工、退货、工序外包和转储订单。程序通过选择不同的订单类型,读取相应的采购订单数据,并提供了打印次数的统计。同时,程序还包含了处理数据、显示数据和打印关闭等步骤,以及根据用户选择的订单类型调用不同的子程序进行特定类型的订单处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*&---------------------------------------------------------------------*
*& Report ZMMF001
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zmmf001.



INCLUDE zmmf001_top.
INCLUDE zmmf001_scr.
INCLUDE zmmf001_frm.




START-OF-SELECTION .

  PERFORM  frm_radio_btn .
  PERFORM  frm_get_data  .
  PERFORM  frm_process_data.
  PERFORM frm_display_data.


*&---------------------------------------------------------------------*
*& 包含               ZMMF001_TOP
*&---------------------------------------------------------------------*





*采购订单抬头:   EKKO
*采购订单行项目: EKPO
*采购订单行项目条件(含税单价): PRCD_ELEMENTS
*供应商基本数据:BUT000
*供应商采购组织数据:LFM1
*前面查看事务代码:采购订单ME23N、供应商主数据BP



TABLES ekko ,lfa1 ,ekpo.
DATAgv_bsart TYPE  ekko-bsart "凭证类型
DATAgs_ekko TYPE  ekko .
DATAgt_ekko LIKE TABLE OF ekko .
DATAgs_ekpo TYPE   ekpo .
DATAgt_ekpo LIKE TABLE OF ekpo .
*DATA: BEGIN OF GS_OUT ,
*      EBELN TYPE  EKKO-EBELN, " 凭证编号
*      BEDAT TYPE  EKKO-BEDAT, "凭证日期
*      LIFNR TYPE  LFA1-LIFNR , "供应商编号
*      NAME1 TYPE  LFA1-NAME1 ,  "供应商名称
*      MARK ,
* END OF GS_OUT .
DATABEGIN OF gs_out .
    INCLUDE STRUCTURE  zmms001_head .
DATAmark .
DATAEND OF gs_out .


DATABEGIN OF gs_ekkn ,
        ebeln TYPE  ekkn-ebeln"凭证编号
        ebelp TYPE  ekkn-ebelp"序号
        aufnr TYPE  ekkn-aufnr,
        kostl LIKE  ekkn-kostl" 成本中心
        anln1 LIKE  ekkn-anln1 " 资产编号
      END OF gs_ekkn .

DATA gt_ekkn LIKE TABLE OF gs_ekkn .

DATAgv_zbz_h TYPE zbz_h .


DATABEGIN OF gs_eban ,
        banfn LIKE eban-banfn,  "采购申请号
        bnfpo LIKE eban-bnfpo,  "行项目
        ebeln LIKE eban-ebeln,  "采购单号
        ebelp LIKE eban-ebelp,  "采购单行项目

      END OF gs_eban .

DATA gt_eban LIKE TABLE OF gs_eban .


DATABEGIN OF gs_prcd ,
        knumv TYPE prcd_elements-knumv,
        kposn TYPE prcd_elements-kposn,
        kbetr TYPE prcd_elements-kbetr,
        kpein TYPE prcd_elements-kpein,

      END OF gs_prcd .
DATAgt_prcd LIKE TABLE OF gs_prcd .  " 取含税价格

DATAgt_prcd2 LIKE TABLE OF gs_prcd .  "取税率



DATAgs_zmms001_head  TYPE zmms001_head.
DATAgt_zmms001_head LIKE TABLE OF zmms001_head .

DATAgs_zmms001_item TYPE zmms001_item .
DATAgt_zmms001_item LIKE  TABLE OF zmms001_item .


DATA  lt_zmms001_item LIKE TABLE OF zmms001_item .




DATAgt_out LIKE TABLE OF gs_out .


DATAgv_order_type TYPE string " 订单类型
DATAgv_ver TYPE LENGTH .    "版本


*DATA: BEGIN OF gs_ekkn,
*        ebeln LIKE  ekkn-ebeln, "凭证编号
*        ebelp LIKE  ekkn-ebelp, "序号
*        kostl LIKE  ekkn-kostl, " 成本中心
*      END OF gs_ekkn .

DATABEGIN OF gs_cskt ,
        kostl LIKE cskt-kostl,   " 成本中心
        ktext LIKE cskt-ktext "部门
      END OF gs_cskt .

DATAgt_cskt LIKE TABLE OF gs_cskt .

DATABEGIN OF gs_aufk ,
        aufnr LIKE aufk-aufnr " 工单号
        ktext LIKE aufk-ktext " 模号
      END OF gs_aufk .

DATAgt_aufk LIKE TABLE OF gs_aufk.



DATABEGIN OF gs_anlz ,
        anln1 LIKE anlz-anln1 "资产编号
        kostl LIKE anlz-kostl"成本中心
      END OF gs_anlz .

DATAgt_anlz LIKE TABLE OF gs_anlz .



" 获取打印次数
DATAgs_zmmt001p LIKE zmmt001p .
DATAgt_zmmt001p LIKE TABLE OF gs_zmmt001p .


DATAgt_fieldcat TYPE TABLE OF  slis_fieldcat_alv.
DATAgs_fieldcat TYPE slis_fieldcat_alv.
DATAgs_layout TYPE slis_layout_alv .


DATAg_fm_name  TYPE rs38l_fnam.
DATAgw_options TYPE ssfcompop,
      gw_control TYPE ssfctrlop.


*&---------------------------------------------------------------------*
*& 包含               ZMMF001_SCR
*&---------------------------------------------------------------------*


SELECT-OPTIONS   s_ekorg FOR ekko-ekorg  OBLIGATORY "
SELECT-OPTIONS  p_ebeln FOR ekko-ebeln .
SELECT-OPTIONS  p_bedat FOR ekko-bedat .
SELECT-OPTIONS  p_lifnr FOR lfa1-lifnr.
SELECT-OPTIONS  p_ernam FOR ekko-ernam .




PARAMETERS r_1 RADIOBUTTON GROUP g1 .
PARAMETERS r_2 RADIOBUTTON GROUP g1 .
PARAMETERS r_3 RADIOBUTTON GROUP g1 .
PARAMETERS r_4 RADIOBUTTON GROUP g1 .
PARAMETERS r_5 RADIOBUTTON GROUP g1 .
PARAMETERS r_6 RADIOBUTTON GROUP g1 .
PARAMETERS r_7 RADIOBUTTON GROUP g1 .
* cb_01   AS CHECKBOX DEFAULT 'X',

*PARAMETERS: cb_1 AS CHECKBOX  .


*&---------------------------------------------------------------------*
*& 包含               ZMMF001_FRM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_get_data .



  SELECT  a~ebeln  "采购编号
    a~bedat  "采购日期
    a~lifnr  " 供应商编码
    b~name_org1   " 供应名称
    c~telf1 " 电话
    a~waers   " 货币码
    b~bu_sort1     "供应商类别
    a~bsart  "订单类型
    c~verkf " 联络人
    a~zterm " 付款条件代码
    d~text1  "付款条件名称
    a~knumv   "凭证条件号 主要指价格
    a~ernam " 创建人
   INTO  CORRESPONDING FIELDS OF TABLE  gt_out
   FROM ekko AS a
   INNER JOIN but000 AS b  ON  a~lifnr b~partner
   INNER JOIN lfm1   AS c   ON  b~partner c~lifnr AND a~ekorg c~ekorg
   INNER JOIN t052u  AS d   ON  a~zterm d~zterm AND  d~spras EQ '1'
   WHERE a~bsart gv_bsart  "凭证类型 选择界面获取
   AND  a~ernam IN  p_ernam
   AND  a~lifnr IN p_lifnr
   AND  a~ebeln IN p_ebeln
   AND  a~bedat IN p_bedat
   AND  a~memory EQ  space
    AND a~ekorg IN s_ekorg .  "排除暂存订单


  IF r_7 EQ 'X' "转储订单
    SELECT  a~ebeln  "采购编号
a~bedat  "采购日期
a~lifnr  " 供应商编码
*    b~name_org1   " 供应名称
*    c~telf1 " 电话
a~waers   " 货币码
*    b~bu_sort1     "供应商类别
a~bsart  "订单类型
*    c~verkf " 联络人
a~zterm " 付款条件代码
*    d~text1  "付款条件名称
a~knumv   "凭证条件号 主要指价格
a~ernam " 创建人
INTO  CORRESPONDING FIELDS OF TABLE  gt_out
FROM ekko AS a

WHERE a~bsart gv_bsart  "凭证类型 选择界面获取
AND  a~ernam IN  p_ernam
AND  a~lifnr IN p_lifnr
AND  a~ebeln IN p_ebeln
AND  a~bedat IN p_bedat
AND  a~memory EQ  space  .  "排除暂存订单




  ENDIF .




  " 获取打印次数

  IF gt_out IS NOT INITIAL .
    SELECT *
      INTO TABLE  gt_zmmt001p
      FROM zmmt001p
      FOR ALL ENTRIES IN gt_out
      WHERE   zdh gt_out-ebeln
       AND     zcxm EQ  'ZMMF001' .

  ENDIF .





ENDFORM.




*&---------------------------------------------------------------------*
*& Form FRM_DISPLAY_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_display_data .

  DEFINE append_field.
    gs_fieldcat-fieldname &1.
    gs_fieldcat-seltext_l &2.
 &nbs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

IT养家和SAP养家

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

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

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

打赏作者

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

抵扣说明:

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

余额充值