and 科目代码 = @dm select @ye = isnull(@ye) update 本期明细帐簿 set 余额=case when @fx=借方 then @ye + @jf @df else @ye + @df @jf end 余额标记=是 where 内部编号=@bh fetch next from mycursor into @bh@dm@jf@df@fx@bj@kjqj end close mycursor deallocate mycursor 更改状态 update 凭证表 set 过帐状态 = 已过 放入历史 insert into 凭证表历史 select * from 凭证表 insert into 分录表历史 select * from 分录表 清除已过帐数据注意应放到程序中清除因为要统计凭证张数/分录张数和金额 统计后删除 delete from 分录表 delete from 凭证表 commit GO create proc sf_期末结帐 as begin tran 先将没有过帐的凭证过帐 exec sf_凭证过帐 declare @kjqj int 当前会计期间 select @kjqj = 会计期间 from 本期汇总帐簿 计算科目余额表可以统计资产负债表/损溢表等 update 科目余额表 set 本期借方发生额 = b本期借方合计本期贷方发生额 = b本期贷方合计 会计期间 = b会计期间 余额方向 = b余额方向 from 科目余额表 as a 本期汇总帐簿 as b where a科目代码 = b科目代码 and a会计期间=b会计期间 update 科目余额表 set 本年借方累计发生额 = 本年借方累计发生额 + 本期借方发生额 本年贷方累计发生额 = 本年贷方累计发生额 + 本期贷方发生额 本期借方余额 = 期初借方余额 + 本期借方发生额 本期贷方余额 = 期初贷方余额 + 本期贷方发生额 where 会计期间 = @kjqj 更新会计期间 update 系统参数表 set 取值 = 取值 + where 参数名称=当前会计期间 将本期汇总帐簿和明细帐簿倒入历史实例程序不演示
清除汇总帐簿和明细帐簿进入新的会计期间 update 本期汇总帐簿 set 会计期间 = 会计期间 + 期初余额=余额 本期借方合计 = 本期贷方合计 = 余额 = delete from 本期明细帐簿 新会计期间的科目余额表 insert into 科目余额表(科目代码 期初借方余额 期初贷方余额 本期借方发生额 本期贷方发生额 本年借方累计发生额 本年贷方累计发生额 本期借方余额 本期贷方余额 余额方向会计期间) select 科目代码 本期借方余额 本期贷方余额 本期借方余额 本期贷方余额 余额方向会计期间+ from 科目余额表 where 会计期间 = @kjqj commit GO create proc sf_计算资产负债表 @kjqj int as begin tran 计算资产负债表这里提供计算的方法仅供演示 没有列出的明细项目都归到其他资产和其他负债里 注意这里按照科目代码统计主要说明资产负债表的含意和计算方法 [] [] [] |