Foxtable(狐表)用户栏目专家坐堂 → [求助]标记表中数值加减关系的行,基于数值加减关系查找


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

主题:[求助]标记表中数值加减关系的行,基于数值加减关系查找

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


加好友 发短信
等级:婴狐 帖子:8 积分:128 威望:0 精华:0 注册:2017/5/20 16:39:00
[求助]标记表中数值加减关系的行,基于数值加减关系查找  发帖心情 Post By:2017/7/10 15:13:00 [只看该作者]

成绩表

成绩 学生 标记
1 97 张三
2 68 李四
3 60 王五
4 60 赵六
5 73 张三
6 61 李四 合格
7 75 王五
8 59 赵六
9 70 张三
10 61 李四
11 60 王五
12 79 赵六
13 60 张三
14 60 李四
15 99 王五
16 44 赵六
17 59 张三 合格
18 59 李四
19 61 王五
20 85 赵六


表格信息如上,需要查找成绩=60分时,并且它的下一行也是60分,在成绩行往下查找,距离最近的第一个59分或61分,然后在标记列标注"合格"

解释:表中成绩列,第一个60分在第3行,它的下一行也是60,然后往下查,第6行第一次出现61分,标记"合格"

        继续往下查找,第11行出现60分,不做处理

        继续往下查找,第13、14行出现60分,然后往下查,第17行第一次出现59分,标记"合格"

求大神指导!非常感谢!

Dim t As Table = Tables("成绩表")
For i As Integer = 1 To t.rows.count-1
    If t.rows(i)("成绩") = 60  
       t.rows(i+1)("成绩") = 60
       && 或者    t.rows(i)("成绩") = t.rows(i+1)("成绩")   
       t.rows(m)("成绩") = 60+1  or  60-1
       t.rows(m)("标记") = "合格"
[此贴子已经被作者于2017/7/10 15:26:14编辑过]

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


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

Dim t As Table = Tables("成绩表")
Dim n As Integer = 60
Dim flag1 As Boolean = False
Dim flag2 As Boolean = False
For i As Integer = 0 To t.rows.count-2
    If t.rows(i)("成绩") = n AndAlso t.rows(i+1)("成绩") = n Then
        flag1 = True
        flag2 = True
    End If
    If flag1 Then
        If  t.rows(i)("成绩") = n+1
            t.rows(i)("标记") = "合格"
            flag1 = False
        End If
    End If
    If flag2 Then
        If  t.rows(i)("成绩") = n-1
            t.rows(i)("标记") = "合格"
            flag2 = False
        End If
    End If
Next

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


加好友 发短信
等级:婴狐 帖子:8 积分:128 威望:0 精华:0 注册:2017/5/20 16:39:00
  发帖心情 Post By:2017/7/10 16:02:00 [只看该作者]

感谢!!!
[此贴子已经被作者于2017/7/10 16:16:55编辑过]

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


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

 看不懂你的逻辑,你到底想实现什么?这个功能是为什么需要的?

 

 具体做个foxtable的实例发上来。


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


加好友 发短信
等级:婴狐 帖子:8 积分:128 威望:0 精华:0 注册:2017/5/20 16:39:00
  发帖心情 Post By:2017/7/10 16:32:00 [只看该作者]

多谢

可以执行了,就是标记的行多了,把出现的第一个成绩数值标记就OK

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


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

 

[此贴子已经被作者于2017/7/10 17:03:35编辑过]

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


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

Dim t As Table = Tables("成绩表")
Dim n As Integer = 60
Dim flag1 As Boolean = False
Dim flag2 As Boolean = False
dim flag as boolean = false
For i As Integer = 0 To t.rows.count-1
    t.rows(i)("标记") = Nothing
Next
For i As Integer = 0 To t.rows.count-2
    If flag = False Then
        If t.rows(i)("成绩") = n AndAlso t.rows(i+1)("成绩") = n Then
            flag1 = True
            flag2 = True
            flag = True
        End If
    Else
        If flag1 Then
            If  t.rows(i)("成绩") = n+1
                t.rows(i)("标记") = "合格"
                flag1 = False
            End If
        End If
        If flag2 Then
            If  t.rows(i)("成绩") = n-1
                t.rows(i)("标记") = "合格"
                flag2 = False
            End If
        End If
        If flag1=false AndAlso flag2=false Then
            Exit For
        End If
    End If
Next
[此贴子已经被作者于2017/7/10 17:08:32编辑过]

 回到顶部