Rss & SiteMap

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

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

标题:求助-分类统计

1楼
lovetoday 发表于:2024/10/21 15:05:00
老师,我的数据源是表1如图一所示,(绿色部分是表头),我想通过统计得到表2如图二所示的数据统计结果,(绿色部分是表头),

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20241021145255.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20241021145312.png
图片点击可在新窗口打开查看

统计情况是从表一中按销档、标号来统计产量,统计这两个条件下按物料名称的用量统计,我现在不清楚该如何来进行统计,烦请老师,帮忙分析下思路,也请老师帮做下代码,谢谢老师。
2楼
有点蓝 发表于:2024/10/21 15:18:00
这种没有办法直接统计,只能遍历所有单元格逐个相加处理。具体请上传实例说明
3楼
lovetoday 发表于:2024/10/23 10:44:00
老师,谢谢您
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


4楼
有点蓝 发表于:2024/10/23 11:31:00
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目13.zip

5楼
lovetoday 发表于:2024/10/23 11:54:00
谢谢老师,我会研究下代码的,再次感谢
6楼
lovetoday 发表于:2024/10/24 13:56:00
老师您好,学习您代码还是有些迷糊,我给您发的临时数据是另建的,也是我当时没考虑清楚,我按我的数据来源及显示位置做了一些修改,可就是改不上,还得请老师帮我处理下,我再对照学习,谢谢老师。
数据结构:
我原表A的数据是SQL数据库里的“白塔砼销明细”-g.CTextBox522")和Dim qz As WinForm.TextBox = e.Form.Controls("TextBox523")
数据列原先的不变,现在增加:砼销明细_生产日期0,生产信息_生产信息_生产线,生产信息_生产信息_浇筑方式,条件是:[砼销明细_生产日期0] >= '" & qq.text & "' and [砼销明细_生产日期0] <= '" & qz.text & "' 
显示列的顺序为:砼销明细_生产日期0,生产信息_生产信息_生产线,销档,标号,生产信息_生产信息_浇筑方式,产量,后面就是那些用料的了

您之前的代码如下:
Dim dtb As New DataTableBuilder("统计表1")
dtb.AddDef("销档", GetType(String), 16)
dtb.AddDef("标号", GetType(String), 16)
dtb.AddDef("产量", GetType(Integer))
Dim lst As New List(Of String)
For Each c As Col In Tables("表A").cols
    If c.Name Like "*_物料_*" Then
        For Each v As String In DataTables("表A").GetValues(c.Name, c.Name & " is not null")
            If lst.Contains(v) = False Then
                lst.Add(v)
                dtb.AddDef(v, GetType(Double))
            End If
        Next
    End If
Next
dtb.Build()
For Each v As String() In DataTables("表A").GetValues("砼销明细_销档|砼销明细_生产信息_标号")
    Dim dr1 As DataRow = DataTables("统计表1").AddNew()
    dr1("销档") = v(0)
    dr1("标号") = v(1)
    For Each dr2 As DataRow In DataTables("表A").Select("砼销明细_销档 = '" & v(0) & "' and 砼销明细_生产信息_标号 = '" & v(1) & "'")
        dr1("产量") = dr1("产量") + dr2("砼销明细_生产信息_产量")
        For Each c As Col In Tables("表A").cols
            If c.Name Like "*_物料_*" Then
                If dr2.IsNull(c.Name) = False Then
                    dr1(dr2(c.Name)) = dr1(dr2(c.Name)) + dr2(c.Name.Replace("物料", "用量"))
                End If 
            End If
        Next
    Next
Next
MainTable = Tables("统计表1")

烦请老师帮忙修改下,谢谢!
7楼
有点蓝 发表于:2024/10/24 14:03:00
请重新上传实例说明
8楼
lovetoday 发表于:2024/10/24 14:48:00
老师,我的数据是SQL数据库里的“白塔砼销明细”-g.C
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目13.table


9楼
lovetoday 发表于:2024/10/24 14:48:00
 "统计工作"
[此贴子已经被作者于2024/10/24 14:50:15编辑过]
10楼
lovetoday 发表于:2024/10/24 14:49:00
g.C
共26 条记录, 每页显示 10 条, 页签: [1] [2][3]

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

Powered By Dvbbs Version 8.3.0
Processed in .05469 s, 5 queries.