当前位置:操作系统 > Unix/Linux >>

FORM主从块头行金额汇总

FORM主从块头行金额汇总
 
步骤:
1.       在主块CUX_OM_HEADER创建零时汇总项目,:<合计项目名称>_RTOT_DB,NUMBER(38)/DISPLAY_ITEM, TOTAL_AMOUNT_RTOT_DB,非数据库项,不显示

2.       在从块创建2个零时统计项目,一个<被统计项>_RTOT_OLD,另一个<被统计项>_RTOT_DB,类型 CHAR(61) DISPLAY_ITEM,LINE_AMOUNT_RTOT_DB、LINE_AMOUNT_RTOT_OLD,非数据库项,不显示

3.       计算汇总调用的方法:

  --计算汇总金额

  PROCEDURE running_total(p_event VARCHAR2) IS

  BEGIN

    app_calculate.running_total(p_event, 'CUX_OM_LINE.LINE_AMOUNT', 'CUX_OM_HEADER.TOTAL_AMOUNT');

  END running_total;

4.       数量或者单价更改,WHEN-VALIDATE-ITEM

CUX_OM_LINE_PKG.event('AMOUNT_INIT');

CUX_OM_LINE_PKG.running_total('WHEN-VALIDATE-ITEM');



包计算行金额

ELSIF p_event = 'AMOUNT_INIT' THEN

      :CUX_OM_LINE.LINE_AMOUNT := :CUX_OM_LINE.ORDER_QUANTITY * :CUX_OM_LINE.UNIT_SELLING_PRICE;

5.       主块POST_QUERY

  cux_om_header_pkg.event('POST-QUERY');



  SELECT nvl(SUM(cola.order_quantity * cola.unit_selling_price), 0)

    INTO :cux_om_header.total_amount

    FROM cux_order_lines_all cola

   WHERE cola.cux_order_header_id = :cux_om_header.cux_order_header_id;

  :cux_om_header.total_amount_rtot_db := :cux_om_header.total_amount;



6.       从快触发器

KEY-DELREC

CUX_OM_LINE_PKG.running_total('KEY-DELREC');

delete_record;

CUX_OM_LINE_PKG.running_total('UNDELETE');



KEY-DUPREC

CUX_OM_LINE_PKG.running_total('KEY-DUPREC');

duplicate_record;



KEY-CLRREC

CUX_OM_LINE_PKG.running_total('KEY-CLRREC');

app_folder.event('KEY-CLRREC');



WHEN-CLEAR-BLOCK

CUX_OM_LINE_PKG.running_total('WHEN-CLEAR-BLOCK');



POST-QUERY

app_folder.event('POST-QUERY');

app_globe.event('POSET-QUERY');

CUX_OM_LINE_PKG.event('AMOUNT_INIT');

CUX_OM_LINE_PKG.running_total('POST-QUERY');

if :system.trigger_record =1 then

    SELECT nvl(SUM(cola.order_quantity * cola.unit_selling_price),0)

        INTO :CUX_OM_HEADER.total_amount

        FROM cux_order_lines_all cola

       WHERE cola.cux_order_header_id = :CUX_OM_HEADER.cux_order_header_id;

:CUX_OM_HEADER.TOTAL_AMOUNT_RTOT_DB:=:CUX_OM_HEADER.total_amount;

end if;

 


CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,