Foxtable(狐表)用户栏目专家坐堂 → 跨表筛选


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

主题:跨表筛选

帅哥哟,离线,有人找我吗?
雅痞123456
  31楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:203 积分:1368 威望:0 精华:0 注册:2017/12/4 15:36:00
  发帖心情 Post By:2018/1/14 8:56:00 [只看该作者]


Dim g As New CrossTableBuilder("统计表1", DataTables("随件卡"))
g.HGroups.AddDef("客户名称")
g.HGroups.AddDef("产品种类")
g.HGroups.AddDef("产品名称")
g.HGroups.AddDef("产品代码")
g.HGroups.AddDef("工序代码")
g.VGroups.AddDef("加工时间", "{0}月")
g.Totals.AddDef("计数数量", "产量")
g.Totals.AddDef("加工数量")
Dim dt As DataTable = g.Build(True)

Dim dict As new Dictionary(of String ,String)
For Each c As DataCol In dt.DataCols
    If c.name.Contains("_") Then
        dict.Add(c.Caption,c.Name)
    End If
Next


Dim yf() As String = {"","一","二","三","四","五","六","七","八","九","十","十一","十二"}
For Each dr As DataRow In dt.DataRows
    Dim filter As String = "1=1"
    If dr.Isnull("客户名称") Then
        filter &= " and 客户名称 is null"
    Else
        filter &= " and 客户名称 = '" & dr("客户名称") & "'"
    End If
    If dr.Isnull("产品种类") Then
        filter &= " and 产品种类 is null"
    Else
        filter &= " and 产品种类 = '" & dr("产品种类") & "'"
    End If
    If dr.Isnull("产品代码") Then
        filter &= " and 产品代码 is null"
    Else
        filter &= " and 产品代码 = '" & dr("产品代码") & "'"
    End If
    If dr.Isnull("工序代码") Then
        filter &= " and 工序代码 is null"
    Else
        filter &= " and 工序代码 = '" & dr("工序代码") & "'"
    End If
    If dr.Isnull("产品名称") Then
        filter &= " and 产品名称 is null"
    Else
        filter &= " and 产品名称 = '" & dr("产品名称") & "'"
    End If
    Dim ndr As DataRow = DataTables("产品表").Find(filter)
    If ndr Is Nothing Then
        ndr = DataTables("产品表").AddNew()
        ndr("客户名称") = dr("客户名称")
    End If
    For Each c As String In dict.Keys
        Dim str() As String = c.Split("_")
        If str(0) = "空" Then Continue For
        Dim yue As String = yf(val(str(0).trim("月"))) & "月分_"
        If str(1) = "产量" Then
            ndr(yue & str(1)) = dr(dict(c))
        Else
            ndr(yue & "合格率") = dr(dict(str(0) & "_产量")) / dr(dict(c))
        End If
    Next
Next


我重新输入了一些数据然后用上面的程序测试了一下  能够正常运行  但是产品合格率的运行结果还是不对 是不是方程式错误啊


此主题相关图片如下:1.png
按此在新窗口浏览图片


 回到顶部
帅哥哟,离线,有人找我吗?
雅痞123456
  32楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:203 积分:1368 威望:0 精华:0 注册:2017/12/4 15:36:00
  发帖心情 Post By:2018/1/14 8:56:00 [只看该作者]


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

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

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


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

你统计比较哪几列?你代码写的是统计下面两列,如果你要计算合格率,你是不是要统计【合格】的数量?

 

g.Totals.AddDef("计数数量", "产量")
g.Totals.AddDef("加工数量")


 回到顶部
帅哥哟,离线,有人找我吗?
雅痞123456
  34楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:203 积分:1368 威望:0 精华:0 注册:2017/12/4 15:36:00
  发帖心情 Post By:2018/1/15 8:14:00 [只看该作者]

谢谢有点甜老师   我想了很长时间没弄明白  多亏了您的指点啊  现在调试好了  万分感谢

 回到顶部
总数 34 上一页 1 2 3 4