ABAP源程序---发票校验明细表
6 ]  S# q, W; s. s4 O
4 U6 q& l1 Z7 R8 h& r
*&---------------------------------------------------------------------* 4 Y& A& W3 D, F# a$ i% p
*& Report ZSDRP26 * # O# G5 o. i" J. h( L
*& 发票校验明细表 *
*&---------------------------------------------------------------------* 7 ]9 Z/ N; l4 j
*& Author: Xavier Xue * : R4 M% `) E5 b9 j
*& * 2 C' L8 p+ @, c1 f; k& A1 O
*&---------------------------------------------------------------------*

REPORT zsdrp26 .
) R" V  H; b: Q' [/ P( l- }
TABLES: rbkp,
rseg,
ekko, - ^, T; x9 G( I9 Z) r
ekpo,
bkpf. ; W, T* j! O8 b) I0 O' e0 |
. C& E8 ^1 U0 k& `( A
*&---------------------------------------------------------------------*
*& 声明变量和内表
*&---------------------------------------------------------------------*
DATA: BEGIN OF header OCCURS 0, $ s7 c6 B' p# J) D( b$ s
belnr LIKE rbkp-belnr, "发票校验凭证 % b3 t1 `6 b- Z$ G/ U7 D: c
gjahr LIKE rbkp-gjahr, "年度 / h, A1 ~# S. m  U- B# H, S; H! K
vgart LIKE rbkp-vgart, "交易类型 % O) e# g4 d. k" C2 r
bldat LIKE rbkp-bldat, "凭证中的凭证日期 1 m0 f2 L: ^9 O
budat LIKE rbkp-budat, "记帐日期 1 X2 a1 q/ r/ E7 l6 a+ P, u
rmwwr LIKE rbkp-rmwwr, "总发数量
waers LIKE rbkp-waers, "货币 + G9 f( g5 V6 c& o" L' Z6 J
zuonr LIKE rbkp-zuonr, " / n9 e% l8 }- H6 |& \
s_belnr like bkpf-belnr, "会计凭证
* stblg LIKE rbkp-stblg, "冲销凭证编号 $ n) C8 W# E/ L  z: O
* stjah LIKE rbkp-stjah, "可逆凭证的会计年度   K4 x- F& ^# C: v) ^! W% ?- `* n
END OF header, : }' S$ Y) Q" g- p
6 T) R" G0 a0 g$ u/ k5 ~1 Z- `
BEGIN OF item OCCURS 0,
belnr LIKE rseg-belnr, "发票校验凭证
gjahr LIKE rseg-gjahr, "会度年度 : D& H3 P; v, P  a/ }0 N% h
s_belnr like bkpf-belnr, "会计凭证 $ c1 f+ F9 Y: Z) r
bldat LIKE rbkp-bldat, / Z6 y9 x* t7 b; F5 }( u0 N1 \- U
budat LIKE rbkp-budat,   B: p/ S: l( a* y& \: [4 i  v9 t9 P
rmwwr LIKE rbkp-rmwwr, % b6 u. F+ T3 X8 j
waers LIKE rbkp-waers,
zuonr LIKE rbkp-zuonr, 5 p4 X+ H. Z+ ]% t' H# c
buzei LIKE rseg-buzei, "发票凭证中的凭证项目 ! o9 c% Q9 D1 |3 E$ X' }, V: Z
ebeln LIKE rseg-ebeln, "采购订单凭证
ebelp LIKE rseg-ebelp, "采购订单项目号 ! X1 b  z- D) ?4 k- T. _/ Q
wrbtr LIKE rseg-wrbtr, "金额 6 X- r9 y- ~5 R( n2 [, a# N
shkzg LIKE rseg-shkzg, "借/贷方
menge LIKE rseg-menge, "数量 ) ^  a  ]0 g; x0 {4 Y2 H: ?6 U
bstme LIKE rseg-bstme, "单位 $ A# ^5 h* |" K: `+ W+ Y- C; y
matnr LIKE ekpo-matnr, "物料编号
txz01 LIKE ekpo-txz01, "物料描述
text(16) TYPE c, "规格   L( n- o# Y/ S: i. I8 k- ^
END OF item, ( O8 L( O% \) [$ R
( h0 X5 M& X3 X7 F9 `4 f% f
BEGIN OF ekpo_data OCCURS 0, & v% N' ~+ `. `' g7 L
ebeln LIKE ekpo-ebeln, + R0 `' [3 d  r; v+ m* {
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr, : Q( s1 x; n3 j" v, U# X5 d8 J
txz01 LIKE ekpo-txz01,
END OF ekpo_data. % F3 V# D. c5 Z0 {$ M, x' v) h

TYPE-POOLS:slis.
" q3 j7 q* l& n4 b. @$ J
DATA: i_events TYPE slis_t_event WITH HEADER LINE, , o* W2 B# b% U6 F1 k) U4 o; {
i_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATA: w_layout TYPE slis_layout_alv, 2 e& P' t3 o5 k
g_repid LIKE sy-repid. & n/ o# Y7 P* U, I! O; R
*&---------------------------------------------------------------------* 9 p& E  [9 ^, B! Y
*& 定义选择屏幕 3 h% S* {% y8 Y# f8 Z/ q4 Q/ L  X8 C
*&---------------------------------------------------------------------* 8 W: g! H- t  b% E4 {+ w/ a; g
SelectION-SCREEN BEGIN OF BLOCK block0 WITH FRAME TITLE text-000. 5 T% |0 o3 q. n' k, z2 w" E
Select-OPTIONS: s_belnr FOR rseg-belnr, "发票校验凭证号
s_budat FOR rbkp-budat, "记帐日期 ! u+ n1 b! ~0 b$ m( V. E
s_bldat FOR rbkp-bldat, "凭证日期
s_bukrs FOR rbkp-bukrs, "分公司代码 " c2 Z3 A  T: V& @4 \/ o
s_ekgrp FOR ekko-ekgrp, "采购组(办事处)
s_lifnr FOR rbkp-lifnr. "供应商 0 Z! }" E" J3 C6 ?1 m1 Y
SelectION-SCREEN END OF BLOCK block0. . b" s" W5 n2 n) s
*&---------------------------------------------------------------------*
*& 执行程序事件
*&---------------------------------------------------------------------* : }% b3 O1 F5 S% B
INITIALIZATION.
g_repid = sy-repid.

START-OF-SelectION.
PERFORM get_header_data. * t" W0 `' @9 ~2 W$ ~
PERFORM get_item_data.
: V- l2 \: m4 f; R  l( _/ ]+ P
END-OF-SelectION. ; Q* H% Q8 U3 f& D) o# y- I
PERFORM sub_init_fieldcat.
PERFORM sub_init_layout. ( ~+ p% i: C/ X
PERFORM sub_listado.
3 `( i! q$ D- q3 i; o
*&---------------------------------------------------------------------*
*& FORM: get_header_data. 读取抬头数据 9 P/ \7 i% t, W9 i$ b; [" n& L- a* Z
*&---------------------------------------------------------------------* ! d! G0 P' q0 L' t! d; O, ^$ l1 u
FORM: get_header_data.
data: l_awkey like bkpf-awkey.
Select belnr
gjahr 0 M- f2 B: _+ C/ x# h: p' v$ p
vgart 3 t/ R) G) s2 \2 p& Y# ~
bldat " K! F/ U! j5 `  V/ e& W& L* E% n
budat
rmwwr 8 ~! z% Q# E6 t. x. R
waers 7 \6 @* g& p- r3 K4 K
zuonr
FROM rbkp ; x4 X4 E* b! i6 b( a3 J
INTO CORRESPONDING FIELDS OF TABLE header
Where belnr IN s_belnr 6 i* a6 n0 v/ v2 P
AND budat IN s_budat
AND bldat IN s_bldat 8 B* h- t7 q0 L/ x" o
AND bukrs IN s_bukrs 5 W. A' I- j& ^' h- @; b
AND lifnr IN s_lifnr. 5 d9 T( `* H; W
( o* b4 ~+ p5 {$ [  K0 G# X2 N7 g
loop at header.
clear l_awkey.
concatenate header-belnr header-gjahr into l_awkey. ( R7 \: r- r6 t( l
select single belnr from bkpf ! @* }* x* E) m! E6 j. w
into header-s_belnr
where awkey = l_awkey.
. ~, _( l- v' R8 A; I! W9 J4 w6 L7 T; ]
modify header.
endloop.   O# V6 B- e. z6 r; H# n
ENDFORM. 6 `" h% ^$ v3 K5 O4 R" B; w
*&---------------------------------------------------------------------*
*& FORM: get_item_data. 读取行项目数据 ! l2 [9 C1 [) L
*&---------------------------------------------------------------------*
FORM: get_item_data.
CHECK header[] IS NOT INITIAL. 1 E0 L* S" }8 `7 P( {
& ~- o* k" }! a* N8 ^
Select belnr
gjahr
buzei 2 ^/ f7 G1 L$ P3 R1 K- o' i) r
ebeln # P/ v1 s2 v3 W( Y- b) k
ebelp & H! U1 R6 v6 Q5 o  q  }
wrbtr , F2 Y5 j+ v/ T1 @
shkzg & j, Q% @% ~: V5 q4 R2 M! C, ?
menge 8 a; i0 Y+ k# [5 a6 Y/ p) m6 \
bstme + j+ R/ x% M$ N" j
FROM rseg $ C8 V% n3 A: _/ m9 a5 {; N# |
INTO CORRESPONDING FIELDS OF TABLE item   N+ O2 R6 b8 @+ J! R* Z
FOR ALL ENTRIES IN header
Where belnr = header-belnr ) V* @" K5 b$ |) Q$ @& x
AND gjahr = header-gjahr.
. W; }  \" l2 A7 t. J5 V( }
Select ekpo~ebeln
ekpo~ebelp
ekpo~matnr 7 E5 j; F+ ~  d7 V( N
ekpo~txz01 - }" Q- d# q7 ]  t) Q
FROM ekko INNER JOIN ekpo ON ekko~ebeln = ekpo~ebeln + e7 q7 w/ o/ H3 _* b1 O8 P
INTO CORRESPONDING FIELDS OF TABLE EKPO_DATA
FOR ALL ENTRIES IN item
Where ekpo~ebeln = item-ebeln
AND ekko~ekgrp IN s_ekgrp. - Q0 g+ Y: x% q$ I
3 v: S6 O4 |/ V9 R0 k. w
LOOP AT item. , \, u  |, p: V( x3 z
READ TABLE header WITH KEY belnr = item-belnr 0 C3 {3 `( L! v/ w
gjahr = item-gjahr. ' u. X# R; \; j  ~7 Q; ]
item-bldat = header-bldat. * H% b( |) A. ~0 j, U3 r
item-budat = header-budat.
item-rmwwr = header-rmwwr.
item-waers = header-waers.
item-zuonr = header-zuonr. / t/ v; M; U7 m+ P, G/ w' S
item-s_belnr = header-s_belnr. , \; J! g! w& k  ]5 _
! j+ {: U' e' p& R1 d4 V7 C. e% Q
IF item-shkzg = 'H'. % z1 E: V% j/ Z) v8 L
item-rmwwr = 0 - item-rmwwr. 7 y) f9 [* Q: h+ ]  b
item-wrbtr = 0 - item-wrbtr.
item-menge = 0 - item-menge. % O2 ]: k5 V2 X9 y! ~/ s; B, J
ENDIF.

PERFORM frm_read_item_text USING item-ebeln item-ebelp item-text.

READ TABLE ekpo_data WITH KEY ebeln = item-ebeln 1 e/ G% d2 e: ]$ o+ g
ebelp = item-ebelp. $ K. X& r, r# R+ _
IF sy-subrc = 0. 8 \8 P3 r& [+ e, D$ Z
item-matnr = ekpo_data-matnr. 8 p: B! _# v2 P
item-txz01 = ekpo_data-txz01. ; m7 I4 q  H% f" ?8 z
MODIFY item.   R' D, f2 @+ `# x; {  z
ELSE. # D7 b3 Z1 a; v' {
Delete item.
ENDIF.
ENDLOOP.
FREE ekpo_data. + a) Z# l3 @, z' Y$ }. N, i
FREE header. 9 ~, H8 k1 K0 S9 b5 Q) I3 Y- S
ENDFORM.
% c+ {9 s* w( V/ C! s0 H" @7 K$ m
*&---------------------------------------------------------------------* 0 D5 D( {5 `+ v7 o( n$ j
*& FORM:get_wdlgt
*&---------------------------------------------------------------------* - L6 C3 n! O3 t- g/ Z; e
*FORM get_wdlgt using l_ebeln l_ebelp. 7 p0 w1 ]3 o) Y. z% j/ m
*批次信息需要追踪到交货中,从交货单的行项目中获得物料号,批次号,然后再 & h+ U, t: e0 A- R
*根据这两个数据从批次表中取得数据,然后将根据数据内容组合成规格数据
* 1 K5 d7 _9 T: z! X( C0 I0 D
*ENDFORM.

ABAP源程序---发票校验明细表相关推荐

  1. 【MM模块】Basic Invoice Verification 发票校验

     Invoice Verification  正常在SAP MM模块中,发票校验属于最后一个处理环节,发票校验完成之后财务就可以进行付款了(Payment). 物料需求计划MRP--外部采购(MM)- ...

  2. SAP小技巧 发票校验BAPI调用总结

    点击蓝字 关注我们 一 前言 同事开发供应商结算功能时,需要把供应商的采购入库,采购退货,及供应商的费用项,返利项等整合到一张发票校验单据中. 调用BAPI的时候,因为参数填写的原因,报了一些错误.帮 ...

  3. 如何使dropship第三方销售是基于发货数量,而不是基于LIV发票校验的数量

    不好意思,我何慕雄这两天说drop ship第三方销售已经是说烂了,但是,还是要得继续说,毕竟这个问题也是挺复杂的. 什么是第三方销售呢?第三方销售是指客户向我们下销售订单,而我们没有货,但是根据这个 ...

  4. SAP MM 如下图,做发票校验的时候,对于非计划交货成本分摊到各个ITEM中,为什么分摊比例是1:2,而非1:6?

    SAP MM 如下图,做发票校验的时候,对于非计划交货成本分摊到各个ITEM中,为什么分摊比例是1:2,而非1:6? [业务场景] 某个采购订单,包含2个行项目,物料A和物料B. 4月20号完成了一笔 ...

  5. 【MM】基于收货的发票校验Bapi Demo

    正常我们都会在供应商主档和信息记录主档中勾选"基于收货的发票校验"选项,意味着做采购发票校验的时候需要基于收货凭证.       LS_ITEM-REF_DOC = LT_ZMSE ...

  6. 【MM】 基于收货的发票校验

    基于收货的发票校验 1.信息记录中采购组织数据视图下面的"基于收货的发票校验". 比如PO数量为100 PC,进行三次收货,分别是10 PC.20 PC和70 PC. 如果勾选了& ...

  7. 【MM模块】Invoice Verification in the Background 后台发票校验

    Invoice Verification in the Background 前台运行发票校验的事务代码为:MIRO 后台运行发票校验的事务代码为:MIRA 如上图所示,我们通过事务代码MIRA进入界 ...

  8. MM--发票校验 及基于采购订单的MIRO发票校验过程

    一.介绍 发票校验是物料管理(MM)系统的一部分.它提供物料管理部分和财务会计, 成本控制和资产管理部分的连接. 物料管理模块的发票校验为以下目的服务: 它完成物料采购的全过程 - 物料采购从采购申请 ...

  9. SAP发票校验前收货后是否能更改物料价格

    采购单部分收货或者完全收货后,仍然可以更改价格.这是SAP系统的标准设置.这一点的意义究竟何在呢?收完货再改价格,影响到了什么?为什么允许这么做? 先来看看在这种情况下,哪里会受到影响.经过测试发现, ...

最新文章

  1. BASH 进阶 文件描述符号的使用
  2. web.py 0.3 新手指南 - 安装
  3. Java基础day7
  4. 全国计算机等级考试题库二级C操作题100套(第99套)
  5. bilibili 解析_用 Python 抓取 bilibili 弹幕并分析!
  6. 微商分销代理商城源码-代理等级和升级条件
  7. GitHub Desktop理解与入门
  8. CSS:标签右对齐,文本框左对齐的实现
  9. Python 实现LU分解
  10. 黑马程序员--IO总结(含2个设计模式)
  11. 【Unity2D好项目分享】提高游戏人物打击感
  12. 老师一天表情大全,也太搞笑了!
  13. html + js实现马赛克画板
  14. C#控件编程详解之文本框(TextBox)
  15. sqlserver 取余和取整
  16. 严重性 代码 说明 项目 文件 行 禁止显示状态 警告 CS8032 无法从...创建分析器...的实例: 未能加载文件或程序集...或它的某一个依赖项。系统找不到指定的文件
  17. 使用 “Cubic” 制作自定义 “ubuntu” 系统镜像
  18. struct hdr_cmn
  19. IBM CRL实习感受
  20. Office365:客户端升级后无法启动Microsoft Outlook

热门文章

  1. 如果两个对象具有相同的哈希码,但是不相等的,它们可以在HashMap中同时存在吗?...
  2. 双网卡绑定之负载均衡高可用(bond)
  3. (转)使用 /proc 文件系统来访问 Linux 内核的内容
  4. CentOS7 安装 Gitlab
  5. 微软宣布.NET开发环境将开源 支持Mac OS X和Linux
  6. IPSec的NAT穿越
  7. nodejs(log4js)服务中应用splunk进行Log存储、搜索、分析、监控、警告
  8. 基于订阅的服务通讯架构体系
  9. 利用Bootstrap+Avalonjs+EntityFramework 开发ASP.NET WebForm应用程序(上)
  10. 原码、补码、反码、1的补码