REPORT zmm008_miro.
*&---------------------------------------------------------------------*
*& 程序名 : ZMM008_MIRO *
*& 用途 : 预制发票报表明细(财务发票校验用) *
*& 说明 : 采购(ZMM008_DZ_MIR7)对账预制后,财务人员据此报表核对 *
*& 实体/电子发票,对已预制行双击发起发票校验(MIRO过账); *
*& 已过账行置灰,只做显示,不可再次校验。 *
*&---------------------------------------------------------------------*
TYPE-POOLS: slis.
TABLES: rbkp, rseg, ekko, lfa1, zmm008_dzit.
*---- 选择屏幕 ----
SELECT-OPTIONS:
s_werks FOR rseg-werks DEFAULT '1000', " 工厂
s_lifnr FOR rbkp-lifnr, " 供应商(可选)
s_budat FOR rbkp-budat, " 预制日期(按发票创建日期筛选,默认当月1日~当天)
s_belnr FOR rbkp-belnr, " 预制/发票凭证编码
s_ebeln FOR rseg-ebeln, " 采购订单
s_ekgrp FOR ekko-ekgrp, " 采购组
s_dzno FOR zmm008_dzit-zdzno. " 对账单号(增强:按对账编码筛选)
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_all RADIOBUTTON GROUP g1 DEFAULT 'X' USER-COMMAND rg1.
SELECTION-SCREEN COMMENT 4(14) gv_c1 FOR FIELD p_all.
PARAMETERS: p_park RADIOBUTTON GROUP g1.
SELECTION-SCREEN COMMENT 22(16) gv_c2 FOR FIELD p_park.
SELECTION-SCREEN END OF LINE.
INITIALIZATION.
* 单选按钮注释文本(COMMENT变量由系统自动声明,此处赋值)
gv_c1 = '全部凭证'.
gv_c2 = '预制凭证(待过账)'.
* 预制日期默认值=当月1日~当天
CLEAR s_budat[].
s_budat-sign = 'I'.
s_budat-option = 'BT'.
s_budat-low = sy-datum.
s_budat-low+6(2) = '01'. "当月1日
s_budat-high = sy-datum. "当天
APPEND s_budat.
*---- 类型与全局数据 ----
TYPES: BEGIN OF ty_rbkp,
belnr TYPE rbkp-belnr,
gjahr TYPE rbkp-gjahr,
lifnr TYPE rbkp-lifnr,
bukrs TYPE rbkp-bukrs,
blart TYPE rbkp-blart,
waers TYPE rbkp-waers,
rmwwr TYPE rbkp-rmwwr,
budat TYPE rbkp-budat,
cpudt TYPE rbkp-cpudt,
erfnam TYPE rbkp-erfnam,
rbstat TYPE rbkp-rbstat,
xrech TYPE rbkp-xrech,
stblg TYPE rbkp-stblg, "增强:非空=本凭证已被冲销(冲销凭证号)
stjah TYPE rbkp-stjah, "增强:冲销凭证年度
END OF ty_rbkp.
TYPES: BEGIN OF ty_key,
belnr TYPE rbkp-belnr,
gjahr TYPE rbkp-gjahr,
END OF ty_key.
TYPES: BEGIN OF ty_rseg,
belnr TYPE rseg-belnr,
gjahr TYPE rseg-gjahr,
buzei TYPE rseg-buzei,
ebeln TYPE rseg-ebeln,
ebelp TYPE rseg-ebelp,
werks TYPE rseg-werks,
wrbtr TYPE rseg-wrbtr,
mwskz TYPE rseg-mwskz,
END OF ty_rseg.
TYPES: BEGIN OF ty_ekko,
ebeln TYPE ekko-ebeln,
ekgrp TYPE ekko-ekgrp,
END OF ty_ekko.
TYPES: BEGIN OF ty_lfa1,
lifnr TYPE lfa1-lifnr,
name1 TYPE lfa1-name1,
END OF ty_lfa1.
TYPES: BEGIN OF ty_poitem,
ebeln TYPE rseg-ebeln,
ebelp TYPE rseg-ebelp,
END OF ty_poitem.
TYPES: BEGIN OF ty_grbud,
ebeln TYPE rseg-ebeln,
ebelp TYPE rseg-ebelp,
budat TYPE mkpf-budat,
bwart TYPE ekbe-bwart, "增强:移动类型(105=收货放行,101=进冻结)
END OF ty_grbud.
TYPES: BEGIN OF ty_grmk,
mblnr TYPE mseg-mblnr,
mjahr TYPE mseg-mjahr,
ebeln TYPE rseg-ebeln,
ebelp TYPE rseg-ebelp,
bwart TYPE ekbe-bwart, "增强:移动类型
END OF ty_grmk.
TYPES: BEGIN OF ty_mkpf,
mblnr TYPE mkpf-mblnr,
mjahr TYPE mkpf-mjahr,
budat TYPE mkpf-budat,
END OF ty_mkpf.
TYPES: BEGIN OF ty_refgr,
budat TYPE sy-datum,
bwart TYPE ekbe-bwart, "引用收货凭证的移动类型(101/105)
END OF ty_refgr.
TYPES: BEGIN OF ty_ekbe,
ebeln TYPE ekbe-ebeln,
ebelp TYPE ekbe-ebelp,
belnr TYPE ekbe-belnr, "收货物料凭证号
gjahr TYPE ekbe-gjahr, "收货物料凭证年度
bwart TYPE ekbe-bwart, "增强:移动类型(101/103/105/122/161...)
lfbnr TYPE ekbe-lfbnr, "增强:105放行凭证引用的103/101冻结凭证
lfgja TYPE ekbe-lfgja, "增强:引用冻结凭证年度
END OF ty_ekbe.
TYPES: BEGIN OF ty_ekst,
belnr TYPE ekbe-belnr, "发票凭证号
gjahr TYPE ekbe-gjahr, "年度
vgabe TYPE ekbe-vgabe, "事务类型:2=已过账 P=已预制
ebeln TYPE ekbe-ebeln, "增强:PO号
ebelp TYPE ekbe-ebelp, "增强:PO行号
lfbnr TYPE ekbe-lfbnr, "增强:发票引用的收货物料凭证
lfgja TYPE ekbe-lfgja, "增强:引用收货物料凭证年度
END OF ty_ekst.
TYPES: BEGIN OF ty_out,
color TYPE char4, "行颜色(ALV)
lifnr TYPE lifnr, "供应商
name1 TYPE name1, "供应商名称
zperiod TYPE char25, "对账周期范围
zrefgr TYPE char120, "诊断:发票引用的收货凭证明细
zdzno TYPE zmm008_dzit-zdzno,"对账单编码(预制时写入ZMM008_DZIT)
belnr TYPE rbkp-belnr, "预制/发票凭证号
gjahr TYPE rbkp-gjahr, "年度
zdtype TYPE char6, "凭证类别(发票/贷项)
blart TYPE rbkp-blart, "凭证类型
budat TYPE rbkp-budat, "过账日期
erdat TYPE rbkp-cpudt, "创建日期
waers TYPE waers, "币种
ekgrp TYPE ekgrp, "采购组
werks TYPE werks_d, "工厂
mwskz TYPE mwskz, "税码
netwr TYPE rbkp-rmwwr, "汇总金额(不含税)
wmwst TYPE rbkp-rmwwr, "税额
wrbtr TYPE rbkp-rmwwr, "含税总金额
zrate TYPE p LENGTH 5 DECIMALS 2, "税率(%)
status TYPE char10, "状态
zparked TYPE char1, "X=已预制(可校验) 空=已过账
END OF ty_out.
DATA: gt_out TYPE TABLE OF ty_out,
gs_out TYPE ty_out.
*---- ALV ----
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_layout TYPE slis_layout_alv,
gs_variant TYPE disvariant.
START-OF-SELECTION.
PERFORM get_data.
PERFORM show_alv.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
FORM get_data.
DATA: lt_rbkp TYPE TABLE OF ty_rbkp,
ls_rbkp LIKE LINE OF lt_rbkp,
lt_keys TYPE TABLE OF ty_key,
ls_key LIKE LINE OF lt_keys,
lt_rseg TYPE TABLE OF ty_rseg,
ls_rseg LIKE LINE OF lt_rseg,
lt_ekko TYPE TABLE OF ty_ekko,
ls_ekko LIKE LINE OF lt_ekko,
&n
SAP-ABAP-预制发票报表明细和发票校验