Foxtable(狐表)用户栏目专家坐堂 → 数据合并


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

主题:数据合并

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


加好友 发短信
等级:超级版主 帖子:106046 积分:539323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/30 8:54:00 [显示全部帖子]

For Each dr1 As DataRow In DataTables("表A").datarows
Dim dr2 As DataRow = DataTables("表B").find("第一列='" & dr1("第一") & "' and 第二列='" & dr1("") & "'")
if dr2 is nothing then
    dr2 = DataTables("表B").AddNew()
    
dr2("") = dr1("")
else
dr2("") = dr2("") + dr1("")
end if
Next

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


加好友 发短信
等级:超级版主 帖子:106046 积分:539323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/30 22:20:00 [显示全部帖子]

For Each dr1 As DataRow In DataTables("中心表一").DataRows
    Dim dr2 As DataRow = DataTables("课程表").find("学校='" & dr1("学校") & "' and 年级='" & dr1("年级") & "' and 班级='" & dr1("班级") & "'and 节序='" & dr1("节序") & "'")
    If dr2 Is Nothing Then
        dr2 = DataTables("课程表").AddNew()
    End If
    dr2("星期_一") = dr2("星期_一") + dr1("星期_一")
    dr2("星期_二") = dr1("星期_二") + dr2("星期_二")
    dr2("星期_三") = dr1("星期_三") + dr2("星期_三")
    dr2("星期_四") = dr1("星期_四") + dr2("星期_四")
    dr2("星期_五") = dr1("星期_五") + dr2("星期_五")
Next

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


加好友 发短信
等级:超级版主 帖子:106046 积分:539323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/30 22:32:00 [显示全部帖子]

分组的时候就重复了吧!或者数据有问题

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


加好友 发短信
等级:超级版主 帖子:106046 积分:539323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/30 22:45:00 [显示全部帖子]

请上传实例测试

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


加好友 发短信
等级:超级版主 帖子:106046 积分:539323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/31 8:58:00 [显示全部帖子]

分组本身就已经重复了

Dim b As New SQLGroupTableBuilder("课程表","灵川中心表一")
b.C
b.FIlter = DataTables("灵川中心表一").loadFIlter
If Tables("灵川中心表一").FIlter > "" Then
    b.FIlter = IIF(b.FIlter > "", b.FIlter & " and ","") & Tables("灵川中心表一").FIlter
End If
b.Groups.AddDef("学校")
b.Groups.AddDef("年级")
b.Groups.AddDef("班级")
b.Groups.AddDef("节序")
b.build()
MainTable = Tables("课程表")
Dim sr() As String = {"一","二","三","四","五"}
For Each s As String In sr
    DataTables("课程表").DataCols.Add("星期_" & s,Gettype(String),16)
Next

For Each dr1 As DataRow In DataTables("灵川中心表一").DataRows
    Dim dr2 As DataRow = DataTables("课程表").find("学校='" & dr1("学校") & "' and 年级='" & dr1("年级") & "' and 班级='" & dr1("班级") & "'and 节序='" & dr1("节序") & "'")
    If dr2 Is Nothing Then
        dr2 = DataTables("课程表").AddNew()
    End If
    dr2("星期_一") = dr2("星期_一") + dr1("星期_一")
    dr2("星期_二") = dr1("星期_二") + dr2("星期_二")
    dr2("星期_三") = dr1("星期_三") + dr2("星期_三")
    dr2("星期_四") = dr1("星期_四") + dr2("星期_四")
    dr2("星期_五") = dr1("星期_五") + dr2("星期_五")
Next

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


加好友 发短信
等级:超级版主 帖子:106046 积分:539323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/31 22:07:00 [显示全部帖子]

上传有问题的实例测试

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


加好友 发短信
等级:超级版主 帖子:106046 积分:539323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/31 22:37:00 [显示全部帖子]

For Each dr1 As DataRow In DataTables("灵川中心表一").datarows

改为
For Each dr1 As DataRow In DataTables("灵川中心表一").Select(Tables("灵川中心表一").FIlter)

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


加好友 发短信
等级:超级版主 帖子:106046 积分:539323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/1 14:08:00 [显示全部帖子]

同样的用法手工添加列即可

DataTables("课程表").DataCols.Add

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


加好友 发短信
等级:超级版主 帖子:106046 积分:539323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/2 10:55:00 [显示全部帖子]

Dim b As New SQLGroupTableBuilder("课程表","灵川中心表一")
b.ConnectionName = "城厢区灵川中心小学数据库"
b.FIlter = DataTables("灵川中心表一").loadFIlter
If Tables("灵川中心表一").FIlter > "" Then
    b.FIlter = IIF(b.FIlter > "", b.FIlter & " and ","") & Tables("灵川中心表一").FIlter
End If
b.Groups.AddDef("学校")
b.Groups.AddDef("节序")
b.build()


Tables("课程表").StopRedraw
Dim sr() As String = {"一","二","三","四","五"}
Dim nj() As String = {"一","二","三","四","五","六"}
Dim filter As String = Tables("灵川中心表一").FIlter
If filter > "" Then filter = filter & " And "
For Each s As String In sr
    For Each n As String In nj
        For i As Integer = 1 To 4
            DataTables("课程表").DataCols.Add("星期" & s & "_" & n & "年级_(" & i & ")",Gettype(String),16)
        Next
    Next
Next
For Each dr1 As DataRow In DataTables("灵川中心表一").Select(Tables("灵川中心表一").FIlter)
    Dim dr2 As DataRow = DataTables("课程表").find("学校='" & dr1("学校") & "' and 节序='" & dr1("节序") & "'")
    If dr2 Is Nothing Then
        dr2 = DataTables("课程表").AddNew()
    End If
    For Each s As String In sr
        dr2("星期" & s & "_" & dr1("年级") & "_" & dr1("班级")) = dr1("星期_" & s)
    Next
Next
Tables("课程表").ResumeRedraw

MainTable = Tables("课程表")

[此贴子已经被作者于2020/4/2 10:54:46编辑过]

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


加好友 发短信
等级:超级版主 帖子:106046 积分:539323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/2 17:08:00 [显示全部帖子]

1、只能按最大的班级数设置,因为可能不同学校的班级数是不一样的
2、从最后一行开始往前遍历,插入一行,然后复制前2列数据,教师的填充参考学科的用法

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