Foxtable(狐表)用户栏目专家坐堂 → 排序问题


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

主题:排序问题

美女呀,离线,留言给我吧!
采菊东篱下
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/6/28 9:20:00 [只看该作者]

这代码中的排序是过渡性取数,对阵表的桌号有重新排序意图,问题是如何重新排序,再存回比赛积分表?我是通过保存按钮实现的,
    Case "保存"
        Dim qsmc As WinForm.ComboBox = e.Form.Controls("棋赛名称")
        Dim di1 As String = qsmc.Value
        Dim m As WinForm.TextBox = e.Form.Controls("第几轮")
        Dim di2 As String = m.Value
        For Each nr As Row In Tables("综合组").Rows
            Dim dr As DataRow = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "'And [分组] = '综合组' And [编号] = '" & nr("红方_编号") & "'")
            If dr IsNot Nothing Then
                dr("桌号") = nr("桌号")
                dr("积分") = nr("当前局成绩_红方")
                dr.Save
            End If
            dr = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "'And [分组] = '综合组' and [编号]='" & nr("黑方_编号") & "'")
            If dr IsNot Nothing Then
                dr("桌号") = nr("桌号")
                dr("积分") = nr("当前局成绩_黑方")
                dr.Save
            End If
        Next
        DataTables("比赛积分").load
End Select
但未重新排序,而是直接=排序数,这有违我设置初衷,刚想了一下,把上一轮(a)的数据通过临时表过渡,即:
 Dim drs4 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & a & "' And [分组] = '" & Str & "'","","日期 Desc,分组,上轮止累计积分 Desc,曾交战对手累计积分")
            For ic As Integer = 0 To drs4.Count - 1
                dr = DataTables("比赛积分").AddNew
                Dim dts2 As DataRow = DataTables("基本信息").SQLFind("[棋赛名称] = '" & di1 & "'And [身份] = '参赛人' And [缺赛轮号] like '%" & di2 & "%' and [编号] = '" & drs4(ic)("编号") & "'")
                If dts2 IsNot Nothing  Then
                    dr("排序") = 0
                Else
                    dr("排序") = ((ii2) + 1) \ 2
                    ii2 + = 1
                End If
                dr("棋赛名称") = di1
                dr("第几轮比赛") = di2
                dr("日期") = di3
                dr("编号") = drs4(ic)("编号")
                dr("姓名") = drs4(ic)("姓名")
                dr("轮赛次数值转换") = Val(di2)
                dr("分组") = Str
                dr("上轮止累计积分") = drs4(ic)("上轮止累计积分") + drs4(ic)("积分")
                dr("曾交战对手累计积分") = drs4(ic)("曾交战对手累计积分") + DataTables("比赛积分").SQLCompute("SUM(积分)","[分组] = '" & Str & "' And [排序] = " & drs4(ic)("排序") & "And [编号] <> '" & drs4(ic)("编号") & "'and [姓名] <> '" & drs4(ic)("姓名") & "'")
                i2 + = 1
            Next
  改用临时表计算,然后对其重新排序,再赋值到比赛积分表本轮新添行(dr)中,这绕一圈就可把全部问题解决了,问题是我不知如何对临时表赋值,重新排序,再赋回dr中,简单问题,复杂的处理,头痛中!
[此贴子已经被作者于2020/6/28 9:21:39编辑过]

 回到顶部
总数 22 1 2 3 下一页