Foxtable(狐表)用户栏目专家坐堂 → [求助]根据条件获取最大计数(已解决)


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

主题:[求助]根据条件获取最大计数(已解决)

帅哥哟,离线,有人找我吗?
yyzlxc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]根据条件获取最大计数(已解决)  发帖心情 Post By:2014/11/3 12:54:00 [只看该作者]

在实时采集表DataColChanged事件,一段代码,标记的代码是获取最大计数,当条件设置为日期和工位机ID时,可以实现所需效果,但增加一个条件(作业ID)时,就不能获取最大计数,问题在哪里,请各位老师指教,谢谢!!

Select Case e.DataCol.Name
    '序号和计数
    Case "日期"
        If e.DataCol.Name = "日期" Then
            If e.DataRow.IsNull("日期") Then
                e.DataRow("序号") = Nothing
            Else
                If e.DataRow.IsNull("序号") Then
                    Dim max,max1 As String '最大序号
                    Dim idx As Integer
                    max = e.DataTable.Compute("Max(序号)","[_Identify] <> " & e.DataRow("_Identify")) '取得最大序号
                    If max > "" Then '如果存在最大序号
                        idx = CInt(max) + 1 '获得最大序号,并加1
                    Else
                        idx = 1 '否则序号等于1
                    End If
                    e.DataRow("序号") = idx
                    Dim rq As String = e.DataRow("日期")
                    Dim gwjid As String = e.DataRow("工位机ID")
                    Dim zyid As String = e.DataRow("作业ID")
                    max1 = e.DataTable.Compute("Max(计数)","[日期] = '"& rq &"' And [工位机ID] = '"& gwjid &"' And [_Identify] <> " & e.DataRow("_Identify")) '取得最大计数
                    'max1 = e.DataTable.Compute("Max(计数)","[日期] = '"& rq &"' And [作业ID] = '"& zyid &"' And [工位机ID] = '"& gwjid &"' And [_Identify] <> " & e.DataRow("_Identify")) '取得最大计数
                    If max1 > "" Then '如果存在最大计数
                        idx = CInt(max1) + 1 '获得最大计数,并加1
                    Else
                        idx = 1 '否则计数等于1
                    End If
                    e.DataRow("计数") = idx
                End If
            End If
        End If
End Select



[此贴子已经被作者于2014-11-3 15:23:30编辑过]

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


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

Case "日期"

 

改成

 

Case "日期", "作业ID", "工位机ID"


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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2014/11/3 14:42:00 [只看该作者]

谢谢甜老师的回复,好像不是这个原因,加了一个条件后,max1为空,不知什么原因,请指教,谢谢!!

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


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

Select Case e.DataCol.Name
    '序号和计数
    Case "日期", "作业ID", "工位机ID"
        If e.DataCol.Name = "日期" Then
            If e.DataRow.IsNull("日期") Then
                e.DataRow("序号") = Nothing
            Else
                Dim max,max1 As String '最大序号
                Dim idx As Integer
                max = e.DataTable.Compute("Max(序号)","[_Identify] <> " & e.DataRow("_Identify")) '取得最大序号
                If max > "" Then '如果存在最大序号
                    idx = CInt(max) + 1 '获得最大序号,并加1
                Else
                    idx = 1 '否则序号等于1
                End If
                e.DataRow("序号") = idx
                Dim rq As String = e.DataRow("日期")
                Dim gwjid As String = e.DataRow("工位机ID")
                Dim zyid As String = e.DataRow("作业ID")
                'max1 = e.DataTable.Compute("Max(计数)","[日期] = '"& rq &"' And [工位机ID] = '"& gwjid &"' And [_Identify] <> " & e.DataRow("_Identify")) '取得最大计数
                max1 = e.DataTable.Compute("Max(计数)","[日期] = '"& rq &"' And [作业ID] = '"& zyid &"' And [工位机ID] = '"& gwjid &"' And [_Identify] <> " & e.DataRow("_Identify")) '取得最大计数
                If max1 > "" Then '如果存在最大计数
                    idx = CInt(max1) + 1 '获得最大计数,并加1
                Else
                    idx = 1 '否则计数等于1
                End If
                e.DataRow("计数") = idx
            End If
        End If
End Select

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2014/11/3 14:53:00 [只看该作者]

应该点击手动采集按钮,计数会增加,但是现在计数一直是1,没有变化。

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


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

 看楼上

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2014/11/3 14:59:00 [只看该作者]

谢谢甜老师的指教,问题是,将老师的代码贴进去,还是原来的情况,计数不会变化。还请指教,谢谢!!

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


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

肯定会变化啊

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


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

只要填入了对应的值就有变化啊

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2014/11/3 15:04:00 [只看该作者]

您可以在案例中测试一下,我也觉得很奇怪。

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