f_rst_item_sub_bbalc.srf 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. $PBExportHeader$f_rst_item_sub_bbalc.srf
  2. global type f_rst_item_sub_bbalc from function_object
  3. end type
  4. forward prototypes
  5. global function decimal f_rst_item_sub_bbalc (long arg_itemid, string arg_subid, long arg_cmonth, integer arg_postflag)
  6. end prototypes
  7. global function decimal f_rst_item_sub_bbalc (long arg_itemid, string arg_subid, long arg_cmonth, integer arg_postflag);//项目科目期初数
  8. //1.计算初始化数
  9. //2.计算期间发生数
  10. Decimal rst_bbalc,init_bbalc,ins_bbalc
  11. //1.
  12. SELECT uv_item_init.balance INTO :init_bbalc FROM uv_item_init
  13. WHERE uv_item_init.accsetid = :sys_accsetid
  14. AND uv_item_init.itemid = :arg_itemid
  15. AND uv_item_init.subid = :arg_subid;
  16. IF sqlca.SQLCode <> 0 OR IsNull(init_bbalc) THEN
  17. init_bbalc = 0.00
  18. END IF
  19. //2.
  20. SELECT sum(uv_dept_bala.debit)-sum(uv_dept_bala.credit) INTO :ins_bbalc FROM uv_dept_bala
  21. WHERE uv_dept_bala.accsetid = :sys_accsetid
  22. AND uv_dept_bala.itemid = :arg_itemid
  23. AND uv_dept_bala.subid = :arg_subid
  24. AND uv_dept_bala.cmonth < :arg_cmonth
  25. And ( uv_dept_bala.postflag = :arg_postflag OR :arg_postflag = -1) ;
  26. IF sqlca.SQLCode <> 0 OR IsNull(ins_bbalc) THEN
  27. ins_bbalc = 0.00
  28. END IF
  29. rst_bbalc = init_bbalc + ins_bbalc
  30. RETURN rst_bbalc
  31. end function