自动打印自定义采购入库单

自动打印自定义采购入库单
自动打印自定义采购入库单

自动打印自定义采购入库单

自动打印自定义采购入库单

JEFF

2019-12-31

所有输出类型的设置都可以通过NACE进入设置;

这里我们新定义了一个打印输出类型专为采购收货时用;

在收货处理子程序中复制出标准程序SAPM07DR改为ZSAPM07DR_GR,表格为我们自定义的SMARTFORMS即ZSD_GOODS_REC,FORM子程序用默认的ENTRY_WE01;

如果是用SCRIPT FORM开发的FORM,那要在表格中输入我们开发好的SCRIPT FORM,这里我们用的是SMART FORM,所以填入快捷表格栏位中;

输出类型设好后要分配输出确定过程;

下面我们看一下FORM是如何开发的(略);

表格属性默认设置,有自定义了一个Style:ZSD_GOODS_STY,只要定义了字体大小,段落情况;表格接口需要定义显示用的内表,分别参考结构ZSDE_REC_MAIN和

ZSDE_REC_TOP;

ZSDE_REC_MAIN结构如下;

ZSDE_REC_TOP结构如下;

全局定义设置如下;

字段符号定义如下:

如果需求公司LOGO,那在新页面的背景图片中可以设置,不过需要先用SE78上传需要图片,如果需要条形码还可以通过SE73设置相应的条码信息;

以下为FORM抬头部分设置,用了一个循环把抬头表中的内容取出;

主窗口中TABLE中设置如下,所显示内容是抬头中对应物料凭证的内容,按物料凭证项目号排序;

最终效果如下;

标准物料凭证打印的事务码是MB90,且此程序还可以用来高度我们自己开发的打印程序及FORM;

下面我们来看一下如果修改复制出来的标准ZSAPM07DR_GR;

REPORT ZSAPM07DR_GR.

TABLES:NAST,*NAST,TNAPR,MKPF,MSEG.”其中NAST是标准的存放打印信息的,对于

物料收货存放的是入库凭证+年度+项目

DATA: LF_FM_NAME TYPE RS38L_FNAM.”这个是标准的打印FORM时的变量

DATA XSCREEN(1) TYPE C. DATA RETCO LIKE SY-SUBRC.

DATA: BEGIN OF NAST_KEY, MBLNR LIKE MKPF-MBLNR, MJAHR LIKE MKPF-MJAHR, ZEILE LIKE MSEG-ZEILE,

END

OF

NAST_KEY.

DATA IT_MAIN LIKE ZSDE_REC_MAIN OCCURS 0 WITH HEADER LINE. DATA IT_TOP

LIKE ZSDE_REC_TOP OCCURS 0 WITH HEADER LINE.

*&---------------------------------------------------------------------*

*& Form entry_we01

*&---------------------------------------------------------------------*

* text

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

* -->ENT_RETCO text * -->ENT_SCREEN text

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

F ORM ENTRY_WE01 USIN

G ENT_RETCO ENT_SCREEN.”这就是后台设置时对应的子程序,复制过来的子程序尽可能不要动到其抬对部分 XSCREEN = ENT_SCREEN. CLEAR ENT_RETCO.

PERFORM LESEN USING NAST-OBJKY. ENT_RETCO = RETCO.

ENDFORM. "entry_we01

*&---------------------------------------------------------------------*

*& Form lesen

*&---------------------------------------------------------------------*

* text

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

* -->P_NAST_OBJKY text

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

FORM LESEN USING OBJKY.

* NAST_KEY-MBLNR = OBJKY+0(10). * NAST_KEY-MJAHR = OBJKY+10(4). *

NAST_KEY-ZEILE = OBJKY+14(4). NAST_KEY = OBJKY.

IF NAST_KEY-ZEILE = 0001.”因为是选择的个别单据打印,所以如果一个凭证中有多个ITEM,就会打印多次相同的单据,这个地方判断一下可以只打印一份 CLEAR RETCO.

SELECT SINGLE * FROM MKPF INTO MKPF WHERE MBLNR = NAST_KEY-MBLNR AND MJAHR = NAST_KEY-MJAHR. SELECT SINGLE * FROM MSEG INTO MSEG WHERE MBLNR = MKPF-MBLNR AND ZEILE = NAST_KEY-ZEILE AND MJAHR = MKPF-MJAHR.

IF SY-SUBRC NE 0.”根据NAST中的凭证内容就可以找到我们需要显示的所有信息RETCO = SY-SUBRC. EXIT. ENDIF.

* CHECK SY-SUBRC = 0.

SELECT A~LIFNR A~ZEILE C~NAME1 B~MBLNR B~BUDAT A~EBELN A~EBELP A~LGORT

A~LIFNR D~LGOBE A~MATNR

E~MAKTX A~MEINS A~MENGE F~BSTRF F~MABST INTO CORRESPONDING FIELDS OF TABLE IT_MAIN FROM MSEG AS A

INNER JOIN MKPF AS B ON B~MBLNR = A~MBLNR AND B~MJAHR = A~MJAHR INNER JOIN LFA1 AS C ON A~LIFNR = C~LIFNR

INNER JOIN T001L AS D ON D~LGORT = A~LGORT AND D~WERKS = A~WERKS INNER JOIN MAKT AS E ON E~MATNR = A~MATNR

INNER JOIN MARC AS F ON F~MATNR = A~MATNR AND F~WERKS = A~WERKS"

物料+工厂

相关主题
相关文档
最新文档