程序代码
*&---------------------------------------------------------------------*
*& Report Z3TEST004
*&---------------------------------------------------------------------*
*& 打印 采购发票 查询
*&---------------------------------------------------------------------*
REPORT zprint001.
TABLES:EKET,MAKT,MKPF,EKKO,EKPO,RBKP,RSEG,EKBE.
" 数据类型1
*
*TYPES: BEGIN OF TY_EKKPO,
* LIFNR TYPE EKKO-LIFNR,
* EKORG TYPE EKKO-EKORG,
* WERKS TYPE EKPO-WERKS,
* EBELN TYPE EKKO-EBELN,
* AEDAT TYPE EKKO-AEDAT,
* END OF TY_EKKPO.
DATA: GSD_EKKPO TYPE ZMMPRINT01 ,
GTD_EKKPO TYPE STANDARD TABLE OF ZMMPRINT01.
"数据类型2
*TYPES: BEGIN OF TY_ITEM,
* EBELN TYPE EKKO-EBELN,
* EBELP TYPE EKPO-EBELP,
* MATNR TYPE MAKT-MATNR,
* MAKTX TYPE MAKT-MAKTX,
* MENGE TYPE EKPO-MENGE,
* MEINS TYPE EKPO-MEINS,
* NETPR TYPE EKPO-NETPR,
* WAERS TYPE EKKO-WAERS,
* EINDT TYPE EKET-EINDT,
* END OF TY_ITEM.
DATA: GSD_ITEM TYPE ZMMPRINT02,
GTD_ITEM TYPE STANDARD TABLE OF ZMMPRINT02.
*--------------------------------------------------------------------------*
* 选择屏幕
*--------------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:S_EKGRP FOR EKKO-EKORG ,
S_EKDAT FOR EKKO-BEDAT .
SELECTION-SCREEN END OF BLOCK B1.
*----------------------------------------------------------------------*
* START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.
SELECT
EKKO~EKORG "财务组织
RBKP~BLDAT"发票日期
RBKP~BELNR "发票号
EKKO~LIFNR "供应商编号
"供方名称
EKKO~EKGRP "采购部门
"扣款小计(计算)
RBKP~WMWST1 "税额
"应付金额
RBKP~BVTYP "开户行
RBKP~HBKID "账户名称
RBKP~BANKN "银行帐户号码
"MEPOITEM_PROP~AFNAM "制单人
INTO CORRESPONDING FIELDS OF TABLE GTD_EKKPO
FROM EKKO
INNER JOIN EKPO ON EKKO~EBELN = EKPO~EBELN
INNER JOIN RSEG ON EKKO~EBELN = RSEG~EBELN
INNER JOIN RBKP ON RSEG~BELNR = RBKP~BELNR
"INNER JOIN MEPOITEM_PROP ON
WHERE EKKO~EKGRP IN S_EKGRP
AND EKKO~BEDAT IN S_EKDAT.
BREAK-POINT."断点
READ TABLE GTD_EKKPO INTO GSD_EKKPO INDEX 1.
SELECT
EKKO~EBELN "
MAKT~MATNR "物料号
MAKT~MAKTX "物料描述
EKPO~MENGE "数量
EKPO~MEINS "单位
EKPO~NETPR "价格
INTO CORRESPONDING FIELDS OF TABLE GTD_ITEM
FROM EKKO
INNER JOIN EKPO ON EKKO~EBELN = EKPO~EBELN
LEFT JOIN EKET ON EKPO~EBELN = EKET~EBELN AND EKPO~EBELP = EKET~EBELP
LEFT JOIN MAKT ON EKPO~MATNR = MAKT~MATNR
WHERE EKKO~AEDAT IN S_EKDAT
AND EKKO~EKGRP IN S_EKGRP.
READ TABLE GTD_ITEM INTO GSD_ITEM INDEX 1.
** 设置调用表单 **
DATA:FM_NAME TYPE RS38L_FNAM.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZPRINT001' " 调用 表单程序
IMPORTING
FM_NAME = FM_NAME.
CALL FUNCTION FM_NAME
EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =
* ARCHIVE_PARAMETERS =
* CONTROL_PARAMETERS =
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT =
* MAIL_SENDER =
* OUTPUT_OPTIONS =
* USER_SETTINGS = 'X'
GSD_EKKPO = GSD_EKKPO
GSD_ITEM = GSD_ITEM
TABLES
GTD_ITEM = GTD_ITEM
* IMPORTING
* DOCUMENT_OUTPUT_INFO =
* JOB_OUTPUT_INFO =
* JOB_OUTPUT_OPTIONS =
* EXCEPTIONS
* FORMATTING_ERROR = 1
* INTERNAL_ERROR = 2
* SEND_ERROR = 3
* USER_CANCELED = 4
* OTHERS = 5
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
** 设置调用表单 **
定义表单模板
事务代码 smartforms