Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:多值字段的统计

1楼
小猪鑫鑫 发表于:2011/11/13 16:12:00
狐爸:请问怎样统计多值字段中我勾选了几个项目,比如我有一个产量表,表中有日期、品种、产量、员工工号等列,员工工号列是多值字段,可以将参与生产当天该产品的员工工号勾选,有时是3人,有时是2人或1人,问题是我怎样自动统计出我勾选了几个人,以及怎样将勾选的人直观的统计出来,就是像表一样将员工的工号统计出来,谢谢
2楼
czy 发表于:2011/11/13 16:22:00
传个示例看看。
3楼
小猪鑫鑫 发表于:2011/11/13 21:40:00
请问版主:为什么我总是上传不了附件的?
4楼
小猪鑫鑫 发表于:2011/11/13 21:41:00
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多字段产量统计.table

5楼
小猪鑫鑫 发表于:2011/11/13 21:44:00
可以上传文件了,实例在上楼,请版主帮看看,意思就是想统计出每一个工号员工的每月每个品种的产量,当天产量有几个人参与就几个人平分,这在生产企业里经常要用到,谢谢
6楼
狐狸爸爸 发表于:2011/11/13 22:09:00

看起来复杂,其实:

 

 

Dim dt As DataTable
Dim dtb As New DataTableBuilder("统计")
Dim lst As New Dictionary(of String ,DataRow)
dtb.AddDef("工号", Gettype(String), 16)
dtb.AddDef("数量", Gettype(Double))
dt = dtb.Build
For Each dr1 As DataRow In DataTables("产量登记表_多值字段").DataRows
    If dr1.IsNull("员工工号") = False Then
        Dim nms() As String = dr1("员工工号").Split(",")
        Dim v As Double = dr1("数量")/ nms.Length
        For Each nm As String In nms
            Dim dr2 As DataRow
            If lst.ContainsKey(nm)
                dr2= lst(nm)
            Else
                dr2 = dt.AddNew()
                dr2("工号") = nm
                lst.add(nm,dr2)
            End If
            dr2("数量") = dr2("数量") + v
        Next
    End If
Next

 

 

[此贴子已经被作者于2011-11-14 7:17:16编辑过]
7楼
clchg 发表于:2011/11/15 9:31:00
狐狸爸爸能不能把你的每一个语句进行说明
8楼
狐狸爸爸 发表于:2011/11/15 9:50:00

下次重新整理一下,写入帮助。

9楼
lanse_1971 发表于:2012/1/1 20:48:00

我也碰到同样的问题,怎么没有人回答呢?

10楼
狐狸爸爸 发表于:2012/1/4 10:46:00
以下是引用lanse_1971在2012-1-1 20:48:00的发言:

我也碰到同样的问题,怎么没有人回答呢?

http://www.foxtable.com/help/topics/2400.htm

 

共10 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 3 queries.