Foxtable(狐表)用户栏目专家坐堂 → [求助]这样的统计如何实现?[已解决]


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

主题:[求助]这样的统计如何实现?[已解决]

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


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
[求助]这样的统计如何实现?[已解决]  发帖心情 Post By:2014/11/1 14:30:00 [只看该作者]

如图:

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

例子:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:问题.foxdb



[此贴子已经被作者于2014-11-3 21:18:22编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2014/11/1 14:54:00 [只看该作者]

分切工piao信息表DataColChanged事件代码


If e.DataCol.name = "分切班组"
    Dim n As Double
    Dim r As DataRow = e.DataRow
    Dim dr As DataRow
    For i As Integer = 1 To 10
        dr = DataTables("成品检验记录表").Find("流水号 = '" & r("流水号") & "' and 不良项目" & i & "_班组 = '"  & r("分切班组") & "'")
        If dr IsNot Nothing Then '如果找到的话
            n = n + dr("不良项目" & i & "_只数")
        End If
    Next
    r("不良只数") = n
End If


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


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2014/11/1 15:23:00 [只看该作者]

CZY:谢谢您的回复!因为成品检验记录表的数据是在分切工piao信息表之后。如果是在分切工piao信息的datacolchanged事件中录入代码的话,可能数据无法统计到。

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2014/11/1 15:32:00 [只看该作者]

你的生产单号应该是唯一的吧?

如果是唯一的,两表以生产单号建立关联,分切工piao信息表为主表,当在子表的不良项目只数列输入数据时,用RaiseDataColChanged重算父行即可。


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2014/11/1 16:09:00 [只看该作者]

帮你写了一下

 

成品检验记录表DataColChanged事件
Select Case e.DataCol.Name
    Case "不良项目1_只数","不良项目2_只数","不良项目3_只数","不良项目4_只数","不良项目5_只数","不良项目6_只数","不良项目7_只数","不良项目8_只数","不良项目9_只数","不良项目10_只数"
        Dim dr As DataRow
        dr = DataTables("分切工piao信息").Find("[生产单号] = '" & e.DataRow("生产单号") & "' And 分切班组 = '" & e.DataRow(e.DataCol.Name.Replace("只数","班组")) & "'")
        If dr IsNot Nothing Then
            DataTables("分切工piao信息").DataCols("分切班组").RaiseDataColChanged(dr)
        End If
End Select


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


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2014/11/3 14:01:00 [只看该作者]

谢谢CZY,我将代码写入成品检验记录表DataColChanged事件中,但提示为错误,我找了一下,也没有要赋值到成品检验记录表的分切班组列呀?为什么会有这样的提示呢?

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2014.9.22.1
错误所在事件:表,成品检验记录表, DataColChanged
详细错误信息:
调用的目标发生了异常。
列“分切班组”不属于表 成品检验记录表。


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


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

 回复楼上。

 

 我测试把两段代码分别拷贝进去没有报错啊。


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


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2014/11/3 15:51:00 [只看该作者]

好奇怪,我将其它代码注释后,再测试,也没有报错,再将注释的代码取消注释后,也没有报错。现在又出现另一个问题,就是如果下面这段代码中:
 dr = DataTables("分切工piao信息").Find("[生产单号] = '" & e.DataRow("生产单号") & "' And 分切班组 = '" & e.DataRow(e.DataCol.Name.Replace("只数","班组")) & "'")

用Find去查找的话,只能查找前台的数据,如果是后台数据就找不到,如果改成SQLFind的话,也无法找到,最后“不良只数”那里为空。

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


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

 后台的就这样做。

 

Select Case e.DataCol.Name
    Case "不良项目1_只数","不良项目2_只数","不良项目3_只数","不良项目4_只数","不良项目5_只数","不良项目6_只数","不良项目7_只数","不良项目8_只数","不良项目9_只数","不良项目10_只数"
        Dim dr As DataRow
        dr = DataTables("分切工piao信息").SQLFind("[生产单号] = '" & e.DataRow("生产单号") & "' And 分切班组 = '" & e.DataRow(e.DataCol.Name.Replace("只数","班组")) & "'")
        If dr IsNot Nothing Then
            Dim n As Double
            For i As Integer = 1 To 10
                n = n + e.DataRow("不良项目" & i & "_只数")
            Next
            dr("不良只数") = n
            dr.Save
        End If
End Select


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


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2014/11/3 16:21:00 [只看该作者]

因为分切工piao信息中的不良数量,只统计成品检验记录表中“不良项目“i”_责任”为“分切”的只数,我在代码中了一句判断(红色字),但是统计结果不对。

Select Case e.DataCol.Name
    Case "不良项目1_只数","不良项目2_只数","不良项目3_只数","不良项目4_只数","不良项目5_只数","不良项目6_只数","不良项目7_只数","不良项目8_只数","不良项目9_只数","不良项目10_只数"
        Dim dr1 As DataRow
        dr1 = DataTables("分切工piao信息").SQLFind("[生产单号] = '" & e.DataRow("生产单号") & "' And 分切班组 ='"&e.DataRow(e.DataCol.Name.Replace("只数","班组")) & "'")
        If dr1 IsNot Nothing Then
            Dim n As Double
            For i As Integer = 1 To 10
                If e.DataRow("不良项目" & i & "_责任").Contains("分切") Then
                    n = n + e.DataRow("不良项目" & i & "_只数")
                End If
            Next
            dr1("不良只数") = n
            dr1.Save
        End If        
End Select

 回到顶部
总数 17 1 2 下一页