进销存月结
进销存月结
为什么需要月结?
当业务系统中数据越来越大的时候,报表如果还是采用每次都在业务单据表中临时累加,计算,再呈现的方式就会比较笨拙,影响到客户体验。如果查询的机构范围,时间范围较大时,如果每次都耗时过长的话基本上是无法忍受。
采用不断汇总存储的方式可以解决或环节上面的问题,比如 月度报表 由 明细业务数据汇总而来,年度报表由月度数据而来。
先简单说明下最近开发 月度报表的流程。
1、获得业务需求,根据业务需求设计 存储模型 和对象模型。
最近处理的是几张 月内销售趋势的报表,这种交叉表一般不能直接绑定到对象列表中,这其中需要一个转换,要呈现交叉表 DataTable 绑定要页面上是上上选,
但是对象列表和数据库结构最为相似,更加便于开发。呈现和存储是不同的模型。
2、月表中每张单据存储的业务数据单元的设置,比如在连锁门店中,每个门店理应形成一个月表单据,而不是整个公司一个月形成一份单据。
3、月表形成 和展示
第一次查看某个月表时,月表肯定要临时生成,并存储在数据库中的,然后再呈现出来的。以后就直接提取后呈现就好。
怎样设计月结?
1、进阶级进销存的月结功能
该软件设计的较为简单些,主要应对业务量不是太大的企业,单据表没有当前表 和 历史表的概念,月结操作主要实现如下功能
1.1、 汇总单据信息,形成月报表,并且进行存储,便于日后查询。这样查询以往某个月的统计数据时就没有必要逐一累历史单据,效率会比较高,特别对于一些跨多月,甚至年的报表来说。
1.2、结转库存数据
在查询库存信息时采用的是 实时库存数据 = 库存期初数据 + 当月单据数据 的方式,所以在月结处理上,将本月的单据数据累加到 库存期初数据上,形成下月的期初数据。
1.3 更改当前核算月
这个比较容易理解了,简单的标识下就好了。
2、改进版进销存的月结功能
由于考虑到单据的数量级比较大,每一套单据表都增加了历史表,当月的单据存储在当前表中,月结时将当前表中的数据全部转移到历史表中,保持当前操作最活跃的库表数据较少,效率较高。
2.1 汇总单据信息,形成、存储月报表
2.2 结转库存数据
A、结转库存数量,
B 、返填金额 , 库存相应操作的单据,耗用、损耗、领用等 尽在内部流转的单据,发生时仅记录数量,没有金额,在月结需要加上金额的。
2.3 更改当前核算月
2.4 将当前表中单据数据 转到历史表中。
3、 更加灵活的进销存月结功能
(检查是否满足月末结转条件,是否有未审核单据等×)
3.1 结转库存数据
A、结转库存数量,
B 、×返填金额 , 库存相应操作的单据,耗用、损耗、领用等 尽在内部流转的单据,发生时仅记录数量,没有金额,在月结需要加上金额的。
3.2 更改当前核算月
3.3 将当前表中单据数据 转到历史表中。
3.4 在查询月报表时临时 更具历史表中的明细记录生成 月报表,进行存储。
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/13586575.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2016-08-30 datasnap使用ipv6