Foxtable(狐表)用户栏目专家坐堂 → 隔行选择


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

主题:隔行选择

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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17993 威望:0 精华:0 注册:2013/4/9 10:41:00
隔行选择  发帖心情 Post By:2017/2/2 14:09:00 [只看该作者]

可以在这个的基础上帮忙改一下吗?

在匹配了后 跳至下一行 改为跳两行 
然后第二次上一行
三次下两行

大概意思就是 单点下移两行,双点上移一行,这样一次类推可以吗?
感谢 感谢 

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


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:隔行选择.table


[此贴子已经被作者于2017/2/2 14:58:25编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/2 16:38:00 [只看该作者]

Dim lbl1 As WinForm.Label = e.Form.Controls("Label1")
Dim txt1 As WinForm.TextBox = e.Form.Controls("TextBox1")
If lbl1.text <> txt1.text Then
    msgbox("不匹配")
    'Audio.Play("d:\test.wav")
Else
    Dim t As Table = Tables("英语")
    'Dim ar As Row = t.current
    'ar("目录_状态") = "已学习"
    't.Current("听写_次数") += 1
    If e.Form.controls("checkbox1").checked Then
        Dim drs As List(Of DataRow) = t.DataTable.Select("目录_状态 Is null Or 目录_状态 <> '学习中'")
        If drs.count > 0 Then
            Dim idx As Integer = Rand.Next(drs.count-1)
            t.position = t.FindRow(drs(idx))
            Dim r = t.current
            r("目录_状态") = "已学习"
            Dim sp As New DotNetSpeech.SpVoice()
            sp.Speak(r("目录_英文"), DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync)
            txt1.text = ""
        Else
            msgbox("已学完")
        End If
    Else
        static flag As Integer = 0
        static pidx As Integer = 0
        Dim idx As Integer
        If flag = 0 Then
            idx = t.FindRow("目录_状态 is null or 目录_状态 <> '学习中'", t.Position+1, True)
            pidx = idx
            idx = t.FindRow("目录_状态 is null or 目录_状态 <> '学习中'", idx+1, True)
            flag = 1
        Else
            idx = pidx
            flag = 0
        End If
       
        If idx = -1  Then
            msgbox("已学完")
        Else
            Dim r As Row = t.Rows(idx)
            t.Position = idx
            Dim sp As New DotNetSpeech.SpVoice()
            sp.Speak(r("目录_英文"), DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync)
            txt1.text = ""
        End If
    End If
End If

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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17993 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2017/2/3 10:46:00 [只看该作者]

谢谢 谢谢  非常感谢 我以为这个功能需要测试很多次,感谢 ,可以了,只是筛选后就乱了,还有就是不能首尾相连,如果是最后一行往下跳就选择第二行,这个可以吗? 感谢 感谢 

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/3 11:59:00 [只看该作者]

1、你的逻辑有问题,没有你这样逻辑。

 

2、你要看懂代码,不然你永远做不到你需要的东西。

 

3、我测试没问题,如果到最后一行,默认就会找到下一行满足条件的行啊。

 

 


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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17993 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2017/2/3 12:08:00 [只看该作者]

谢谢 是这样的 一个表格里面有很多状态, 在不同的时候筛选出使用,所有需要筛选,能帮帮看一下筛选后还能下两行上一行的功能吗?感谢 感谢 

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/3 12:14:00 [只看该作者]

 把2楼的flag改成vars("flag"),然后在你表的筛选事件AfterFilter写代码

 

Vars("flag") = 0


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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17993 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2017/2/3 13:07:00 [只看该作者]

谢谢  能在帮忙看看吗?

Dim lbl1 As WinForm.Label = e.Form.Controls("Label1")
Dim txt1 As WinForm.TextBox = e.Form.Controls("TextBox1")
If lbl1.text <> txt1.text Then
    msgbox("不匹配")
    'Audio.Play("d:\test.wav")
Else
    Dim t As Table = Tables("英语")
    'Dim ar As Row = t.current
    'ar("目录_状态") = "已学习"
    't.Current("听写_次数") += 1
    If e.Form.controls("checkbox1").checked Then
        Dim drs As List(Of DataRow) = t.DataTable.Select("目录_状态 Is null Or 目录_状态 <> '学习中'")
        If drs.count > 0 Then
            Dim idx As Integer = Rand.Next(drs.count-1)
            t.position = t.FindRow(drs(idx))
            Dim r = t.current
            r("目录_状态") = "已学习"
            Dim sp As New DotNetSpeech.SpVoice()
            sp.Speak(r("目录_英文"), DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync)
            txt1.text = ""
        Else
            msgbox("已学完")
        End If
    Else
        static vars("flag") As Integer = 0
        static pidx As Integer = 0
        Dim idx As Integer
        If vars("flag") = 0 Then
            idx = t.FindRow("目录_状态 is null or 目录_状态 <> '学习中'", t.Position+1, True)
            pidx = idx
            idx = t.FindRow("目录_状态 is null or 目录_状态 <> '学习中'", idx+1, True)
            vars("flag") = 1
        Else
            idx = pidx
            vars("flag") = 0
        End If
        
        If idx = -1  Then
            msgbox("已学完")
        Else
            Dim r As Row = t.Rows(idx)
            t.Position = idx
            Dim sp As New DotNetSpeech.SpVoice()
            sp.Speak(r("目录_英文"), DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync)
            txt1.text = ""
        End If
    End If
End If

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


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/3 13:39:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:隔行选择.table


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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17993 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2017/2/3 17:48:00 [只看该作者]

感谢 感谢 
如果只是单独的实现这个功能, 应该怎么改一下啊  谢谢你

Dim t As Table = Tables("主窗口_Table1")
If Forms("主窗口").Controls("CheckBox1").Checked
    Dim idx As Integer = Rand.Next(t.rows.count)
    t.Position = idx
Else
    If t.Position < t.Rows.Count - 1
        t.Position = t.Position + 1
    Else
        t.Position = 0
    End If
End If

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/3 18:03:00 [只看该作者]

Dim t As Table = Tables("英语")
If Forms("窗口2").Controls("CheckBox1").Checked
    Dim idx As Integer = Rand.Next(t.rows.count)
    t.Position = idx
Else
    Dim idx As Integer = 0
    If vars("flag") = 0 Then
        idx = t.Position + 2
        vars("flag") = 1
        If idx >= t.Rows.Count Then idx = idx - t.Rows.count
    Else
        idx = t.Position - 1
        vars("flag") = 0
        If idx < 0 Then idx = t.Rows.count + idx
    End If
    t.Position = idx
End If

 回到顶部
总数 41 1 2 3 4 5 下一页