Foxtable(狐表)用户栏目专家坐堂 → 下一行随机


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

主题:下一行随机

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109496 积分:557148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/17 14:23:00 [显示全部帖子]

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

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109496 积分:557148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/19 9:14:00 [显示全部帖子]

afterload事件

vars("Selected") = new List(of integer)

下一个按钮事件

Dim lst As List(of Integer) = Vars("Selected")
Dim idx As Integer
Dim t As Table = e.Form.Controls("Table1").Table
If e.Form.Controls("CheckBox1").Checked
    idx = Rand.Next(t.rows.count)
ElseIf t.Position < t.Rows.Count - 1
    idx = t.Position + 1
End If
If lst.Contains(t.Rows(idx)("_Identify"))
    msgbox("已选过")
Else
    lst.Add(t.Rows(idx)("_Identify"))
    t.Position = idx
End If

AfterClose事件
Dim lst As List(of Integer) = Vars("Selected")
lst.Clear

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109496 积分:557148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/19 9:16:00 [显示全部帖子]

建议换一种方式处理,把选过的行移除

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109496 积分:557148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/29 20:38:00 [显示全部帖子]

没问题

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109496 积分:557148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/5 10:14: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("不匹配")
    Return
    'Audio.Play("d:\test.wav")
Else
    Dim t As Table = Tables("英语")
    Dim r As Row = t.current
    r("目录_状态") = "已学习"
    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
End If

If Tables("英语").DataTable.Find("目录_状态 = '学习中'") Is Nothing Then
    msgbox("已学完")
End If

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109496 积分:557148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/5 21:34:00 [显示全部帖子]

在多个地方重复定义了r这个变量名称,要么改名,要么去掉dim定义

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109496 积分:557148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/5 22:41:00 [显示全部帖子]

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

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109496 积分:557148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/5 23:02:00 [显示全部帖子]

上例子

 回到顶部