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;          
 
 

2、参考网址:http://www.tuicool.com/articles/vI3URn

3、相关开发FORM:CUXFGTINFO
 
 
 
 
 

Form实现主从块金额汇总的更多相关文章

  1. ajax提交form表单资料详细汇总

    一.ajax提交form表单和不同的form表单的提交主要区别在于,ajax提交表单是异步提交的,而普通的是同步提交的表单.通过在后台与服务器进行少量数据交换,ajax 可以使网页实现异步更新.这意味 ...

  2. form表单类标签汇总

    <form action="form_action.asp" method="get"> First name: <input type=&q ...

  3. Mysql主从同步问题汇总

    data-1-1主机是master,data-1-2是slave Last_IO_Errno: 1236 slave查看show slave status\G; 显示Last_IO_Errno: 12 ...

  4. Form表单的知识点汇总

    分享学习到的Form知识点,希望给同样有所需要的朋友共同学习..愿我的分享,可以成为您的厚爱.. 简单的知识收到简单的回报,未来的努力造就优秀的自己... <!--<form> -- ...

  5. mysql主从同步问题解决汇总

    出现问题原因:出现这个问题的原因是之前曾做过主从复制!问题:ERROR 1201 (HY000): Could not initialize master info structure; more e ...

  6. javascript树形汇总金额

    在开发企业应用的时候总会遇到树形汇总金额的场景,即将树形的列表中的叶子节点(没有子节点)的金额汇总到父节点上. 这种需求一般是在前端进行处理,即使用JavaScript处理,因为叶子节点的金额可能是不 ...

  7. HTML块级标签汇总(小篇)

    块级元素,简单来说,就是自己独占一行的元素.其特点: ①总是在新行上开始: ②高度,行高以及外边距和内边距都可控制: ③宽度缺省是它的容器的100%,除非设定一个宽度. ④它可以容纳内联元素和其他块元 ...

  8. OAF_开发系列01_实现OAF资料主从关系Master-Detail联动(案例)

    2014-06-02 Created By BaoXinjian

  9. FORM触发器

     FORM级触发器 PRE-FORM该触发器是在用户双击功能后,进入form前 WHEN-NEW-FORM-INSTANCE该触发器是在用户一进入form时执行 WHEN-FORM-NAVIGAT ...

随机推荐

  1. Heritrix源码分析(九) Heritrix的二次抓取以及如何让Heritrix抓取你不想抓取的URL

    本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/644396       本博客已迁移到本人独立博客: http://www.yun5u ...

  2. poj 2661 Factstone Benchmark (Stirling数)

    //题意是对于给定的x,求满足n! <= 2^(2^x)的最大的n//两边同取以二为底的对数,可得: lg2(n!) <= 2^x 1.   log2(n!) = log2(1) + lo ...

  3. android.os.NetworkOnMainThreadException解决

    很早就知道Android4.0以后,要把耗时的网络操作放在多线程中,处理方法有: 1) setContentView(R.layout.activity_main)下面加上如下代码 if (andro ...

  4. 什么是REST?以及RESTful的实现

    什么是REST? REST (REpresentation State Transfer) 描述了一个架构样式的网络系统,比如 web 应用程序.它首次出现在 2000 年 Roy Fielding ...

  5. Linux makefile教程之make运行八[转]

    make 的运行 —————— 一 般来说,最简单的就是直接在命令行下输入make命令,make命令会找当前目录的makefile来执行,一切都是自动的.但也有时你也许只想让 make重编译某些文件, ...

  6. Mysql数据库优化总结2

    说明:本文的环境为CENTOS 5.5 64 Bit /Mysql 5.1.50 简介:使用Mysql有一段时间了,期间做了不少关于Mysql优化.设计.维护的工作,这两天有时间做一下简单的总结,方便 ...

  7. 读取raw目录中的文件数据

    try { InputStream is2 = getResources().openRawResource(R.raw.info); InputStreamReader isr2 = new Inp ...

  8. GC Buffer Busy Waits处理(转载)

    与单实例不同,在RAC环境中,由于多节点的原因,会因为节点间的资源争用产生GC类的等待,而这其中,GC Buffer Busy Waits又是最为常见的,从性能角度上说,RAC是把双刃剑,用的好,能够 ...

  9. 使用源码编译wxpython-基于python2.7

    1.前言 本文主要讲述在linux环境下进行编译wxpython,在windows下面安装wxpython很简单,只要下载,然后直接执行exe文件,下一步下一步即可安装,在linux下面,则具有很多步 ...

  10. jboss服务器配置多实例

    jboss配置多实例的重要性 在开发, 测试项目的过程中, 我们经常需要在同一台主机上, 同一个服务器上配置多个运行实例.这样做有一下几点好处: 在项目开发, 调试阶段能最大限度的节省资源 某个实例出 ...