易表在线答疑技术与交流用户社区 → 当前表的某列计算用什么函数合适?


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

主题:当前表的某列计算用什么函数合适?

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


加好友 发短信
等级:论坛游侠 帖子:252 积分:44 威望:0 精华:0 注册:2006/8/14 19:51:00
当前表的某列计算用什么函数合适?  发帖心情 Post By:2010/3/27 18:20:00 [只看该作者]

想重新计算当前表的“库存”列,用进货数量减去销售数量。我在窗口中设定按钮,按钮公示如下:
evalfor(gridname,"库存","round(sumfor(""进货明细库"",""进货数量_公斤"",""仓库"",""="",""商品库"",""存盘"",""="",-1)-sumfor(""销售明细库"",""销售数量_公斤"",""仓库"",""="",""商品库""),1)")

可以正常计算。

我的问题:有没有函数或者在以上的基础上,只替换当前行的“库存”列,不是把整个表的“库存”列都计算(替换)?不在“库存”列设定刷新公式!


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:4639 积分:133 威望:0 精华:0 注册:2006/9/23 19:23:00
  发帖心情 Post By:2010/3/27 21:28:00 [只看该作者]

将evalfor里面的计算公式修改后改放在库存列的刷新公式中!

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


加好友 发短信
等级:论坛游侠 帖子:252 积分:44 威望:0 精华:0 注册:2006/8/14 19:51:00
  发帖心情 Post By:2010/3/27 22:22:00 [只看该作者]

不向设置刷新公式!
要是设置刷新公式,入关联表的数据时,计算太慢。

还有其他的方法吗?最好点击按钮时,计算一次,放在当前行的“库存”列!


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


加好友 发短信
等级:版主 帖子:4639 积分:133 威望:0 精华:0 注册:2006/9/23 19:23:00
  发帖心情 Post By:2010/3/28 1:22:00 [只看该作者]

真难理解,直接用刷新公式计算当前行指定列和手工每次点击按钮到底哪一个更方便快捷,楼主三思!

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


加好友 发短信
等级:论坛游侠 帖子:252 积分:44 威望:0 精华:0 注册:2006/8/14 19:51:00
  发帖心情 Post By:2010/3/28 8:17:00 [只看该作者]

关键是在窗口中,录入关联表的数据较多,如果输入一行,就自动计算一次,影响录入速度。所以想在关联表的数据录入完以后,点击计算。

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


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2010/3/28 8:35:00 [只看该作者]

RecalcRow()
重算指定表中的指定行。

RecalcRow(Grid,StartRow,EndRow,Option)
Grid         指定表,可以用表名表示,也可以用位置表示。
StartRow     开始行
EndRow       结束行
Option       可选参数,如果设为1,将忽略操作公式,仅仅重算刷新公式和单元格公式。通常应该将Option参数设为1,以便提高计算速度。

例如:
RecalcRow(GridName,Row,Row,1)
重算当前表的当前行,忽略操作公式

RecalcRow(GridName,1,Rows)

重算当前表的所有行,包括操作公式。

RecalcRow("订单明细",[订单明细!Row],[订单明细!Row],1)
重算订单明细表的当前行,忽略操作公式。


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


加好友 发短信
等级:论坛游侠 帖子:252 积分:44 威望:0 精华:0 注册:2006/8/14 19:51:00
  发帖心情 Post By:2010/3/28 10:21:00 [只看该作者]

上面的这个是把整行都计算了!

是不是Replacefor()函数可以使用?如果指定计算当前行,命令怎样写!?

替换指定表的某一列,可以指定替换条件
Replacefor(Grid,Col,NewValue,CompareCol,CompareMode,CompareValue,......)
Grid         替换该表中的某一列,可以用表名表示,也可以用位置表示。
Col          替换该列,可以用列名称表示,也可以用位置表示。
NewValue     替换值
CompareCol   进行比较的列,可以用列名称表示,也可以用位置表示。
CompareMode 比较方式,包括=、>、<、>=、<=、<>、Like、Instr共8种比较方式。
CompareValue 比较值

例如:
Replacefor("订单明细","折扣",0.08, "产品","=","PD01")
将订单明细表中产品为PD01的订单的折扣替换为0.08


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


加好友 发短信
等级:论坛游侠 帖子:252 积分:44 威望:0 精华:0 注册:2006/8/14 19:51:00
  发帖心情 Post By:2010/3/28 10:31:00 [只看该作者]

ReplaceFor("销售库",sumfor("进货明细库","进货数量_公斤","仓库","=","商品库","存盘","=",-1)-sumfor("销售明细库","销售数量_公斤","仓库","=","商品库"),"单据号","=",[单据号])

我用上述公示设置成按钮公示,每行的单据号都是不同的。想用单据号来限制只计算当前行。

没有实现。不会计算。请求给个解释!先谢谢!

-=-=-=- 以下内容由 sqhht2010年03月28日 10:38am 时添加 -=-=-=-
ReplaceFor("销售库","库存",round(sumfor("进货明细库","进货数量_公斤","仓库","=","商品库","存盘","=",-1)-sumfor("销售明细库","销售数量_公斤","仓库","=","商品库"),1),"单据号","=",[单据号])

公式是这样的!


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


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2010/3/28 10:38:00 [只看该作者]

RecalcCell()

重算指定表指定行的指定列

语法
RecalcCell(Grid,Row,Col,Col...,Option)
Grid    指定表,可以用表名表示,也可以用位置表示。
Row     指定行
Col     指定列,可以用列名称表示,也可以用位置表示,可以设置任意多列。
Option  可选参数,设为-1忽略操作公式,仅仅重算刷新公式和单元格公式。
       通常应该将Option参数设为-1,以便提高计算速度。

例如
RecalcCell(Gridname,Row,"结余",-1)
重算当前表的当前行的结余列,忽略操作公式。

RecalcCell("订单",[订单!row],"数量","金额")
重算订单表当前行的数量和金额两列,包括操作公式。


注意,RecalcCell是唯一用-1表示Option参数的函数!


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


加好友 发短信
等级:论坛游侠 帖子:252 积分:44 威望:0 精华:0 注册:2006/8/14 19:51:00
  发帖心情 Post By:2010/3/28 10:52:00 [只看该作者]

我的按钮公式为:RecalcCell("销售库",[销售库!row],"库存")

“库存”列的操作公式为:sumfor("进货明细库","进货数量_公斤","仓库","=","商品库","存盘","=",-1)-sumfor("销售明细库","销售数量_公斤","仓库","=","商品库")

但是点击按钮后,不会计算!


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