Foxtable(狐表)用户栏目专家坐堂 → [求助]代码简化?


  共有3438人关注过本帖平板打印复制链接

主题:[求助]代码简化?

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


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
[求助]代码简化?  发帖心情 Post By:2022/3/25 10:15:00 [只看该作者]

DataTables("成绩库").StopRedraw
Dim xuankes() As String = {"化","生","政","地"}
Dim Values() As String = {"考号"}
For Each Value As String In Values
    Tables("成绩库").Cols(Value & "排序").Visible = True
Next
'四科排序
For Each Value As String In Values
    For Each nianji As String In DataTables("成绩库").GetValues("年级", "")
        For Each danwei As String In DataTables("成绩库").GetValues("单位","年级 = '" & nianji & "'" )
            Dim tj As String = value & "排序"
            Dim drs As List(Of DataRow) = DataTables("成绩库").Select("[年级] = '" & nianji & "'And [单位] = '" & danwei & "'","年级代码,单位代码,考场号,座位号") '排序
            For n As Integer = 0 To drs.Count - 1 '遍历所有行
                drs(n)(tj) = n + 1 '四科排序填充
            Next
        Next
    Next
Next
'学科排序
For Each xuanke As String In xuankes
    For Each nianji As String In DataTables("成绩库").GetValues("年级", "")
        For Each danwei As String In DataTables("成绩库").GetValues("单位","年级 = '" & nianji & "'" )
            Dim tj1 As String = xuanke & "排序"
            If xuanke = "化" Then
                Dim dr1s As List(Of DataRow) = DataTables("成绩库").Select("[年级] = '" & nianji & "' And [单位] = '" & danwei & "'And [组合] Like '%" & xuanke & "%'","年级代码,单位代码,化考场号,化座位号")
                For n As Integer = 0 To dr1s.Count - 1 '遍历所有行
                    dr1s(n)(tj1) = n + 1 '化学排序填充
                Next
            ElseIf xuanke = "生" Then
                Dim dr1s As List(Of DataRow) = DataTables("成绩库").Select("[年级] = '" & nianji & "' And [单位] = '" & danwei & "'And [组合] Like '%" & xuanke & "%'","年级代码,单位代码,生考场号,生座位号")
                For n As Integer = 0 To dr1s.Count - 1 '遍历所有行
                    dr1s(n)(tj1) = n + 1 '生物排序填充
                Next
            ElseIf xuanke = "政" Then
                Dim dr1s As List(Of DataRow) = DataTables("成绩库").Select("[年级] = '" & nianji & "' And [单位] = '" & danwei & "'And [组合] Like '%" & xuanke & "%'","年级代码,单位代码,政考场号,政座位号")
                For n As Integer = 0 To dr1s.Count - 1 '遍历所有行
                    dr1s(n)(tj1) = n + 1 '政治排序填充
                Next
            ElseIf xuanke = "地" Then
                Dim dr1s As List(Of DataRow) = DataTables("成绩库").Select("[年级] = '" & nianji & "' And [单位] = '" & danwei & "'And [组合] Like '%" & xuanke & "%'","年级代码,单位代码,地考场号,地座位号")
                For n As Integer = 0 To dr1s.Count - 1 '遍历所有行
                    dr1s(n)(tj1) = n + 1 '地理排序填充
                Next
            Else
            End If
        Next
    Next
Next
Tables("成绩库").Sort = "年级代码,单位代码,考场号,座位号"
DataTables("成绩库").ResumeRedraw

上面红色部分代码能否简化?
'学科排序
For Each xuanke As String In xuankes
    For Each nianji As String In DataTables("成绩库").GetValues("年级", "")
        For Each danwei As String In DataTables("成绩库").GetValues("单位","年级 = '" & nianji & "'" )
            Dim tj1 As String = xuanke & "排序"

                Dim dr1s As List(Of DataRow) = DataTables("成绩库").Select("[年级] = '" & nianji & "' And [单位] = '" & danwei & "'And [组合] Like '%" & xuanke & "%'","年级代码,单位代码,xuanke &"考场号",xuanke &"座位号"")  '用 xuanke 简化"化","生","政","地"

                For n As Integer = 0 To dr1s.Count - 1 '遍历所有行
                    dr1s(n)(tj1) = n + 1 '化学排序填充
                Next
        Next
    Next
Next

代码如何修改?请指教。谢谢!
[此贴子已经被作者于2022/3/25 10:18:01编辑过]

 回到顶部