Foxtable(狐表)用户栏目专家坐堂 → [求助]当前行,各列不为空的个数,如何表达?


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

主题:[求助]当前行,各列不为空的个数,如何表达?

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


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
[求助]当前行,各列不为空的个数,如何表达?  发帖心情 Post By:2014/9/26 22:50:00 [只看该作者]

请教:在10个不良项目中,如果有两个以上的不良项目栏值不为空,判定为“不合格”。谢谢!如下图:

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


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


加好友 发短信
等级:狐神 帖子:4632 积分:33804 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2014/9/26 23:00:00 [只看该作者]

制程判定改为表达式列
设表达式如下:
IIF((IIF([不良项目1] is null,1,0)+IIF([不良项目1] is null,1,0)+IIF([良项目2] is null,1,0)+.....)>1,'不合格','合格')

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


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

制程判定列与不良项目列是在不同的表内的,这样的话,表达式如何表达?

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


加好友 发短信
等级:狐神 帖子:4632 积分:33804 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2014/9/27 11:03:00 [只看该作者]

上例子

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


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

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



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


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

有哪位老师可以帮忙回复一下呀?谢谢啦

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


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

我用的是下面的代码,但是无论有值的不良项目列数是几,“制程判定”是值一直是“合格”,无变化,请赐教。

Select Case e.DataCol.Name
Case "第1刀_不良项目","第2刀_不良项目","第3刀_不良项目","第4刀_不良项目","第5刀_不良项目","第6刀_不良项目","第7刀_不良项目","第8刀_不良项目","第9刀_不良项目","第10刀_不良项目"
    For i As Integer = 1 To 10
        Dim v1 As String = e.DataRow("第" & i & "刀_不良项目")
Dim v2 As Integer = DataTables("制程检验记录表").Compute("count(第" & i & "刀_不良项目)","第" & i & "刀_不良项目 <> 'nothing'")
Dim dr As DataRow = DataTables("半成品检验记录表").find("流水号 = '"& e.datarow("流水号") &"'")
        If v2 >= 2 Then
            dr("制程判定") = "不合格"
            Exit For
        Else
            dr("制程判定") = "合格"
        End If
    Next
End Select


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


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

Select Case e.DataCol.Name
    Case "第1刀_不良项目","第2刀_不良项目","第3刀_不良项目","第4刀_不良项目","第5刀_不良项目","第6刀_不良项目","第7刀_不良项目","第8刀_不良项目","第9刀_不良项目","第10刀_不良项目"
        Dim count As Integer = 0
        For i As Integer = 1 To 10
            If e.DataRow.IsNull("第" & i & "刀_不良项目") = False Then
                count += 1
            End If
        Next
        Dim dr As DataRow = DataTables("半成品检验记录表").find("流水号 = '"& e.datarow("流水号") &"'")
        If count >= 2 Then
            dr("制程判定") = "不合格"
        Else
            dr("制程判定") = "合格"
        End If
End Select

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


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

谢谢有点甜,终于等到你了!

 回到顶部