以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  关于重算  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=2298)

--  作者:lijunup
--  发布时间:2011/6/18 16:04:00
--  关于重算
斑竹,可不可以实现重算指定列的选定行啊
--  作者:wjq1072
--  发布时间:2011/6/18 16:12:00
--  
看看帮助文件哈!
RecalcCol()
重算指定表中的指定列

语法:
RecalcCol(Grid, Col,ColEnd,Option)
Grid    可选参数,指定表,可以用表名表示,也可以用位置表示。
Col     指定列,可以用列名称表示,也可以用位置表示。
ColEnd  可选参数,如果要同时计算多列,可用该参数指定结束列。
Option  可选参数,如果设为1,将忽略操作公式,仅仅重算刷新公式。

例如:
RecalcCol("金额")
重算当前表中的金额列

RecalcCol("订单明细","金额")
重算订单明细表中的金额列

RecalcCol("订单明细","金额","金额",1)
重算订单明细表中的金额列,忽略操作公式。

RecalcCol(Gridname,2,6)
重算当前表的第二列到第六列


--  作者:lijunup
--  发布时间:2011/6/18 16:51:00
--  
大大,我是问,那啥,指定列的选定行,即某一列中的部分行。RecalcCol()是指定到一列啊,那就是整个列都重算啊。区别在于部分与整体。
   吃午饭去了,斑竹大大等你的回复啊

--  作者:wjq1072
--  发布时间:2011/6/18 22:11:00
--  
RecalcColFor()

重算指定表指定列的刷新公式,可以设置重算条件。
RecalcColFor(Grid,Col,CompareCol,CompareMode,CompareValue,......)
Grid         指定表,可以用表名表示,也可以用位置表示。
Col          指定列,可以用列名称表示,也可以用位置表示。
CompareCol   进行比较的列,可以用列名称表示,也可以用位置表示。
CompareMode  比较方式,包括=,>,<,>=,<=,<>,Like,Instr共8种比较方式。
CompareValue 比较值

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

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


EvalFor()

对指定的表指定的列用指定的表达式重算,可以设置重算条件。

语法:
EvalFor(Grid,Col,Formula,CompareCol,CompareMode,CompareValue,......,StartRow,EndRow,Option)

Grid         指定表,可以用表名表示,也可以用位置表示。
Col          指定列,可以用列名称表示,也可以用位置表示。
Formula      重算公式
CompareCol   进行比较的列,可以用列名称表示,也可以用位置表示。
CompareMode  比较方式,包括=、>、<、>=、<=、<>、Like、Instr共8种比较方式。
CompareValue 比较值
StartRow     可选参数,指定开始计算的行。
EndRow       可选参数,指定结束计算的行。
Option       可选参数,如果设为1,则不统计隐藏行

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

例如:
EvalFor("订单表","金额","[数量] * [单价] * 0.9","产品","= ","PD01")
重算订单表中的PD01产品的金额,提供0.1的折扣。


-=-=-=- 以下内容由 wjq10722011年06月18日 10:14pm 时添加 -=-=-=-
http://www.datasoft.com.cn/cgi-bin/topic.cgi?forum=9&topic=19994&show=0