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


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

主题:跨表筛选

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


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

有包装就可以判定最后一序
  
产品代码+年月+序号数 (如果是这个月第一次输入该产品就显示01   第二次生产该产品就显示0.2  以此类推)

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/1/6 11:29:00 [只看该作者]

Select e.DataCol.Name
    Case "加工时间","产品代码","工序代码"
        If e.DataRow.IsNull("加工时间") OrElse e.DataRow.IsNull("产品代码") OrElse e.DataRow.IsNull("工序代码") OrElse e.DataRow("工序代码").Contains("包装") = False  Then
            e.DataRow("产品批次代码") = Nothing
        Else
            Dim d As Date = e.DataRow("加工时间")
            Dim y As Integer = d.Year
            Dim m As Integer = d.Month
            Dim Days As Integer = Date.DaysInMonth(y,m)
            Dim fd As Date = New Date(y,m,1) '获得该月的第一天
            Dim ld As Date = New Date(y,m,Days) '获得该月的最后一天
            Dim bh As String = e.DataRow("产品代码") & "-" & Format(d,"yyyyMM") & "-" '生成编号的前缀
            If e.DataRow("产品批次代码").StartsWith(bh) = False '如果单据编号前缀不符
                Dim max As String
                Dim idx As Integer
                Dim flt As String
                flt = "产品代码 = '"& e.DataRow("产品代码") & "' And 加工时间 >= #" & fd & "# And 加工时间 <= #" & ld & "# And [_Identify] <> " & e.DataRow("_Identify")
                max = e.DataTable.Compute("Max(产品批次代码)",flt) '取得该月的相同工程代码的最大单据编号
                If max > "" Then '如果存在最大单据编号
                    idx = CInt(max.Substring(12,4)) + 1 '获得最大单据编号的后四位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("产品批次代码") = bh & Format(idx,"0000")
            End If
        End If
End Select

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


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


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

上面代码只能实现产品批次代码   不能实现对每个月份的每道工序产品加工数量的统计啊?如果想实现这个应该怎么办?

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/1/6 14:35:00 [只看该作者]

不管年份,只要是1月份的就合并统计?

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


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

是的可以       现在就是先初步使用一段时间,等有效果再找老板批款卖商业版的  

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/1/6 15:29: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 ndr As DataRow = DataTables("产品表").Find(CExp("客户名称='{0}' and 产品种类='[1}' and 产品代码='{2}' and 工序代码='{3}' and 产品名称='{4}'",dr("客户名称"),dr("产品种类"),dr("产品代码"),dr("工序代码"),dr("产品名称")))
    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

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


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

这段代码写在哪里?图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/1/6 15:43:00 [只看该作者]

做个窗口按钮,或者到命令窗口运行

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


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


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

这是什么情况图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/1/6 15:50:00 [只看该作者]

日志列的长度不够,改为备注列

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