Foxtable(狐表)用户栏目专家坐堂 → [求助]如何按时间段统计?


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

主题:[求助]如何按时间段统计?

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


加好友 发短信
等级:童狐 帖子:274 积分:2303 威望:0 精华:0 注册:2008/9/12 16:46:00
[求助]如何按时间段统计?  发帖心情 Post By:2014/5/18 1:11:00 [只看该作者]

 

DataTables("动物产地检疫工作情况日汇总表").DataRows.Clear()
Dim vals As List(Of String) = DataTables("动物产地检疫工作记录").GetValues("申报单编号","申报单编号 Is Not Null And 基本情况_检疫时间 >= '" & Date.Today & " 00:00:00' and 基本情况_检疫时间  < '" & Date.Today & " 23:59:59'")
For Each val As String In vals
    Dim ndr As DataRow = DataTables("动物产地检疫工作情况日汇总表").AddNew()
    ndr("申报单编号") = val
    Dim cdjl As DataRow = DataTables("动物产地检疫工作记录").Find("申报单编号 = '"& val & "' and 基本情况_检疫时间 >= '" & Date.Today & " 00:00:00' and 基本情况_检疫时间  < '" & Date.Today & " 23:59:59'")
    If cdjl IsNot Nothing Then
        ndr("货主") = cdjl("基本情况_货主姓名")
        ndr("动物种类") = cdjl("基本情况_动物种类")
        ndr("检疫数量") = cdjl("基本情况_数量")
        ndr("检疫地点") = cdjl("基本情况_检疫地点")
        ndr("合格数") = cdjl("检疫结果处理_合格数")
        ndr("《动物检疫合格证明》编号") = cdjl("检疫结果处理_出具动物检疫合格证明编号")
        ndr("不合格数") = cdjl("检疫结果处理_检疫不合格_法定检疫对象_数量")+cdjl("检疫结果处理_检疫不合格_其它_数量")
        ndr("《检疫处理通知单》编号") = cdjl("检疫结果处理_检疫不合格_出具检疫处理通知单编号")
        ndr("目的地") = cdjl("基本情况_到达地点")
        ndr("运载工具牌号") = cdjl("基本情况_运载工具牌号")
        ndr("官方兽医姓名") = cdjl("官方兽医姓名")
        ndr("备注") = cdjl("备注")
    End If
Next
Dim hjdr As DataRow = DataTables("动物产地检疫工作情况日汇总表").AddNew
hjdr("货主") = "合计:" & DataTables("动物产地检疫工作情况日汇总表").GetValues("货主","货主 Is Not Null And 货主 <> '合计'").Count
hjdr("申报单编号") = DataTables("动物产地检疫工作情况日汇总表").GetValues("申报单编号","申报单编号 Is Not Null And 货主 <> '合计'").Count
hjdr("动物种类") = DataTables("动物产地检疫工作情况日汇总表").GetValues("动物种类","动物种类 Is Not Null And 货主 <> '合计'").Count
hjdr("检疫数量") = DataTables("动物产地检疫工作情况日汇总表").Compute("Sum(检疫数量)","货主 <> '合计'")
hjdr("检疫地点") = DataTables("动物产地检疫工作情况日汇总表").GetValues("检疫地点","检疫地点 Is Not Null And 货主 <> '合计'").Count
hjdr("合格数") = DataTables("动物产地检疫工作情况日汇总表").Compute("Sum(合格数)","货主 <> '合计'")
hjdr("《动物检疫合格证明》编号") = DataTables("动物产地检疫工作情况日汇总表").GetValues("《动物检疫合格证明》编号","《动物检疫合格证明》编号 Is Not Null And 货主 <> '合计'").Count
hjdr("不合格数") = DataTables("动物产地检疫工作情况日汇总表").Compute("Sum(不合格数)","货主 <> '合计'")
hjdr("《检疫处理通知单》编号") = DataTables("动物产地检疫工作情况日汇总表").GetValues("《检疫处理通知单》编号","《检疫处理通知单》编号 Is Not Null And 货主 <> '合计'").Count
hjdr("目的地") = DataTables("动物产地检疫工作情况日汇总表").GetValues("目的地","目的地 Is Not Null And 货主 <> '合计'").Count
hjdr("运载工具牌号") = DataTables("动物产地检疫工作情况日汇总表").GetValues("运载工具牌号","运载工具牌号 Is Not Null And 货主 <> '合计'").Count
hjdr("官方兽医姓名") = DataTables("动物产地检疫工作情况日汇总表").GetValues("官方兽医姓名","官方兽医姓名 Is Not Null And 货主 <> '合计'").Count
MainTable = Tables("动物产地检疫工作情况日汇总表")

 

这个是统计当天的数据,红色部分代码如何改写可实现按指定的时间段统计?


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


加好友 发短信
等级:版主 帖子:1693 积分:12117 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2014/5/18 8:52:00 [只看该作者]

增加1个  DateTimePicker 名为 开始日期

增加1个  DateTimePicker 名为 结束日期

 

时间格式设置为 Date

 

Dim vals As List(Of String) = DataTables("动物产地检疫工作记录").GetValues("申报单编号","申报单编号 Is Not Null And 基本情况_检疫时间 >= '" & 开始日期.value & " 00:00:00' and 基本情况_检疫时间  < '" & 结束日期.value  & " 23:59:59'")
For Each val As String In vals
    Dim ndr As DataRow = DataTables("动物产地检疫工作情况日汇总表").AddNew()
    ndr("申报单编号") = val
    Dim cdjl As DataRow = DataTables("动物产地检疫工作记录").Find("申报单编号 = '"& val & "' and 基本情况_检疫时间 >= '" & 开始日期.value  & " 00:00:00' and 基本情况_检疫时间  < '" &  结束日期.value  & " 23:59:59'")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/18 9:06:00 [只看该作者]

  没必要搞得太复杂

 

Dim vals As List(Of String) = DataTables("动物产地检疫工作记录").GetValues("申报单编号","申报单编号 Is Not Null And 基本情况_检疫时间 >= '" & 开始日期.value & "' and 基本情况_检疫时间  < '" & 结束日期.value.AddDays(1)  & "'")
For Each val As String In vals
    Dim ndr As DataRow = DataTables("动物产地检疫工作情况日汇总表").AddNew()
    ndr("申报单编号") = val
    Dim cdjl As DataRow = DataTables("动物产地检疫工作记录").Find("申报单编号 = '"& val & "' and 基本情况_检疫时间 >= '" & 开始日期.value  & "' and 基本情况_检疫时间  < '" &  结束日期.value.AddDays(1)  & "'")


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


加好友 发短信
等级:童狐 帖子:274 积分:2303 威望:0 精华:0 注册:2008/9/12 16:46:00
  发帖心情 Post By:2014/5/18 15:22:00 [只看该作者]

谢谢逛逛、有点甜帮助!

还有个问题,想实现当开始日期和结束日期没有选择时,提示选择开始日期或结束日期,加了如下代码:

 

If e.Form.Controls("开始日期").value Is Nothing AndAlso e.Form.Controls("结束日期").value Is Nothing Then
MessageBox.Show("请您一定选择开始日期和结束日期!", "提示")
Else

.....

.....

如果只选择开始日期或结束日期,另一个不选,运行时显示如下错误,哪里有问题?:

 

 

 

 


图片点击可在新窗口打开查看此主题相关图片如下:t3.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2014-5-18 15:22:43编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/18 15:30:00 [只看该作者]

判断一下

 

 

Dim filter As String = ""
If 开始日期.value IsNot Nothing Then
    filter = " And 基本情况_检疫时间 >= '" & 开始日期.value & "'"
End If
If 结束日期.value IsNot Nothing Then
    filter = " and 基本情况_检疫时间  < '" & 结束日期.value.AddDays(1)  & "'"
End If

 

Dim vals As List(Of String) = DataTables("动物产地检疫工作记录").GetValues("申报单编号","申报单编号 Is Not Null " & filter)
For Each val As String In vals
    Dim ndr As DataRow = DataTables("动物产地检疫工作情况日汇总表").AddNew()
    ndr("申报单编号") = val
    Dim cdjl As DataRow = DataTables("动物产地检疫工作记录").Find("申报单编号 = '"& val & "' " & filter)


 回到顶部