Foxtable(狐表)用户栏目专家坐堂 → [求助]统计数据汇总遇到的问题


  共有2548人关注过本帖树形打印复制链接

主题:[求助]统计数据汇总遇到的问题

帅哥哟,离线,有人找我吗?
紫色幽魂
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:5382 威望:0 精华:0 注册:2015/1/23 0:31:00
[求助]统计数据汇总遇到的问题  发帖心情 Post By:2018/7/29 14:27:00 [只看该作者]

请教
生成了一个统计表,增加了一列“已检构件”,想要对“无损_构件清单”进行筛选,然后将数量汇总写入这个统计表,下面这个需要怎么改


Dim zd As New Dictionary(of DataRow, String)
Dim drs As List(of DataRow)
Dim sl As Double 
For Each dr1 As DataRow In DataTables("无损_构件清单").DataRows
    drs = DataTables("无损_构件清单").SQLSelect("检验批编号 = '"& dr1("检验批编号") &"'")  '筛选的时候这个表里面的总数量列可能有的单元格为空,需不需要筛选的时候就将这个条件加进去 
        For Each dr2 As DataRow In drs 
            If dr2("已检构件数") > dr2("总数量") Then
               sl = sl + dr2("总数量")
            Else
               sl = sl + dr2("已检构件数")
            End If
        Next
    zd.Add(dr1, sl)
Next
For Each dr As DataRow In zd.Keys
    dr("已检构件") = zd(dr)
Next


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/29 16:03:00 [只看该作者]

没看懂你要做的东西。

 

如果要给统计表赋值,你应该循环统计表的每一行才对。


 回到顶部
帅哥哟,离线,有人找我吗?
紫色幽魂
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:5382 威望:0 精华:0 注册:2015/1/23 0:31:00
回复:(有点甜)没看懂你要做的东西。 如果...  发帖心情 Post By:2018/7/29 17:00:00 [只看该作者]

先生成统计表,然后增加一列,查询每一行对应的检验批编号所对应的表“无损_构件清单”的“已检构件数”之和,但是如果单行已检构件数超过“总数量”的话就以单行“总数量”来算

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/29 17:27:00 [只看该作者]

Dim drs As List(of DataRow)

For Each dr1 As DataRow In DataTables("统计表").DataRows
    Dim sl As Double = 0
    drs = DataTables("无损_构件清单").SQLSelect("检验批编号 = '"& dr1("检验批编号") &"'")  '筛选的时候这个表里面的总数量列可能有的单元格为空,需不需要筛选的时候就将这个条件加进去
    For Each dr2 As DataRow In drs
        If dr2("已检构件数") > dr2("总数量") Then
            sl = sl + dr2("总数量")
        Else
            sl = sl + dr2("已检构件数")
        End If
    Next
    dr1("已检构件") = sl
Next


 回到顶部
帅哥哟,离线,有人找我吗?
紫色幽魂
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:5382 威望:0 精华:0 注册:2015/1/23 0:31:00
回复:(有点甜)Dim drs As List(of DataRow)For E...  发帖心情 Post By:2018/7/29 21:32:00 [只看该作者]

在取值的表单里面有的行已检构件大于总数,如果大于总数取总数,否则取已检构件数,现在取出来的数之和和实际这个检验批已检构件数量之和对不上;’
在这个取值表总数量行可能是空值,所以我把筛选条件将总数量是空值的去除了,但是最后生成的表里面这一列都是0了;请问这个英国怎么改

Dim drs As List(of DataRow)
For Each dr1 As DataRow In DataTables("无损查询表_Table1").DataRows
    Dim sl As Double = 0
    drs = DataTables("无损_构件清单").SQLSelect("检验批编号 = '"& dr1("检验批编号") &"' And 总数量 IsNot Nothing ")  
    For Each dr2 As DataRow In drs
        If dr2("已检构件") > dr2("总数量") Then
            sl = sl + dr2("总数量")
        Else
            sl = sl + dr2("已检构件")
        End If
    Next
    dr1("已检构件") = sl
Next

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/29 23:05:00 [只看该作者]

 

drs = DataTables("无损_构件清单").SQLSelect("检验批编号 = '"& dr1("检验批编号") &"' And 总数量 Is not null ")

 

 


 回到顶部