Form实现主从块金额汇总
1、FORM使用app_calculate.running_total汇总行金额,行上有编码重复验证。
情况二:失效清除按钮,当录入多个编码重复的行并保存时,报错,删除一个重复行再保存(头行金额一致),报错“编码重复”,再删除重复行(头行金额一致),保存,头金额重新又加上了已删除行金额,报错“编码重复”
汇总头行金额代码:
头汇总项:amount,amount_dis, amount_dis_rtot_db
bast_amount, base_amount_dis, base_amount_dis_rtot_db
行项: amount, amount_dis, amount_dis_rtot_db, amount_dis_rtot_old
bast_amount, base_amount_dis, base_amount_dis_rtot_db, base_ amount_dis_rtot_old
触发器:
from级:
POST-FORMS-COMMIT:
lines.running_total('POST-FORMS-COMMIT');
LINES.CHECK_LINES_DATE;
PRE-COMMIT:
lines.running_total('PRE-COMMIT');
update CUX_DOC_YSJH_HEADERS
set amount= nvl(:header.amount_dis,:header.amount),
base_amount = nvl(:header.base_amount_dis,:header.base_amount)
where header_id=:header.header_id;
头块:
POST-QUERY:
SELECT nvl(SUM(AMOUNT),0),SUM(BASE_AMOUNT)
INTO :HEADER.AMOUNT_dis,:HEADER.BASE_AMOUNT_dis
FROM CUX_DOC_YSJH_LINES t
WHERE t.header_id = :HEADER.header_id;
:HEADER.AMOUNT_dis_RTOT_DB:=:HEADER.AMOUNT_dis;
:HEADER.BASE_AMOUNT_dis_RTOT_DB:=:HEADER.BASE_AMOUNT_dis;
IF nvl(:PARAMETER.CUX_QUERY_ONLY,'NO') = 'YES' THEN
set_block_property('header',QUERY_ALLOWED , PROPERTY_FALSE);
END IF;
行块:
KEY-DELREC:
lines.running_total('KEY-DELREC');
Delete_Record;
KEY-DURREC:
duplicate_record;
lines.running_total('KEY-DUPREC');
:lines.SEQ_NO := :lines.SEQ_NO + 1;
WHEN-CLEAR-BLOCK:
lines.running_total('WHEN-CLEAR-BLOCK');
POST-QUERY:
app_folder.event('POST-QUERY');
app_globe.event('POST-QUERY');
:lines.amount_dis := :lines.amount;
:lines.amount_dis_RTOT_DB := :lines.amount;
:lines.base_amount_dis := :lines.base_amount;
:lines.base_amount_dis_RTOT_DB := :lines.base_amount;
lines.running_total( 'POST-QUERY' );
lines.control_dis('POST-QUERY');
KEY-CLRREC:
lines.running_total('KEY-CLRREC');
app_folder.event('KEY-CLRREC');
POST-INSERT:
lines.running_total('POST-INSERT');
PRE-RECORD:
lines.running_total('PRE-RECORD');
POST-UPDATE:
lines.running_total('POST-UPDATE');
PRE-INSERT:
:lines.amount := :lines.amount_dis;
:lines.base_amount := :lines.base_amount_dis;
LINES.CHECK_LINES_DATE;
PRE-UPDATE:
:lines.amount := :lines.amount_dis;
:lines.base_amount := :lines.base_amount_dis;
LINES.CHECK_LINES_DATE;
程序单元:
PROCEDURE running_total(event VARCHAR2) IS
BEGIN
app_calculate.running_total(event,'lines.amount_dis','header.amount_dis');
app_calculate.running_total(event,'lines.base_amount_dis','header.base_amount_dis');
END running_total;
PROCEDURE CHECK_LINES_DATE IS
L_CNT NUMBER;
L_CNT_F NUMBER; --统计是否有<0的对应发票
L_TYPE_ID varchar2(50);
BEGIN
SELECT COUNT(1)
into l_cnt
FROM (SELECT cdl.type_id, COUNT(*) cnt
--INTO l_type_id, l_cnt
FROM cux_doc_ysjh_lines cdl, cux_doc_ysjh_headers cdh
WHERE cdh.header_id = cdl.header_id
AND nvl(cdl.attribute2, 'Y') = 'N' --是否允许新增标识
AND cdh.header_id = :header.header_id
GROUP BY cdl.type_id
having COUNT(*)>1);
IF L_CNT >= 1 THEN
:HEADER.STATUS_DESC := '新建';
:HEADER.STATUS :='INCOMPLETE';
FND_MESSAGE.CLEAR;
FND_MESSAGE.SET_STRING('付款编码不允许有重复行录入.');
FND_MESSAGE.ERROR;
RAISE FORM_TRIGGER_FAILURE;
END IF;
END CHECK_LINES_DATE;
Form实现主从块金额汇总的更多相关文章
- ajax提交form表单资料详细汇总
一.ajax提交form表单和不同的form表单的提交主要区别在于,ajax提交表单是异步提交的,而普通的是同步提交的表单.通过在后台与服务器进行少量数据交换,ajax 可以使网页实现异步更新.这意味 ...
- form表单类标签汇总
<form action="form_action.asp" method="get"> First name: <input type=&q ...
- Mysql主从同步问题汇总
data-1-1主机是master,data-1-2是slave Last_IO_Errno: 1236 slave查看show slave status\G; 显示Last_IO_Errno: 12 ...
- Form表单的知识点汇总
分享学习到的Form知识点,希望给同样有所需要的朋友共同学习..愿我的分享,可以成为您的厚爱.. 简单的知识收到简单的回报,未来的努力造就优秀的自己... <!--<form> -- ...
- mysql主从同步问题解决汇总
出现问题原因:出现这个问题的原因是之前曾做过主从复制!问题:ERROR 1201 (HY000): Could not initialize master info structure; more e ...
- javascript树形汇总金额
在开发企业应用的时候总会遇到树形汇总金额的场景,即将树形的列表中的叶子节点(没有子节点)的金额汇总到父节点上. 这种需求一般是在前端进行处理,即使用JavaScript处理,因为叶子节点的金额可能是不 ...
- HTML块级标签汇总(小篇)
块级元素,简单来说,就是自己独占一行的元素.其特点: ①总是在新行上开始: ②高度,行高以及外边距和内边距都可控制: ③宽度缺省是它的容器的100%,除非设定一个宽度. ④它可以容纳内联元素和其他块元 ...
- OAF_开发系列01_实现OAF资料主从关系Master-Detail联动(案例)
2014-06-02 Created By BaoXinjian
- FORM触发器
FORM级触发器 PRE-FORM该触发器是在用户双击功能后,进入form前 WHEN-NEW-FORM-INSTANCE该触发器是在用户一进入form时执行 WHEN-FORM-NAVIGAT ...
随机推荐
- ios 内存管理 心得
- alloc, copy, retain会把引用计数+1 - release会把引用计数-1 - 局部变量如果初始化时不是autorelease的,要及时调用release释放,并且赋值为nil否则 ...
- 设置VMWARE通过桥接方式使用主机无线网卡上网(zz)
环境:WIN7旗舰版,台式机,U盘无线上网卡. 虚拟软件:VMware9.0,虚拟系统:CentOS6.4 需要实现虚拟机以独立机形式工作和上网. 先介绍一下VMware网络设置的三种方式 1 Hos ...
- C# 使用NPlot绘图技巧
原文 C# 使用NPlot绘图技巧 图表控件一直是很难找的,特别是免费又强大的.NPlot是一款非常难得的.Net平台下的图表控件,能做各种曲线图,柱状图,饼图,散点图,股票图等,而且它免费又开源,使 ...
- leetcode:Longest Palindromic Substring(求最大的回文字符串)
Question:Given a string S, find the longest palindromic substring in S. You may assume that the maxi ...
- Trie树也称字典树
Trie树 Trie树也称字典树,因为其效率很高,所以在在字符串查找.前缀匹配等中应用很广泛,其高效率是以空间为代价的. 一.Trie树的原理 利用串构建一个字典树,这个字典树保存了串的公共前缀信息, ...
- ubuntu ip
一.使用命令设置Ubuntu IP地址 1.修改配置文件blacklist.conf禁用IPV6 sudo vi /etc/modprobe.d/blacklist.conf 在文档最后添加 blac ...
- 转】MyEclipse使用总结——MyEclipse文件查找技巧
原博文出自于:http://www.cnblogs.com/xdp-gacl/p/3781749.html 感谢! 一.查找文件 使用快捷键[ctrl+shift+R]弹出弹出文件查找框,如下图所示: ...
- jquery call方法和apply方法接触
call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call 方法可以用来 ...
- C#.Net 导出Excel 之单元格 相关设置
range.NumberFormatLocal = "@"; //设置单元格格式为文本range = (Range)worksheet.get_Range("A1 ...
- Java模板引擎 FreeMarker
@(编程) [TOC] 1. 简介 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写.它是为Java程序员提供的一个开发包.它不是面向最终用户的,而是为程序员 ...