Foxtable(狐表)用户栏目专家坐堂 → 后台统计异常


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

主题:后台统计异常

美女呀,离线,留言给我吧!
nuoyan89
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:501 积分:3485 威望:0 精华:0 注册:2020/10/9 8:45:00
后台统计异常  发帖心情 Post By:2023/4/11 9:33:00 [只看该作者]

老师,我用以下代码进行统计,出现如图的提示:找不到成品编码列。

            Dim sql5 As String = "Sel ect * fr om 生产任务总表 as a5 where exists(sel ect * fro m 生产排产表 as b5 whe re " & Forms("生产排产表").controls("生产排产表").Table.DataTable.LoadFilter & " and a5.成品编码 = b5.成品编码 And a5.生产批次 = b5.生产批次 And a5.使用设备 = b5.使用设备 And a5.加工工序 = b5.加工工序)"
            Dim b5 As New Gro upTableBuilder("统计表5", sql5, "条码扫描系统数据库")
            b5.Groups.AddDef("成品编码") '根据产品分组
            b5.Groups.AddDef("生产批次") '根据产品分组
            b5.Groups.AddDef("使用设备") '根据产品分组
            b5.Groups.AddDef("加工工序") '根据产品分组
            b5.Totals.AddDef("剩余天数", AggregateEnum.Count, "生产日期") '对数量进行统计
            Dim dr22 As DataTable = b5.Build(True)
            Dim dr32 As DataRow
            For Each dr25 As Row In Tables("生产排产表_生产排产表").Rows
                dr32 = dr22.find("成品编码 = '" & dr25("成品编码") & "' and 生产批次 = '" & dr25("生产批次") & "' and 使用设备 = '" & dr25("使用设备") & "' and 加工工序 = '" & dr25("加工工序") & "' and 生产日期 >= '" & Date.Today & "'")
                If dr32 IsNot Nothing Then
                    dr25("剩余天数") = dr32("剩余天数")
                End If
            Next

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


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

到命令窗口执行,然后看看生成的统计表的表结构,都有什么列

Dim sql5 As String = "Sel ect * fr om 生产任务总表 as a5 where exists(sel ect * fro m 生产排产表 as b5 whe re " & Forms("生产排产表").controls("生产排产表").Table.DataTable.LoadFilter & " and a5.成品编码 = b5.成品编码 And a5.生产批次 = b5.生产批次 And a5.使用设备 = b5.使用设备 And a5.加工工序 = b5.加工工序)"
            Dim b5 As New Gro upTableBuilder("统计表5", sql5, "条码扫描系统数据库")
            b5.Groups.AddDef("成品编码") '根据产品分组
            b5.Groups.AddDef("生产批次") '根据产品分组
            b5.Groups.AddDef("使用设备") '根据产品分组
            b5.Groups.AddDef("加工工序") '根据产品分组
            b5.Totals.AddDef("剩余天数", AggregateEnum.Count, "生产日期") '对数量进行统计
b5.Build()

 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:501 积分:3485 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2023/4/11 10:35:00 [只看该作者]

老师,异常出现在这个代码,像这种可以怎么改动呢?我最终的目的是想根据这几个条件统计出大于等于当前日期“生产日期”的个数。
b5.Totals.AddDef("剩余天数", AggregateEnum.Count, "生产日期") '对数量进行统计

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110569 积分:562735 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/11 10:47:00 [只看该作者]

多看看呗:http://www.foxtable.com/webhelp/topics/0677.htm

b5.Totals.AddDef("生产日期", AggregateEnum.Count, "剩余天数")

 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:501 积分:3485 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2023/4/11 10:55:00 [只看该作者]

已处理好了,用了另外一种方式

 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:501 积分:3485 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2023/4/18 8:57:00 [只看该作者]

老师,我用2楼的方式进行了代码测试后,红色代码统计出来的没有问题,但是结果还是不对,如图2。

            Dim sql5 As String = "Sel ect * from 生产任务总表 as a5 where exists(sel ect * from 生产排产表 as b5 where " & Forms("生产排产表").controls("生产排产表").Table.DataTable.LoadFilter & " and a5.成品编码 = b5.成品编码 And a5.生产批次 = b5.生产批次 And a5.使用设备 = b5.使用设备 And a5.加工工序 = b5.加工工序 And a5.生产日期 >= '" & Format(Date.Today, "yyyyMMdd") & "' )"
            Dim b5 As New Group TableBuilder("统计表5", sql5, "条码扫描系统数据库")
            b5.Groups.AddDef("成品编码") '根据产品分组
            b5.Groups.AddDef("生产批次") '根据产品分组
            b5.Groups.AddDef("使用设备") '根据产品分组
            b5.Groups.AddDef("加工工序") '根据产品分组
            b5.Totals.AddDef("生产日期", AggregateEnum.Count, "剩余天数") '对生产日期进行统计
            Dim dr22 As DataTable = b5.Build(True)
            Dim dr32 As DataRow
            For Each dr25 As Row In Tables("生产排产表_生产排产表").Rows
                dr32 = dr22.find("成品编码 = '" & dr25("成品编码") & "' and 生产批次 = '" & dr25("生产批次") & "' and 使用设备 = '" & dr25("使用设备") & "' and 加工工序 = '" & dr25("加工工序") & "' and 生产日期 >= '" & Format(Date.Today, "yyyyMMdd") & "'")
                If dr32 IsNot Nothing Then
                    dr25("剩余天数") = dr32("剩余天数")
                End If
            Next


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


 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110569 积分:562735 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/18 9:07:00 [只看该作者]

哪一行数据不对?

如果找不到的要清空应该这样
                If dr32 IsNot Nothing Then
                    dr25("剩余天数") = dr32("剩余天数")
else
dr25("剩余天数") = nothing
                End If

 回到顶部