以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 统计问题-1 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186991) |
|
-- 作者:lin98 -- 发布时间:2023/6/13 10:20:00 -- 统计问题-1 Dim dt As DataTable Dim dtb As New DataTableBuilder("统计") dtb.AddDef("日期", Gettype( Date)) dtb.AddDef("工号", Gettype(String), 16) dtb.AddDef("产品", Gettype(String), 16) dtb.AddDef("数量", Gettype(Double)) dtb.AddDef("产量", Gettype(Double)) dt = dtb.Build() Dim lst As New Dictionary(of String ,DataRow) \' 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 Dim key As String = nm & "|" & dr1("产品") \' If lst.ContainsKey(key) \' dr2= lst(key) \' Else dr2 = dt.AddNew() \' dr2("工号") = nm \' dr2("产品") = dr1 lst.add(key,dr2) \' End If dr2("数量") = dr2("数量") + v \' Next End If Next MainTable = Tables("统计") 如何实现表二的效果? [此贴子已经被作者于2023/6/13 16:54:15编辑过]
|
|
-- 作者:有点蓝 -- 发布时间:2023/6/13 10:27:00 -- 就是1楼的代码,有什么问题? |
|
-- 作者:lin98 -- 发布时间:2023/6/13 10:44:00 -- .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2022.8.18.1 错误所在事件:窗口,统计,Button5,Click 详细错误信息: 从类型“DataRow”到类型“String”的转换无效。 |
|
-- 作者:有点蓝 -- 发布时间:2023/6/13 10:47:00 -- Else dr2 = dt.AddNew() \' dr2("工号") = nm \' dr2("产品") = dr1("产品") lst.add(key,dr2) \' End If
|
|
-- 作者:lin98 -- 发布时间:2023/6/13 11:18:00 -- 日期、产量、完成数没数据,第一个产品原表数据800,计算平均后应是各400,需计算超如图 |
|
-- 作者:有点蓝 -- 发布时间:2023/6/13 11:36:00 -- 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 Dim key As String = nm & "|" & dr1("产品") \' If lst.ContainsKey(key) \' dr2= lst(key) \' Else dr2 = dt.AddNew() \' dr2("数量") = v \' dr2("工号") = nm \' dr2("产品") = dr1 lst.add(key,dr2) \' End If Next End If Next
[此贴子已经被作者于2023/6/13 11:37:16编辑过]
|
|
-- 作者:lin98 -- 发布时间:2023/6/13 12:43:00 -- Dim dt As DataTable Dim dtb As New DataTableBuilder("统计") dtb.AddDef("日期", GetType( Date)) dtb.AddDef("工号", GetType(String), 16) dtb.AddDef("产品", GetType(String), 16) dtb.AddDef("数量", GetType(Double)) dtb.AddDef("产量", GetType(Double)) dtb.AddDef("完成数", GetType(Double)) dt = dtb.Build() Dim lst As New Dictionary(Of String , DataRow) \' 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 Dim key As String = nm & "|" & dr1("产品") \' If lst.ContainsKey(key) Then\' dr2 = lst(key) \' Else dr2 = dt.AddNew() \' dr2("数量") = v \' dr2("工号") = nm \' dr2("产品") = dr1 lst.add(key, dr2) \' End If Next End If Next MainTable = Tables("统计") .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2022.8.18.1 错误所在事件:窗口,统计,Button5,Click 详细错误信息: 从类型“DataRow”到类型“String”的转换无效。 [此贴子已经被作者于2023/6/13 12:43:32编辑过]
|
|
-- 作者:有点蓝 -- 发布时间:2023/6/13 13:28:00 -- 看4楼 |
|
-- 作者:lin98 -- 发布时间:2023/6/13 14:35:00 -- 数据不完整,如图
[此贴子已经被作者于2023/6/13 16:54:38编辑过]
|
|
-- 作者:有点蓝 -- 发布时间:2023/6/13 14:38:00 --
|