APP_CALCULATE.RUNNING_TOTAL用法

  

  有时候需要显示某个栏位的汇总数量,且在例如新增、删除,修改记录的时候,汇总项的值要相应地改变,如果直接使用中形式的总和属性功能,对于清除等操作要进行复杂处理.Oracle提供了APP_CALCULATE.RUNNING_TOTAL来实现这种需求,封装在APPCORE.PLL中。   

  

  例如:,   
  要汇总的项目为:LINES.QUANTITY,要显示汇总结果的块为HEADERS    
  1.标题里建立要显示的汇总结果,如QTY_SUM    
  2.标题里建立两个非数据库项,分别命名为QTY_SUM_RTOT_OLD和QTY_SUM_RTOT_DB(型),   
  3.线里建立两个非数据库项,分别命名为QUANTITY_RTOT_OLD和QUANTITY_RTOT_DB(型),   
  4 .建立存储过程来包装APP_CALCULATE.RUNNING_TOTAL    
  例:   
  IS  VARCHAR2过程RUNNING_TOTAL_QUANTITY(事件);   
  BEGIN    
  ,APP_CALCULATE。RUNNING_TOTAL(事件,& # 39;LINES.QUANTITY& # 39;, & # 39; HEADERS.QTY_SUM& # 39;),,   
  结束,,   
     5:行。数量的WHEN-VALIDATE-ITEM触发器中写RUNNING_TOTAL_QUANTITY (& # 39; WHEN-VALIDATE-ITEM& # 39;);   

  

  ,,,如果要汇总的栏位来自多个栏位的运算,需要在每个栏位的WHEN-VALIDATE-ITEM时写运算重新计算值赋给要汇总的栏位。   

  

  6.:标题的post请求触发器中从数据库中抓取初始的汇总值,例:   

  

  Declare    
  ,V_SUM;数量,   
  BEGIN    
  ,选择NVL(和(数量),0),   
  ,,,,,V_SUM    
  ,,从LINES ,;   
  ,,HEADER_ID=: HEADERS.HEADER_ID;,   
  ,:HEADERS.QTY_SUM ,,,,,,,,,,,,,,,,:=V_SUM;大敌;   
  ,,      结束;   

  

  7:线的如下触发中写相应代码:,   
  ——KEY-DELREC    
  RUNNING_TOTAL_QUANTITY (& # 39; KEY-DELREC& # 39;),,   
  DELETE_RECORD;   

  

     

  

  ——KEY-DUPREC    
  RUNNING_TOTAL_QUANTITY (& # 39; KEY-DUPREC& # 39;),,   
  DUPLICATE_RECORD;   

  

  ——KEY-CLRREC    
  RUNNING_TOTAL_QUANTITY (& # 39; KEY-CLRREC& # 39;),,   
  CLEAR_RECORD;——(网上例子为:APP_FOLDER.EVENT (& # 39; KEY-CLRREC& # 39;)。)   

  

  ——POST-QUERY    
  RUNNING_TOTAL_QUANTITY (& # 39; POST-QUERY& # 39;);   

  

     

  

  注:网上例子中还有post_insert, post_update, pre_record中写,我目前没写,测试好,不知道会有什么漏洞,暂时没测出来。   

  

  另外上面的链接中,作者的例子会有问题,像链接文章评论所说,作者需增加,         ,即,      

  

  最初我没有写,      注①,         ,后经测试,,      ,还是举个例子说的吧:   

  

  ※※※※、、、※※※※※※※※※※、、、、、、、、、※※※※※※※※※※、、、、、、、、、※※※※※※※※※※、、、、、、、、、※※※※※※※※※※、、、、、、、、、※※※※※※※※※※、、、、、、、、、※※※※※※※※※※、、、、、、、、、※※※※※※※※※。、、、、、、、、   

  

     行项只有一条记录,值为100,      

  

     

  

     

  

     

  

     

  

     

  

     

  

     

  

  ※※※※、、、※※※※※※※※※※、、、、、、、、、※※※※※※※※※※、、、、、、、、、※※※※※※※※※※、、、、、、、、、※※※※※※※※※※、、、、、、、、、※※※※※※※※※※、、、、、、、、、※※※※※※※※※※、、、、、、、、、※※※※※※※※※。、、、、、、、、   

  

     注①一定要写。         

  

     块的删除允许设置为不,由于种种原因,删除按钮是亮的。这种情况下,点击,      的时候会提示   

  

  ,,,,,,,纳- 41049:你不能删除这个记录。但是汇总量会被减掉,一直点下去,会一直减掉. .直至负NNNN……    APP_CALCULATE.RUNNING_TOTAL用法”>
  <h2 class=APP_CALCULATE.RUNNING_TOTAL用法