易表在线答疑技术与交流用户社区 → [求助]新手求教统计库存的问题


  共有19714人关注过本帖树形打印复制链接

主题:[求助]新手求教统计库存的问题

帅哥哟,离线,有人找我吗?
yrjc5
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:9 积分:0 威望:0 精华:0 注册:2006/8/21 22:35:00
[求助]新手求教统计库存的问题  发帖心情 Post By:2006/8/23 22:23:00 [只看该作者]

我在统计库存时速度很慢 请文有更快更好的方法吗?我是按众恒进销存做的

 回到顶部
帅哥哟,离线,有人找我吗?
喜爱易表
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:天使 帖子:178 积分:0 威望:0 精华:0 注册:2006/8/11 11:09:00
  发帖心情 Post By:2006/8/23 22:25:00 [只看该作者]

速度快慢,跟表中公式的多少,公式设置的复杂与否,表中数据的量大小有直接的关系,可以先自查一下,看看这几方面有没有可以优化的地方。

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2006/8/23 22:28:00 [只看该作者]

众恒进销存是n年前做的,当时的函数没有现在丰富,可以利用现有的函数优化公式。

 回到顶部
帅哥哟,离线,有人找我吗?
yrjc5
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:9 积分:0 威望:0 精华:0 注册:2006/8/21 22:35:00
  发帖心情 Post By:2006/8/23 22:29:00 [只看该作者]

[这个贴子最后由yrjc5在 2006/08/23 10:55pm 第 1 次编辑]

我的公式如下请指教:  delfor(gridname) and selectfill("入库明细","商品代码","商品代码") and selectfill("出库明细","商品代码","商品代码",2) and DelReptRows("进销存","商品代码") And SetColFormula(GridName,"退_数量","") And SetColFormula(GridName,"退_金额","") And SetColFormula(GridName,"次品数量_已理赔","") And SetColFormula(GridName,"次品数量_现存","") And SetColFormula(GridName,"商品类别","[商品代码管理!商品类别]") AndSetColFormula(GridName,"商品名称","[商品代码管理!商品名称]") And SetColFormula(GridName,"花纹规格","[商品代码管理!花纹规格]") And SetColFormula(GridName,"商品规格","[商品代码管理!商品规格]") And SetColFormula(GridName,"存_数量","SumFor(""入库明细"",""入库数量"",""商品代码"" ,""="" ,[商品代码]) - SumFor(""出库明细"",""出库数量"",""商品代码"" ,""="" ,[商品代码],""出库用途"", ""<>"" ,""质量冲红"",""出库用途"", ""<>"" ,""质量商品出库"")")and SetVariable("%表位置数%",1)And SetLabel("表@","") And SetLabel("标题@","正在统计"+GridName+"表,请稍候…")ANDSetVariable("%开始行数%",1) And SetVariable("%字符数%",1)  And Loop("[%字符数%] <= 20 And [%表位置数%]<Grids+10","if(Int(Countfor(GridName)/ 20) <= 1,SetVariable(""%结束行数%"",2), SetVariable(""%结束行数%"",Int(Countfor (GridName )/20)+1))And RecalcRow(GridName,[%开始行数%],[%开始行数%]+[%结束行数%]) And SetVariable(""%百分%"", Int([%字符数%] * 100 / 20) )And SetLabel(""表%"",TEXT([%百分%])+""%"") And SetLabel(""表@"",Rept(""■"",[%字符数%])) And  SetVariable(""%开始行数%"",[%开始行数%]+[%结束行数%]) And SetVariable(""%字符数%"",[%字符数%]+1) ") And IF([%表位置数%]>=Grids+10,SetLabel("标题@","         当前计算已停止!"), SetLabel("标题@","统计"+GridName+"完毕!"))  AndSetVariable("%表位置数%",-1) and delfor(gridname,"商品代码","=","") And DelFor("进销存","商品类别", "=" ,"") And SortCol("进销存","商品名称",2) And SortCol("进销存","商品类别",2) And subtotal("商品名称","进_数量,销_金额,销_数量,存_数量","2,2,2,2",0) and msgbox("计算完成!",0)

 回到顶部
帅哥哟,离线,有人找我吗?
易表小虫
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:213 积分:200 威望:0 精华:0 注册:2006/8/14 0:23:00
  发帖心情 Post By:2006/8/23 23:01:00 [只看该作者]

呵呵,这么复杂的公式速度怎么快得了,你可以做几个按钮把统计功能分解开来,Loop句也建议去掉

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2006/8/23 23:08:00 [只看该作者]

公式可优化的可能性不是太大,清除数据可以用ClearGrid,数据量大时比delfor快n倍。
问题最大处是在RecalcRow,用loop重算指定行是相当耗时的,没看到文件不知有无优化的可能。

 回到顶部
帅哥哟,离线,有人找我吗?
yrjc5
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:9 积分:0 威望:0 精华:0 注册:2006/8/21 22:35:00
  发帖心情 Post By:2006/8/23 23:23:00 [只看该作者]

因为运算时间长所以加上了走式条形式,不让别人以为死机了。去掉RecalcRow,loop后有别的办法吗?

 回到顶部
帅哥哟,离线,有人找我吗?
易表小虫
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:213 积分:200 威望:0 精华:0 注册:2006/8/14 0:23:00
  发帖心情 Post By:2006/8/23 23:29:00 [只看该作者]

在进销存中,库存通常是即时计算的(在出库数量列中使用操作公式),就是说,现库存在系统中有现成的数据,只要调用就行了,如果是这样,那统计速度是不用耗时的

 回到顶部
帅哥哟,离线,有人找我吗?
yrjc5
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:9 积分:0 威望:0 精华:0 注册:2006/8/21 22:35:00
  发帖心情 Post By:2006/8/23 23:36:00 [只看该作者]

谢谢8楼的兄弟。可我要所以的商品的库存出个库存表怎么办?

 回到顶部
帅哥哟,离线,有人找我吗?
家明
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:181 积分:0 威望:0 精华:0 注册:2006/8/21 1:30:00
  发帖心情 Post By:2006/8/23 23:42:00 [只看该作者]

眼睛都看花了,虽然是易表,我想书写语句还是按标准的高级语言来写法来比较好。
分行  分层 语句递推的格式:
比如 a=1 b=1
    c=a+b
  这样好看易懂些。

 回到顶部
总数 11 1 2 下一页