以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何计算勾选行的最大值?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=118689)

--  作者:happyft
--  发布时间:2018/5/8 22:31:00
--  如何计算勾选行的最大值?

想计算当前表中勾选行的最个字段的最大值,类似下面这样

Dim dt1 As date = Tables("订单").Compute("Max(修改日期)","Tables("订单").GetCheckedRows()")


后面那个条件除了拼接每行中的某个字段来判断外,表中勾选的行有没有直接写在上面条件中的办法?


谢谢!


--  作者:有点蓝
--  发布时间:2018/5/8 22:49:00
--  
只能循环一个个比较
--  作者:有点甜
--  发布时间:2018/5/9 9:24:00
--  

方法一:循环每一行,比较;

 

方法二:加一个临时列,勾选左边的时候,同步勾选临时列,这样就可以用临时列作为条件使用。


--  作者:HappyFt
--  发布时间:2018/5/9 11:38:00
--  
Dim dt1 As date = Tables("订单").Compute("Max(修改日期)")
意思是如果后面不带条件就会默认按当前订单表中的所有数据计算,
勾选行有没有一个直接的属性比如是"XX = true",(就像老师说的加一临时列一样,因为通用每个表都加一个临时列不太好)

现在是用下面的方法
Dim ids As String
For Each r In Tables(winName & "_主表").GetCheckedRows()
    ids = ids & "," &  r("_Identify")  \'集合列
Next
Dim dt1 As date = Tables("订单").Compute("Max(修改日期)","[_Identify] In(" & ids.trim(",") & ")")
还有没有其他简单的方法?

--  作者:有点甜
--  发布时间:2018/5/9 12:11:00
--  

没办法的,必须像你四楼那样处理。