$PBExportHeader$f_rst_item_sub_bbalc.srf global type f_rst_item_sub_bbalc from function_object end type forward prototypes global function decimal f_rst_item_sub_bbalc (long arg_itemid, string arg_subid, long arg_cmonth, integer arg_postflag) end prototypes global function decimal f_rst_item_sub_bbalc (long arg_itemid, string arg_subid, long arg_cmonth, integer arg_postflag);//项目科目期初数 //1.计算初始化数 //2.计算期间发生数 Decimal rst_bbalc,init_bbalc,ins_bbalc //1. SELECT uv_item_init.balance INTO :init_bbalc FROM uv_item_init WHERE uv_item_init.accsetid = :sys_accsetid AND uv_item_init.itemid = :arg_itemid AND uv_item_init.subid = :arg_subid; IF sqlca.SQLCode <> 0 OR IsNull(init_bbalc) THEN init_bbalc = 0.00 END IF //2. SELECT sum(uv_dept_bala.debit)-sum(uv_dept_bala.credit) INTO :ins_bbalc FROM uv_dept_bala WHERE uv_dept_bala.accsetid = :sys_accsetid AND uv_dept_bala.itemid = :arg_itemid AND uv_dept_bala.subid = :arg_subid AND uv_dept_bala.cmonth < :arg_cmonth And ( uv_dept_bala.postflag = :arg_postflag OR :arg_postflag = -1) ; IF sqlca.SQLCode <> 0 OR IsNull(ins_bbalc) THEN ins_bbalc = 0.00 END IF rst_bbalc = init_bbalc + ins_bbalc RETURN rst_bbalc end function