Foxtable(狐表)用户栏目专家坐堂 → [求助]Find查找范围


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

主题:[求助]Find查找范围

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


加好友 发短信
等级:童狐 帖子:234 积分:2062 威望:0 精华:0 注册:2015/11/7 21:11:00
  发帖心情 Post By:2016/2/18 15:08:00 [只看该作者]

 上传一张表格照片图片点击可在新窗口打开查看

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/18 15:13:00 [只看该作者]

drs = DataTables("故障报告2").Select("飞机号 = '" & e.DataRow("飞机号") & "' and substring(系统章节, 1, 2) = '" & e.DataRow("系统章节").substring(0, 2) & "'", "日期") '注意要根据日期排序


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/18 15:15:00 [只看该作者]

或者

 

If e.DataCol.Name = "日期" Then
    Dim drs As List(of DataRow)
    Dim dv As Date = e.DataRow("日期")
    Dim n As Integer = 0
    drs = DataTables("故障报告2").Select("飞机号 = '" & e.DataRow("飞机号") & "'", "日期") '注意要根据日期排序
    For Each dr2 As DataRow In drs
        If dr2("系统章节").Substring(0, 2) = e.DataRow("系统章节").Substring(0, 2) AndAlso dr2("日期") >= dv.AddDays(-30) And dr2("日期") < dv Then
            n  = n + 1
            If n >=2 Then
                e.DataRow("预警") = "重复性故障"
            End If
        Else
            Exit For
        End If
    Next
End If

 


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


加好友 发短信
等级:童狐 帖子:234 积分:2062 威望:0 精华:0 注册:2015/11/7 21:11:00
  发帖心情 Post By:2016/2/18 15:23:00 [只看该作者]

 这样也不行,红袍哥,你有没有邮箱,我把例子发给你吧

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/18 15:30:00 [只看该作者]

单独做一个简单的例子上传上来测试。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/18 15:31:00 [只看该作者]

不行的情况,具体说明报什么错啊。

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


加好友 发短信
等级:童狐 帖子:234 积分:2062 威望:0 精华:0 注册:2015/11/7 21:11:00
  发帖心情 Post By:2016/2/18 15:41:00 [只看该作者]

以下是引用大红袍在2016/2/18 15:31:00的发言:
不行的情况,具体说明报什么错啊。

没有报错,我要实现的功能是,30天内同一机型、同一系统章节号或章节号出现三次的,定义为重复性故障
我又仔细检查了一下,我刚才的代码的问题是,找不全。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:可靠性数据分析.table


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/18 15:57:00 [只看该作者]

你在datacolchanged事件,就没必要用select吧?直接find就行,你写在按钮的时候,才需要select的。

 

If e.DataCol.Name = "日期" Then
    Dim drs As List(of DataRow)
    Dim dv As Date = e.DataRow("日期")
    Dim n As Integer = 0
    drs = DataTables("故障报告2").Select("飞机号 = '" & e.DataRow("飞机号") & "'", "日期") '注意要根据日期排序
    For Each dr2 As DataRow In drs
        If dr2("系统章节").Substring(0, 2) = e.DataRow("系统章节").Substring(0, 2) AndAlso dr2("日期") >= dv.AddDays(-30) AndAlso dr2("日期") < dv Then
            n  = n + 1
            If n >=2 Then
                e.DataRow("预警") = "重复性故障"
                Exit For
            End If
        End If
    Next
End If

 


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


加好友 发短信
等级:童狐 帖子:234 积分:2062 威望:0 精华:0 注册:2015/11/7 21:11:00
  发帖心情 Post By:2016/2/18 16:06:00 [只看该作者]

以下是引用大红袍在2016/2/18 15:57:00的发言:

你在datacolchanged事件,就没必要用select吧?直接find就行,你写在按钮的时候,才需要select的。

 

If e.DataCol.Name = "日期" Then
    Dim drs As List(of DataRow)
    Dim dv As Date = e.DataRow("日期")
    Dim n As Integer = 0
    drs = DataTables("故障报告2").Select("飞机号 = '" & e.DataRow("飞机号") & "'", "日期") '注意要根据日期排序
    For Each dr2 As DataRow In drs
        If dr2("系统章节").Substring(0, 2) = e.DataRow("系统章节").Substring(0, 2) AndAlso dr2("日期") >= dv.AddDays(-30) AndAlso dr2("日期") < dv Then
            n  = n + 1
            If n >=2 Then
                e.DataRow("预警") = "重复性故障"
                Exit For
            End If
        End If
    Next
End If

 

因为是要三次,我采用select的,而且我用select主要是参考了你前面让我看的帮助,这样做实为了减少日期比较次数

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


加好友 发短信
等级:童狐 帖子:234 积分:2062 威望:0 精华:0 注册:2015/11/7 21:11:00
  发帖心情 Post By:2016/2/18 16:36:00 [只看该作者]

以下是引用大红袍在2016/2/18 15:57:00的发言:

你在datacolchanged事件,就没必要用select吧?直接find就行,你写在按钮的时候,才需要select的。

 

If e.DataCol.Name = "日期" Then
    Dim drs As List(of DataRow)
    Dim dv As Date = e.DataRow("日期")
    Dim n As Integer = 0
    drs = DataTables("故障报告2").Select("飞机号 = '" & e.DataRow("飞机号") & "'", "日期") '注意要根据日期排序
    For Each dr2 As DataRow In drs
        If dr2("系统章节").Substring(0, 2) = e.DataRow("系统章节").Substring(0, 2) AndAlso dr2("日期") >= dv.AddDays(-30) AndAlso dr2("日期") < dv Then
            n  = n + 1
            If n >=2 Then
                e.DataRow("预警") = "重复性故障"
                Exit For
            End If
        End If
    Next
End If

 

红袍哥,能跟我说下我前面犯了什么错误吗?你这种写法确实对了,可我就是看不懂我到底哪错了,谢谢!


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