以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  表间切换速度慢  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=19836)

--  作者:ZHXUZB
--  发布时间:2010/8/22 14:20:00
--  表间切换速度慢
一个订单表和一个生产记录表,每条记录一对一关联.现在记录条数在1500条左右.每次切换两个表需要20多秒等待,等着急的很.生产表有调用订单表的数据计算.
 不知道什么问题的?

-=-=-=- 以下内容由 ZHXUZB2010年08月22日 02:35pm 时添加 -=-=-=-
表间切换时,怎样不用重算整张表?
--  作者:lyq
--  发布时间:2010/8/22 17:08:00
--  
用foxtable开发,不存在这个问题
--  作者:smileboy
--  发布时间:2010/8/23 12:54:00
--  
RecalcColFor
重算指定表指定列的刷新公式,可以设置重算条件。

语法:
RecalcColFor(Grid,Col,CompareCol,CompareMode,CompareValue,......)

Grid         指定表,可以用表名表示,也可以用位置表示。
Col          指定列,可以用列名称表示,也可以用位置表示。
CompareCol   进行比较的列,可以用列名称表示,也可以用位置表示。
CompareMode  比较方式,包括=、>、<、>=、<=、<>、Like、Instr共8种比较方式。
CompareValue 比较值

可以设置多个比较条件,从第三个参数开始,每三个参数组成一个比较条件。如果比较方式选择的是Instr,则进行包含查询;如果比较方式选择"Like",则可以在比较值中使用通配符进行类似查询。

例如:
RecalcColFor("订单表","金额","产品","= ","PD01")
重算订单表中的PD01产品的金额。

RecalcColFor("订单表","金额","产品","= ",[产品])
重算订单表中产品等于当前表当前行产品的金额。

例如在一个订单管理系统中,产品表和订单表通过产品编号建立关联,订单表中的产品名称列的刷新公式为:
[产品!产品名称]
这样我们在订单表中只需输入产品编号,即可自动输入产品名称。现在的问题是如果在产品表中修改了某个产品编号对应的产品名称,订单表中的产品名称并不会自动更新为新的产品名称,为解决这个问题,可以将产品表中产品名称列的操作公式设为:
RecalcColFor("订单表","产品名称","产品编号","=",[产品编号])