Foxtable(狐表)用户栏目专家坐堂 → 解释代码


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

主题:解释代码

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4301 威望:0 精华:0 注册:2019/8/5 17:49:00
解释代码  发帖心情 Post By:2022/2/22 17:00:00 [只看该作者]

蓝总:以下是论坛<驾驶员理论考试模拟系统》的关于如何组组题的代码,就这个实现看的云里雾里,能不能将黄色部分关键代码解释下


Tables("试题库").Redraw = False

Tables("试题库").Filter = ""

Tables("试题库").Sort = ""

For i As integer = 0 to Tables("试题库").rows.count -1

    Tables("试题库").Rows(i)("随机值") = Rand.Next(10000)

Next '排随机值

For Each dr As DataRow in DataTables("试题库").DataRows

    dr("信息") = Nothing

    dr("序号") = Nothing

Next '清空指定列的数据

Dim fls As List(Of String) = DataTables("试题库").GetUniqueValues("","分类")

For Each fl As String In fls

    '获得该分类的全部行

    Dim drs As List(Of DataRow) = DataTables("试题库").Select("[分类] = '" & fl & "'", "随机值")

    For n As integer = 0 To drs.Count - 1 '遍历所有行

        drs(n)("组题") = n + 1 '编号排序

    Next

Next

Dim Str As String

For Each fl As String In fls

    Dim dr As DataRow = DataTables("组题方式").Find("[试题] = '" & fl & "'")

    '组合字符串

    str = str & " or [分类] = '" & fl & "' And [组题] <= " & dr(Vars("车型"))*100

Next '筛选

Tables("试题库").Filter = str.SubString(4)

Tables("试题库").Sort = "随机值,题型"

For i As integer = 0 to Tables("试题库").rows.count -1

    Tables("试题库").Rows(i)("序号") = i + 1

Next '对序号我按筛选行的顺序赋值

Tables("试题库").Redraw = True


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


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/22 17:11:00 [只看该作者]

这个最好是问做这个系统的人了,我也看的云里雾里


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


加好友 发短信
等级:一尾狐 帖子:461 积分:4301 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2022/2/23 9:57:00 [只看该作者]


Dim Str As String

For Each fl As String In fls

    Dim dr As DataRow = DataTables("组题方式").Find("[试题] = '" & fl & "'")

    '组合字符串

    str = str & " or [分类] = '" & fl & "' And [组题] <= " & dr(Vars("车型"))*100

Next '筛选

Tables("试题库").Filter = str.SubString(4)

Tables("试题库").Sort = "随机值,题型"


蓝总:Tables("试题库").Filter = str.SubString(4)  从第四个字符开始 返回所有字符串,对试题库进行赛选,这个4从得来的?


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


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/23 10:01:00 [只看该作者]

拼接字符串后,去掉最前面的or

For Each fl As String In fls

    Dim dr As DataRow = DataTables("组题方式").Find("[试题] = '" & fl & "'")

    '组合字符串

    str = str & " or [分类] = '" & fl & "' And [组题] <= " & dr(Vars("车型"))*100

Next '筛选


可以这样测试一下,看效果

Dim Str As String

for i as integer = 0 to 2

str = str & " or 第一列=" & i

next

msgbox("没有去掉前的结果是:" & str)

msgbox("去掉后的结果是:" & str.SubString(4))


 回到顶部