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


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

主题:隔行选择

帅哥哟,离线,有人找我吗?
有点色
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

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


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

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

 

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

 

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

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


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

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/26 20:34:00 [显示全部帖子]

 例子发上来测试。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/26 23:21:00 [显示全部帖子]

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


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/23 11:15:00 [显示全部帖子]

 没看懂你的意思,上传实例说明问题。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/23 13:21:00 [显示全部帖子]

Dim t As Table = Tables("窗口2_Table1")
Dim idx As Integer
If vars("flag") = 0 Then
    idx = t.FindRow("目录_状态 Is null Or 目录_状态 = '学习中'", t.Position+1, True)
    vars("pidx") = idx
   
    idx = t.FindRow("目录_状态 is null or 目录_状态 = '学习中'", idx+1, True)
    vars("flag") = 1
   
Else
    idx = vars("pidx")
    vars("flag") = 0
End If

If idx = -1  Then
    msgbox("已复习完")
Else
    Dim r As Row = t.Rows(idx)
    t.Position = idx
End If

Dim sp As New DotNetSpeech.SpVoice()
sp.Speak(e.Form.Controls("Label1").Text, DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync)


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/23 13:50:00 [显示全部帖子]

 没看懂你说的问题。

 


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