Access911.net   |   a9BBS   |   OTaA System  
  搜索文章:  
Access911欢迎您光临  
   主页      上传      繁體版       论坛     
设为首页  |  加入收藏   
  
你现在的位置:文章索引 -> 文章分类 -> 其他  
 首页|  近日更新|  下载  |  文章索引  |  搜索|  术语|  承接工程|  
 
系统正在加载内容,请耐心等待...
 
 查询
 窗体
 报表
 
 
 VBA
 函数
 ADO/DAO/ADO.NET
 API
 ADP
 安全
 发布
 OA
 ASP/ASP.NET
 其他语言
 控件
 DELPHI
 C#/.Net
 本站
 其他
 小例程
 常用软件
 参考文档
 业主作品
 网友大作
 
 
友情链接
 access911.net
 
访问人次
 1702074
 
站长 E-Mail
 net911@sina.com
 access911@gmail.com
 
RSS 订阅

显示附加信息 >>>

关于月结存年结存功能的设计原理

作者:cg1  摘自:access911.net  :cg1  更新日期:2005-9-10  浏览人次:

 

关于月结存年结存功能的设计原理

首先,基础的会计假设就是持续经营,我个人认为没必要每个月做月结存。按以下库存变化的实例来说,先看结构:


存续表        (注意,结存数量这个字段并不一定要存在)
-----------------------------
     日期     进出数量 结存数量                    备注
  2004-12-1      10       10
  2004-12-2      -5       5
  2004-12-3       6       11
  2004-12-31     -2       9
                               此处空一行,表示月结存时间,月结存的数量为9,实际表中不存在这样的行
   2005-1-1      -1       8
  2005-1-31      -2       6
                               此处空一行,表示月结存时间,月结存的数量为6,实际表中不存在这样的行
   2005-2-1       5       11
-----------------------------


结存表
-----------------------------
     日期     结存数量
  2004-12-31      9
  2005-1-31       6
  2005-2-28      11
-----------------------------


在1月中某天查询2005年1月份数据的时候只要
select 日期,0 as 进出数量,结存数量, '期初结存' as 备注 from 结存表 where 日期=#2004-12-31# union all select 日期,进出数量,结存数量,备注 from 存续表

而查询某笔明细的时候直接
select * from 存续表 where 日期=#某日期#

之所以要建立一个结存表,就是为了减少日后的查询量,提高速度。其实,如果不考虑计算机运算性能的情况下,查询 2005年1月份的期初数据时完全可以用代码
select sum(进出数量) from 结存表 where 日期 <#2005-1-1#


来实现,然后再用几个 UNION ALL 语句连接,就可以得到 2005年1月某天的结存数量和明细了。

从上面的数据结构大家就可以看出,其实月结存只是 INSERT INTO 结存表 一个日期和结存数量进去
insert into 结存表 (日期,结存数量) values(#结存日期#,结存日存续表的数量)

注意,上述只是一个简单的结存数量,如果在实际情况中需要生成某个时点的复杂报表,比如资产负债表,其原理也是在某时点统计所有数据,然后按时间存放在“资产负债表”中

当然,实际开发中情况可能复杂得多,但是基本原理和上述情况是一致的。我本人在实际工作中也同样使用上述结构,而且相比要做年结存的软件来说,查上年数据在当前软件界面中就能查询,无需切换,大大方便了用户的使用

本站文章旨在为该问题提供解决思路及关键性代码,并不能完成应该由网友自己完成的所有工作,请网友在仔细看文章并理解思路的基础上举一反三、灵活运用。

access911.net 原创文章,作者本人对文章保留一切权利。
如需转载必须征得作者同意并注明本站链接

 

 
相关文章
     没有手动相关文章
 
评论
     查看或发表更多的评论,请单击这里。
 
 
 
 
 
   
  Access911.net   |   a9BBS   |   OTaA System   |
建站日期:2000年4月2日  |  设计施工:陈格 ( access911 & cg1 )
 Copyright © 2000 - 2003 COMET, 陈格 保留所有权利