123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- $PBExportHeader$f_rst_spt_bbala.srf
- global type f_rst_spt_bbala from function_object
- end type
- forward prototypes
- global function decimal f_rst_spt_bbala (long arg_accsetid, long arg_cmonth, string arg_subid, long arg_sptid, integer arg_dcflag, integer arg_postflag)
- end prototypes
- global function decimal f_rst_spt_bbala (long arg_accsetid, long arg_cmonth, string arg_subid, long arg_sptid, integer arg_dcflag, integer arg_postflag);//返回项目总帐期初数
- Decimal rst_spt_amt
- Decimal init_spt_debit,cur_spt_debit
- Decimal init_spt_credit,cur_spt_credit
- SELECT isnull(sum(uv_dept_bala.debit),0),
- isnull(sum(uv_dept_bala.credit),0)
- INTO :cur_spt_debit,:cur_spt_credit
- FROM uv_dept_bala,cw_subject
- WHERE ( uv_dept_bala.accsetid = cw_subject.accsetid ) AND
- ( uv_dept_bala.subid = cw_subject.subid ) AND
- ( cw_subject.detailflag = 1 ) AND
- ( uv_dept_bala.accsetid = :arg_accsetid ) AND
- ( uv_dept_bala.cmonth < :arg_cmonth ) AND
- ( uv_dept_bala.subid LIKE :arg_subid ) AND
- ( uv_dept_bala.sptid = :arg_sptid ) AND
- ( uv_dept_bala.postflag = :arg_postflag OR :arg_postflag = -1 );
- IF sqlca.SQLCode <> 0 THEN
- cur_spt_debit = 0
- cur_spt_credit = 0
- END IF
- SELECT isnull(uv_spt_init.debit,0),
- isnull(uv_spt_init.credit,0)
- INTO :init_spt_debit,:init_spt_credit
- FROM uv_spt_init,cw_subject
- WHERE ( uv_spt_init.accsetid = cw_subject.accsetid ) AND
- ( uv_spt_init.subid = cw_subject.subid ) AND
- ( cw_subject.detailflag = 1 ) AND
- ( uv_spt_init.accsetid = :arg_accsetid ) AND
- ( uv_spt_init.subid LIKE :arg_subid ) AND
- ( uv_spt_init.sptid = :arg_sptid ) ;
- IF sqlca.SQLCode <> 0 THEN
- init_spt_debit = 0
- init_spt_credit = 0
- END IF
- IF IsNull(cur_spt_debit) THEN cur_spt_debit = 0
- IF IsNull(init_spt_debit) THEN init_spt_debit = 0
- IF IsNull(cur_spt_credit) THEN cur_spt_credit = 0
- IF IsNull(init_spt_credit) THEN init_spt_credit = 0
- IF arg_dcflag = 1 THEN
- rst_spt_amt = (cur_spt_debit + init_spt_debit) - (cur_spt_credit - init_spt_credit)
- ELSE
- rst_spt_amt = (cur_spt_credit - init_spt_credit) - (cur_spt_debit + init_spt_debit)
- END IF
- RETURN rst_spt_amt
- end function
|