Foxtable(狐表)用户栏目专家坐堂 → 求教老师---关于日期和统计的问题


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

主题:求教老师---关于日期和统计的问题

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110810 积分:563988 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/4 14:12:00 [显示全部帖子]

最大最小日期查找参考:http://www.foxtable.com/webhelp/scr/0393.htm


统计的自动更新参考:http://www.foxtable.com/webhelp/scr/1472.htm

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110810 积分:563988 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/4 14:58:00 [显示全部帖子]

Expression: 要计算的表达式,使用聚合函数进行统计。

例如取最大值

Dim maxdate As Date = DataTables("订单").Compute("Max([日期])", "雇员 = 'EP01' And 数量 > 500")

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110810 积分:563988 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/5 8:59:00 [显示全部帖子]

If e.DataCol.Name = "物料号码" Then
    If e.DataRow.IsNull("物料号码") Then
        e.DataRow("最早日期") = Nothing
        e.DataRow("最晚日期") = Nothing
    Else
        e.DataRow("最早日期") = DataTables("AA").Compute("min(日期)","物料号码='" & e.DataRow("物料号码") & "'")
        e.DataRow("最晚日期") = DataTables("AA").Compute("max(日期)","物料号码='" & e.DataRow("物料号码") & "'")
    End If
End If


最后重置BB表号码列

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110810 积分:563988 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/5 9:50:00 [显示全部帖子]

优化一下

Select Case e.DataCol.Name
    Case "物料号码"
        If e.DataRow.IsNull("物料号码") Then '判断物料码是否为空
            e.DataRow("最早日期") = Nothing '最早日期为空
            e.DataRow("最晚日期") = Nothing '最晚日期为空时不做运算.
        Else '如果上述列不为空
            e.DataRow("最早日期") = DataTables("AA").Compute("min(日期)","物料号码='" & e.DataRow("物料号码") & "'") 列:最早日期对于AA表里查找日期最早的."物料号码='" & e.DataRow("物料号码)是指所有的物料号码.
            e.DataRow("最晚日期") = DataTables("AA").Compute("max(日期)","物料号码='" & e.DataRow("物料号码") & "'")
            
        End If
    Case "最早日期","最晚日期"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("最早日期") OrElse dr.IsNull("最晚日期") Then
            dr("天数") = Nothing
        Else
            Dim tp As TimeSpan = dr("最晚日期") - dr("最早日期")
            dr("天数") = tp.TotalDays
        End If
End Select

 回到顶部