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


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

主题:数据合并

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


加好友 发短信
等级:童狐 帖子:223 积分:1732 威望:0 精华:0 注册:2019/10/19 23:00:00
数据合并  发帖心情 Post By:2020/3/30 0:19:00 [只看该作者]

左边四列是表A,如何动态生成右边的表。(可以一次性解决吗:如果同位置有字符在,合并在同一位置,如果同位置是数值,直接相加。)

第一列 第二列 第三列 第四列 第一列 第二列 第四列
a 1 q 公司1 a 1 公司1
a 2 a 2 单位1
a 3 q 公司2 a 3 公司2
a 4 a 4 单位2
a 5 q 公司3 a 5 公司3
a 1
a 2 w 单位1
a 3
a 4 w 单位2
a 5


[此贴子已经被作者于2020/3/30 0:23:38编辑过]

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望: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

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


加好友 发短信
等级:童狐 帖子:223 积分:1732 威望:0 精华:0 注册:2019/10/19 23:00:00
  发帖心情 Post By:2020/3/30 22:02:00 [只看该作者]

按原来的代码不行,现改为以下代码,但还要把班级课程表中相同的节序合并成一行,每天的课程随着节序的合并而合并,应该再加哪个代码?

图片点击可在新窗口打开查看此主题相关图片如下:原个人课程表.png
图片点击可在新窗口打开查看



图片点击可在新窗口打开查看此主题相关图片如下:动态合并成班级课程表.png
图片点击可在新窗口打开查看


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.Groups.AddDef("星期_一")
b.Groups.AddDef("星期_二")
b.Groups.AddDef("星期_三")
b.Groups.AddDef("星期_四")
b.Groups.AddDef("星期_五")
b.build()
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()
   dr2("星期_一") = dr2("星期_一") + dr1("星期_一")
dr2("星期_二") = dr1("星期_二") + dr2("星期_二")
dr2("星期_三") = dr1("星期_三") + dr2("星期_三")
dr2("星期_四") = dr1("星期_四") + dr2("星期_四")
dr2("星期_五") = dr1("星期_五") + dr2("星期_五")
End If
Next
MainTable = Tables("课程表")

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望: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

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


加好友 发短信
等级:童狐 帖子:223 积分:1732 威望:0 精华:0 注册:2019/10/19 23:00:00
  发帖心情 Post By:2020/3/30 22:27:00 [只看该作者]

还不行,节序中还是有是相同的,如:上午第1节、第2节等还是两行。

图片点击可在新窗口打开查看此主题相关图片如下:合并后.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/30 22:32:00 [只看该作者]

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

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


加好友 发短信
等级:童狐 帖子:223 积分:1732 威望:0 精华:0 注册:2019/10/19 23:00:00
  发帖心情 Post By:2020/3/30 22:38:00 [只看该作者]

第3楼中的代码,节序就重复,就是想把两行相同的节序合并为一行,后面每天的课程也合并为一行。

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/30 22:45:00 [只看该作者]

请上传实例测试

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


加好友 发短信
等级:童狐 帖子:223 积分:1732 威望:0 精华:0 注册:2019/10/19 23:00:00
  发帖心情 Post By:2020/3/30 23:39:00 [只看该作者]

谢谢!
[此贴子已经被作者于2020/3/31 22:23:33编辑过]

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望: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

 回到顶部
总数 82 1 2 3 4 5 6 7 8 9 下一页