Foxtable(狐表)用户栏目专家坐堂 → 将一表内相同姓名的同学用期中减月一


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

主题:将一表内相同姓名的同学用期中减月一

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


加好友 发短信
等级:幼狐 帖子:174 积分:1582 威望:0 精华:0 注册:2016/9/28 11:48:00
将一表内相同姓名的同学用期中减月一  发帖心情 Post By:2018/11/17 17:05:00 [只看该作者]

将一表内相同姓名的同学用期中减月一
相当于每两行数据之间又要增加一行(作差的结果)
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

[此贴子已经被作者于2018/11/17 17:05:13编辑过]

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


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

参考:

Dim r As Row
Dim t As Table = Tables("data")
For i As Integer = t.Rows.Count - 1 To 2 Step -2
    Dim r1 As Row = t.Rows(i-1)
    t.Position = i+1
    Dim r2 As Row = t.Rows(i)
    r= t.InsertNew
    r("姓名") = r2("姓名")
    For Each c As Col In t.Cols
        If c.IsNumeric Then
            r(c.Name) = r2(c.Name) - r1(c.Name)
        End If
    Next
Next
[此贴子已经被作者于2018/11/17 17:20:35编辑过]

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


加好友 发短信
等级:幼狐 帖子:174 积分:1582 威望:0 精华:0 注册:2016/9/28 11:48:00
  发帖心情 Post By:2018/11/17 17:44:00 [只看该作者]

提示此表不支持行插入功能

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


加好友 发短信
等级:狐神 帖子:4627 积分:33767 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2018/11/17 23:16:00 [只看该作者]

要设置列标志

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


加好友 发短信
等级:狐神 帖子:4627 积分:33767 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2018/11/18 0:49:00 [只看该作者]

Dim ss As List(of String) = DataTables("data").GetValues("学号")
Dim lst As new List(of String)
For Each s As String In ss
    Dim dr1 As DataRow = DataTables("data").Find("学号='" & s & "'","考次 desc")
    Dim dr2 As DataRow = DataTables("data").Find("学号='" & s & "'","考次 desc",1)
    Dim ds As String = dr1("班级") & "," & dr1("学号") & "," & dr1("姓名") & ",比较"
    For Each dc As DataCol In DataTables("data").DataCols
        If dc.Name<>"班级" AndAlso dc.Name<>"学号" AndAlso dc.Name<>"姓名" AndAlso dc.Name<>"考次"
            If dr1 IsNot Nothing AndAlso dr2 IsNot Nothing
                ds += "," & (dr2(dc.Name) - dr1(dc.Name))
            Else
                ds += "," & dr1(dc.Name)
            End If
        End If
    Next
    lst.Add(ds)
Next
For Each ls As String In lst
    Dim dr As DataRow = DataTables("data").AddNew
    For i As Integer = 0 To DataTables("data").DataCols.Count-1
        dr(Tables("data").Cols(i).Name) = ls.Split(",")(i)
    Next
Next
Tables("data").sort = "班级,学号,姓名,考次 desc"

[此贴子已经被作者于2018/11/18 0:49:03编辑过]

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


加好友 发短信
等级:幼狐 帖子:174 积分:1582 威望:0 精华:0 注册:2016/9/28 11:48:00
  发帖心情 Post By:2018/11/18 15:33:00 [只看该作者]

以下是引用y2287958在2018/11/18 0:49:00的发言:
Dim ss As List(of String) = DataTables("data").GetValues("学号")
Dim lst As new List(of String)
For Each s As String In ss
    Dim dr1 As DataRow = DataTables("data").Find("学号='" & s & "'","考次 desc")
    Dim dr2 As DataRow = DataTables("data").Find("学号='" & s & "'","考次 desc",1)
    Dim ds As String = dr1("班级") & "," & dr1("学号") & "," & dr1("姓名") & ",比较"
    For Each dc As DataCol In DataTables("data").DataCols
        If dc.Name<>"班级" AndAlso dc.Name<>"学号" AndAlso dc.Name<>"姓名" AndAlso dc.Name<>"考次"
            If dr1 IsNot Nothing AndAlso dr2 IsNot Nothing
                ds += "," & (dr2(dc.Name) - dr1(dc.Name))
            Else
                ds += "," & dr1(dc.Name)
            End If
        End If
    Next
    lst.Add(ds)
Next
For Each ls As String In lst
    Dim dr As DataRow = DataTables("data").AddNew
    For i As Integer = 0 To DataTables("data").DataCols.Count-1
        dr(Tables("data").Cols(i).Name) = ls.Split(",")(i)
    Next
Next
Tables("data").sort = "班级,学号,姓名,考次 desc"

谢谢正是我需要的[此贴子已经被作者于2018/11/18 0:49:03编辑过]


 回到顶部