查询PO的预付款剩余金额
FUNCTION zrfc_mm016.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(CALLNO) TYPE ZCALLNO
*" VALUE(BUKRS) LIKE BSIK-BUKRS
*" VALUE(GJAHR) LIKE BSIK-GJAHR
*" EXPORTING
*" VALUE(FLAG) LIKE BAPIRET2-TYPE
*" VALUE(MESSAGE) LIKE BAPIRET2-MESSAGE
*" TABLES
*" ZRS_EBELN STRUCTURE ZRS_EBELN OPTIONAL
*" ZRS_LIFNR STRUCTURE ZRS_LIFNR OPTIONAL
*" ZYFYE STRUCTURE ZYFYE OPTIONAL
*"---------------------------------------------------------------------- TYPES:BEGIN OF ty_regup,
lifnr TYPE regup-lifnr, "供应商
bukrs TYPE regup-bukrs, "公司代码
gjahr TYPE regup-gjahr, "年度
blart TYPE regup-blart, "凭证类型
xref3 TYPE regup-xref3, "参考码3
dmbtr TYPE regup-dmbtr, "金额
wmwst TYPE regup-wmwst, "税额
zzbelnr TYPE regup-zzbelnr, "付款成功标识
END OF ty_regup. DATA:lt_regup TYPE TABLE OF ty_regup,
lt_regup_y TYPE TABLE OF ty_regup,
lt_regup1 TYPE TABLE OF ty_regup,
lt_regup_y1 TYPE TABLE OF ty_regup,
ls_regup TYPE ty_regup,
ls_regup_y TYPE ty_regup,
l_syed TYPE regup-dmbtr. "剩余额度 DATA:dmbtr(),
lv_datano TYPE i. SELECT lifnr bukrs gjahr blart xref3 dmbtr wmwst zzbelnr
INTO TABLE lt_regup
FROM regup
WHERE xvorl = 'X'
AND zbukr = bukrs
AND lifnr IN zrs_lifnr
AND bukrs = bukrs
AND gjahr = gjahr
AND xref3 IN zrs_ebeln. DELETE lt_regup WHERE zzbelnr = ''. "删除支付不成功的凭证 SORT lt_regup BY lifnr bukrs blart xref3.
lt_regup_y = lt_regup.
DELETE lt_regup WHERE blart = 'KA'. "应付款额度
DELETE lt_regup_y WHERE blart NE 'KA'. "预付款额度 *--汇总应付金额
LOOP AT lt_regup INTO ls_regup.
CLEAR:ls_regup-blart,ls_regup-zzbelnr.
COLLECT ls_regup INTO lt_regup1.
ENDLOOP. *--汇总预付金额
LOOP AT lt_regup_y INTO ls_regup_y.
CLEAR:ls_regup_y-blart,ls_regup_y-zzbelnr.
COLLECT ls_regup_y INTO lt_regup_y1.
ENDLOOP. LOOP AT lt_regup_y1 INTO ls_regup_y.
zyfye-bukrs = ls_regup_y-bukrs. "公司
zyfye-gjahr = ls_regup_y-gjahr. "年度
zyfye-lifnr = ls_regup_y-lifnr. "供应商
zyfye-ebeln = ls_regup_y-xref3. "PO号(参考码3) *--预付额度 = 预付额度 + 预付税额
l_syed = ls_regup_y-dmbtr + ls_regup_y-wmwst. READ TABLE lt_regup1 INTO ls_regup WITH KEY xref3 = ls_regup_y-xref3. *--剩余额度 = 预付额度 - 应付额度 zyfye-dmbtr = l_syed - ls_regup-dmbtr. APPEND zyfye.
CLEAR:l_syed,ls_regup,ls_regup_y,zyfye.
ENDLOOP. IF zyfye[] IS NOT INITIAL.
flag = 'S'.
ELSE.
flag = 'E'.
message = '没有数据'.
ENDIF.
*---记录日志
CLEAR:gt_log,gs_log.
LOOP AT zyfye.
dmbtr = zyfye-dmbtr.
lv_datano = lv_datano + .
gs_log-name = 'ZRFC_MM016'.
gs_log-cdate = sy-datum.
GET TIME.
gs_log-ctime = sy-uzeit.
gs_log-callno = callno.
gs_log-datano = lv_datano.
gs_log-flag = flag.
gs_log-log = message.
CONCATENATE zrs_ebeln-sign zrs_ebeln-option zrs_ebeln-low zrs_ebeln-high
zrs_lifnr-sign zrs_lifnr-option zrs_lifnr-low zrs_lifnr-high
zyfye-bukrs zyfye-gjahr zyfye-lifnr zyfye-ebeln
dmbtr
INTO gs_log-content SEPARATED BY '|'.
CONDENSE gs_log-content NO-GAPS.
gs_log-length = STRLEN( gs_log-content ).
APPEND gs_log TO gt_log.
ENDLOOP.
IF gt_log IS NOT INITIAL.
INSERT zrfc_mm01out_log FROM TABLE gt_log.
IF sy-subrc = .
COMMIT WORK.
ENDIF.
ENDIF. ENDFUNCTION.
查询PO的预付款剩余金额的更多相关文章
- Sqlserver查询数据库文件大小和剩余空间
在MS Sql Server中可以能过以下的方法查询出磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率: 1.查询各个磁盘分区的剩余空间:Exec master.dbo.xp_fixe ...
- WCF分布式事务(EF)
才说分布式事务,首先,了解一下什么是交易. 事务有四个特性:ACID A是Atomicity,原子性.一个事务往往涉及到很多的子操作,原子性则保证这些子操作要么都做,要么都不做,而不至于出现事务的部分 ...
- 分布式协议之两阶段提交协议(2PC)和改进三阶段提交协议(3PC)
一. 事务的ACID 事务是保证数据库从一个一致性的状态永久地变成另外一个一致性状态的根本,当中,ACID是事务的基本特性. A是Atomicity,原子性.一个事务往往涉及到很多的子操作,原子性则保 ...
- SQL分页查询的几种方式
需求:查询表dbo.Message,每页10条,查询第2页 1:TOP() ) * FROM dbo.Message WHERE Code NOT IN () Code FROM dbo.Messag ...
- 一个小玩意 PHP实现微信红包金额拆分试玩
<meta charset="utf-8"> <?php // 新年红包金额拆分试玩 class CBonus { public $bonus;//红包 publ ...
- Hibernate学习笔记--------4.查询
一.Get/Load Get方法是立即检索,而load是延迟检索,他们都是根据主键进行查询.在<class>标签中,若把lazy属性改为false,load方法就会立即检索,class中的 ...
- [mysql] 关联查询sql记录
//查询账单关联订单 select o.id as id, o.order_no as orderNo, o.case_no as caseNo, o.send_time as sendTime, o ...
- Mybatis的关联查询(一)
一对一的关联查询 一.使用resultType进行输出映射 1. 创建一个新的PO类,由于要将查询出来的属性映射到新的PO类.所有该PO类中应该有查询出来的所有列对应的属性. //定义新的PO类, ...
- Spring Boot2(十一):Mybatis使用总结(自增长、多条件、批量操作、多表查询等等)
一.前言 上次用Mybatis还是2017年做项目的时候,已经很久过去了.中途再没有用过Mybatis.导致现在学习SpringBoot过程中遇到一些Mybatis的问题,以此做出总结(XML极简模式 ...
随机推荐
- java执行windows 的cmd 命令
//获取运行时 Runtime rt = Runtime.getRuntime(); //获取进程 Process p = rt.exec(String[] cmdarray); 或者 P ...
- UIWebvView 解决onClick 延迟相应问题
在使用 UIWebView 的过程中, 发现 onClick 触发需要等待300-500ms, Google了一下, 发现是因为ScrollView 在等待doubleTap, 所以有延迟 使用如下代 ...
- 关于MooTools你应该熟知的6个基本知识
MooTools是一个精简.模组化同时也面向对象的JavaScript框架,它设计给中等和进阶的JavaScript开发人员使用.使用 MooTools优美.详细而条理分明的API,可让你写出强大.富 ...
- hdu 4372 第一类stirling数的应用/。。。好题
/** 大意: 给定一系列楼房,都在一条水平线上,高度从1到n,从左侧看能看到f个, 从右侧看,能看到b个,问有多少种这样的序列.. 思路: 因为肯定能看到最高的,,那我们先假定最高的楼房位置确定,那 ...
- Qt浅译:JSON Support in Qt(JSON只有六种数据类型)
JSON Support in Qt Qt5之后开始提供对处理JSON数据的支持,JSON是一种Interter数据交换的数据格式. JSON 用于存储结构化的数据,JSON有6种基本数据类型 ...
- 解决安装oracle后系统变慢问题
Oracle数据库是一个很占资源的软件,光一个实例服务所占内存,根据其安装时分配的内存就至少要达到256MB以上,再加上其他附属服务,光内存就要占用物理内存的400M左右,虚拟内存也会有等值或更高的损 ...
- C++一些注意点之异常处理
几篇文章:(1)http://blog.csdn.net/daheiantian/article/details/6530318 (2)http://blog.chinaunix.net/uid-21 ...
- Axure滚动效果实现
下面的这个透明区域用于显示滚动效果,它本身是一个处于隐藏状态的动态面板,它里面也放了一个动态面板用于产生移动的效果 里面的动态面板起名“实际内容”,注意它的默认状态是“状态2”,状态2和状态一的内容一 ...
- float 覆盖元素的问题
<span class="right-span"><a href="/xxx/" class="btn">增加Ser ...
- 【Oracle】ORA-01722:无效数字(控制文件最后一个字段)
原因: 每一行物理数据最后都存在一个换行符. 如果integer或者number类型的字段位于控制文件的最后,最后其实都会有CR/LF的换行符,在用sqlldr导入时会把换行符也算作那个数字的一部分, ...