以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教问题:按车间、月份统计人数如操作?谢谢  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=94226)

--  作者:wuzi2016
--  发布时间:2016/12/19 13:53:00
--  请教问题:按车间、月份统计人数如操作?谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:请教问题:按车间、月份统计人数如操作?谢谢.zip


--  作者:有点色
--  发布时间:2016/12/19 14:10:00
--  

可以用代码

 

Dim g As New GroupTableBuilder("统计表1", DataTables("表A"))
g.Groups.AddDef("日期", "月")
g.Groups.AddDef("车间")
g.Totals.AddDef("姓名", AggregateEnum.Count)
g.Build()
MainTable = Tables("统计表1")

 

你也可以自己设置统计

 

http://www.foxtable.com/webhelp/scr/0158.htm

 


--  作者:wuzi2016
--  发布时间:2016/12/19 14:50:00
--  
试了一下,可以统计数量,但是同一个人会重复统计
我需要的是统计这个月这个车间的人数,(就是相同姓名的人只能统计一次)可以实现吗?


--  作者:有点色
--  发布时间:2016/12/19 14:58:00
--  
Dim dt As DataTable = DataTables("表A")
Dim g As New GroupTableBuilder("统计表1", dt)
g.Groups.AddDef("日期", DateGroupEnum.Year, "年")
g.Groups.AddDef("日期", "月")
g.Groups.AddDef("车间")
g.Totals.AddDef("姓名", AggregateEnum.Count, "人数")
g.Build()
Dim t As Table = Tables("统计表1")
For Each r As Row In t.Rows
    Dim d As Date = new Date(r("年"), r("月"), 1)
    Dim count As Integer = dt.GetValues("姓名", "日期 >= #" & d & "# and 日期 < #" & d.AddMonths(1) & "# and 车间 = \'" & r("车间") & "\'").count
    r("人数") = count
Next

--  作者:wuzi2016
--  发布时间:2016/12/19 16:05:00
--  
执行代码  看不懂啊
图片点击可在新窗口打开查看此主题相关图片如下:错误.jpg
图片点击可在新窗口打开查看

--  作者:有点色
--  发布时间:2016/12/19 16:12:00
--  

 afteropenproject事件,写入如下代码

 

Dim cd As System.Globalization.DateTimeFormatInfo = System.Globalization.DateTimeFormatInfo.CurrentInfo
Dim DateInfo As System.Reflection.FieldInfo = cd.Gettype.GetField("generalLongTimePattern", System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Instance)


If  DateInfo IsNot Nothing Then
    DateInfo.SetValue(cd, "yyyy-MM-dd HH:mm:ss")
End If


--  作者:wuzi2016
--  发布时间:2016/12/19 19:40:00
--  
代码添加进去还是提示未被识别为有效DateTime。。。。
--  作者:有点蓝
--  发布时间:2016/12/19 20:21:00
--  
 afteropenproject事件,加上一句

Dim cd As System.Globalization.DateTimeFormatInfo = System.Globalization.DateTimeFormatInfo.CurrentInfo
cd.ShortDatePattern = "yyyy年MM月dd日"
Dim DateInfo As System.Reflection.FieldInfo = cd.Gettype.GetField("generalLongTimePattern", System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Instance)
If  DateInfo IsNot Nothing Then
    DateInfo.SetValue(cd, "yyyy-MM-dd HH:mm:ss")
End If

--  作者:wuzi2016
--  发布时间:2016/12/19 21:22:00
--  
非常完美,谢谢!!!。