以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  请版主帮忙:库存的问题. (无内容)  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=4118)

--  作者:大木柱天
--  发布时间:2006/9/28 20:42:00
--  请版主帮忙:库存的问题. (无内容)


-=-=-=- 以下内容由 大木柱天2006年09月28日 08:44pm 时添加 -=-=-=-
下层

-=-=-=- 以下内容由 大木柱天2006年09月28日 08:51pm 时添加 -=-=-=-
不好意思.
不懂版主真是神速
--  作者:ylm
--  发布时间:2006/9/28 20:44:00
--  
??? 图片点击可在新窗口打开查看  图片点击可在新窗口打开查看  图片点击可在新窗口打开查看
--  作者:大木柱天
--  发布时间:2006/9/28 20:50:00
--  
egd文件下载
请版主指点:1.为什么点入库表-新增按钮时向上增加行?
          2.入库表现在有数据为什么在库存汇总表中不能即时算?
--  作者:ylm
--  发布时间:2006/9/28 21:01:00
--  
1,是向下新增嘛.
2,参考下面方法:

提高统计速度
尽量避免重算全表

假定我们有一个仓管系统,该系统由三个表组成,分别为进仓、出仓、结存。
显然,对于每一种产品,总的进仓数量减去总的出仓数量,就是结存数量,所以“结存”表中数量列的刷新公式为:
Sumfor("进仓", "数量", "产品", "=", [产品]) - Sumfor("出仓","数量","产品","=",[产品])

以后我们需要得到最新结存数据的时候,只需重算“结存”表即可。但是如果有5000种产品,进出仓记录有上10万条,那么重算整个结存表可能需要数十分钟才能完成,很少有人能够忍受这种漫长的等待。

下面我们来改进一下这个系统:
1、在“进仓”表和“结存”表之间、“出仓”表和“结存”表之间通过“产品”列建立关联。
2、将“进仓”表数量列的操作公式设为:
if([结存!RelationRow]>0, RecalcRow("结存",[结存!RelationRow]),True)
3、将“出仓”表数量列的操作公式设为:
if([结存!RelationRow]>0, RecalcRow("结存",[结存!RelationRow]),True)

上述公式的含义是,一旦有进出仓,就立即重算“结存”表中对应的行。这样我们在某产品有进出仓的时候,即时计算出了该产品的结存,整个结存表的数据随时都是最新的,无须在需要最新结存数据的时候去花费几十分钟重算整个结存表,效率大为提高。


--  作者:大木柱天
--  发布时间:2006/9/28 21:52:00
--  
多谢版主:1.阵发性问题,不定什么时间进行了什么操作就向上增加行,其中有一次提示:堆栈空间溢出!是怎么回事啊版主?
      2.在点菜单-库存管理-年度结帐后,再增加一条入库内容可在库存汇总中就不能即时算(我就是按上面的做法写的公式,还请版主费心啊!)
--  作者:czy
--  发布时间:2006/9/28 22:06:00
--  
1、库存汇总表,上期结转_单价列的操作公式会导公式死循环而出现错误。
2、库存汇总表,本期入库_金额列的操作公式错误,请参考该函数的语法解释。
3、库存汇总表,本期出库_金额列的操作公式错误,请参考该函数的语法解释。

--  作者:大木柱天
--  发布时间:2006/9/28 22:50:00
--  
太谢谢总版主了,郁闷了好几天,今天好明天坏的,可是让总版主找出病因了.
你老就救人救到底给我改改吧(真是百年不遇的良师啊!!!!!!)
--  作者:czy
--  发布时间:2006/9/28 23:18:00
--  
上期结转_单价列的操作公式似乎没有什么作用,可以删除吧?
后两个问题把公式中的方括号改成冒号就可以了。
--  作者:大木柱天
--  发布时间:2006/9/29 0:06:00
--  
还是不能即时算库存汇总
后两个公式中没有方括号啊?
--  作者:czy
--  发布时间:2006/9/29 0:21:00
--  
可以啊,你试试在入库表改一下入库数量或单价。
egd文件下载