以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]请教GetValues中Filter方法关于日期的表达式  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=131126)

--  作者:tkxffb
--  发布时间:2019/2/18 0:55:00
--  [求助]请教GetValues中Filter方法关于日期的表达式
各位老师好:
想通过下面的代码统计出各个年度内参与帮扶的乡镇数,可是在生成的临时表中,统计出的结果没有分年度列出,而且是总数,也知道用GetValues中Filter方法,但代码不会写,请指教,谢谢

Dim g1 As New GroupTableBuilder("帮扶统计表2", DataTables("困难人员帮扶记录表"))
g1.Groups.AddDef("走访日期", DateGroupEnum.Year, "年度")
g1.Totals.AddDef("姓名", AggregateEnum.Count, "帮扶户数") 
g1.VerticalTotal = True   \'--合计
g1.Build()    \'---生成

DataTables("帮扶统计表2").DataCols.Add("年度内参与帮扶乡镇数",Gettype(Integer))
For Each dr As DataRow In DataTables("帮扶统计表2").DataRows 
  Dim d As Date = new Date(val(dr("年度")),1)   不知道这一行写的对不对
  dr("年度内参与帮扶乡镇数") = DataTables("困难人员帮扶记录表").GetValues("所在乡镇,这里的Filter代码不会写").Count
Next

这是项目中两个表的截图,一个是困难人员帮扶记录表,一个是生成的临时表帮扶统计表2

图片点击可在新窗口打开查看此主题相关图片如下:360截图20190218004418780.jpg
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:360截图20190218004135533.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2019/2/18 8:36:48编辑过]

--  作者:有点蓝
--  发布时间:2019/2/18 9:50:00
--  
DataTables("帮扶统计表2").DataCols.Add("年度内参与帮扶乡镇数",Gettype(Integer))
For Each dr As DataRow In DataTables("帮扶统计表2").DataRows 
  Dim d As Date = new Date(val(dr("年度")),1,1)   \'不知道这一行写的对不对
  dr("年度内参与帮扶乡镇数") = DataTables("困难人员帮扶记录表").GetValues("所在乡镇","帮扶日期>=#" & d & "# and 帮扶日期 < #" & d.AddYears(1) & "#").Count
Next

--  作者:tkxffb
--  发布时间:2019/2/18 17:04:00
--  
有点蓝老师好:
运行上段代码之后出现错误提示:年、月和日参数描述无法表示的 DateTime。

--  作者:有点蓝
--  发布时间:2019/2/18 17:48:00
--  
DataTables("帮扶统计表2").DataCols.Add("年度内参与帮扶乡镇数",Gettype(Integer))
For Each dr As DataRow In DataTables("帮扶统计表2").DataRows
    If dr("年度") <> "合计"
        Dim d As Date = new Date(val(dr("年度")),1,1)   \'不知道这一行写的对不对
        dr("年度内参与帮扶乡镇数") = DataTables("困难人员帮扶记录表").GetValues("所在乡镇","帮扶日期>=#" & d & "# and 帮扶日期 < #" & d.AddYears(1) & "#").Count
    End If
Next

--  作者:tkxffb
--  发布时间:2019/2/18 19:41:00
--  
行了,谢谢有点蓝老师
--  作者:tkxffb
--  发布时间:2019/2/24 12:45:00
--  
各位老师,就上面的问题还需要请教
在上面的统计中,想增加一个县市分组,分年度和县市统计出参与帮扶的乡镇数量。于是,我把“困难人员帮扶记录表”增加了“所属县市”列,把代码修改如下,可是提示错误,请指教:

Dim g1 As New GroupTableBuilder("帮扶统计表2", DataTables("困难人员帮扶记录表"))
g1.Groups.AddDef("走访日期", DateGroupEnum.Year, "年度")
g1.Groups.AddDef("所属县市","所属县市")     ‘---这是新增的代码
g1.Totals.AddDef("姓名", AggregateEnum.Count, "帮扶户数") 
g1.VerticalTotal = True   \'--合计
g1.Build()    \'---生成

DataTables("帮扶统计表2").DataCols.Add("年度内参与帮扶乡镇数",Gettype(Integer))
For Each dr As DataRow In DataTables("帮扶统计表2").DataRows
    If dr("年度") <> "合计"
        Dim d As Date = new Date(val(dr("年度")),1,1)   \'不知道这一行写的对不对
        dr("年度内参与帮扶乡镇数") = DataTables("困难人员帮扶记录表").GetValues("所在乡镇","帮扶日期>=#" & d & "# and 帮扶日期 < #" & d.AddYears(1) & "#" And "所属县市 = DataTables("帮扶统计表2").DataRows("所属县市")").Count     ‘----红色的代码是新增的
    End If
Next

错误提示是:应为逗号、“)”或有效的表达式继续符
[此贴子已经被作者于2019/2/24 13:03:03编辑过]

--  作者:有点甜
--  发布时间:2019/2/24 13:55:00
--  
DataTables("帮扶统计表2").DataCols.Add("年度内参与帮扶乡镇数",Gettype(Integer))
For Each dr As DataRow In DataTables("帮扶统计表2").DataRows
    If dr("年度") <> "合计"
        Dim d As Date = new Date(val(dr("年度")),1,1)   \'不知道这一行写的对不对
        dr("年度内参与帮扶乡镇数") = DataTables("困难人员帮扶记录表").GetValues("所在乡镇","帮扶日期>=#" & d & "# and 帮扶日期 < #" & d.AddYears(1) & "#" And "所属县市 = \'" & dr("所属县市") & "\'"     \'----红色的代码是新增的
    End If
Next

--  作者:tkxffb
--  发布时间:2019/2/24 15:07:00
--  
有点甜老师,提示错误,请你再看看。
错误提示是:从字符串“走访日期 >=#2019-01-01# and 走访日期 < #”到类型“Long”的转换无效。

  dr("年度内参与帮扶乡镇数") = DataTables("困难人员帮扶记录表").GetValues("所在乡镇","帮扶日期>=#" & d & "# and 帮扶日期 < #" & d.AddYears(1) & "#" And 所属县市 = \'" & dr("所属县市") & "\'" ).Count     \'----红色的代码是新增的

--  作者:tkxffb
--  发布时间:2019/2/24 15:20:00
--  
有点甜老师,不麻烦您了,我已经改好了

 dr("年度内参与帮扶乡镇数") = DataTables("困难人员帮扶记录表").GetValues("所在乡镇","帮扶日期>= #" & d & "# and 帮扶日期 < #" & d.AddYears(1) & "#   And   所属县市 = \'" & dr("所属县市") & "\' " ).Count