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


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

主题:数据合并

帅哥哟,离线,有人找我吗?
透明人生
  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


加好友 发短信
等级:童狐 帖子: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("课程表")

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


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

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

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

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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
透明人生
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:童狐 帖子:223 积分:1732 威望:0 精华:0 注册:2019/10/19 23:00:00
  发帖心情 Post By:2020/3/31 21:57:00 [显示全部帖子]

如果出现不止一个班级,筛选后出现这样(筛选掉的学科仍然还在):

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20200331215821.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2020/3/31 21:58:48编辑过]

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


加好友 发短信
等级:童狐 帖子:223 积分:1732 威望:0 精华:0 注册:2019/10/19 23:00:00
  发帖心情 Post By:2020/3/31 22:23:00 [显示全部帖子]


[此贴子已经被作者于2020/4/19 16:21:18编辑过]

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


加好友 发短信
等级:童狐 帖子:223 积分:1732 威望:0 精华:0 注册:2019/10/19 23:00:00
  发帖心情 Post By:2020/3/31 23:10:00 [显示全部帖子]

老师,辛苦了,你真是太厉害了!
能不能把数据生成为以下格式,班级是根据原数据自动生成的,学科的下一行就跟着教师,在生成表格后,下面统计每位教师所教的哪几个学科及节数,如图。

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


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


加好友 发短信
等级:童狐 帖子:223 积分:1732 威望:0 精华:0 注册:2019/10/19 23:00:00
  发帖心情 Post By:2020/4/1 13:47:00 [显示全部帖子]

可以生成那样的表格不?

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


加好友 发短信
等级:童狐 帖子:223 积分:1732 威望:0 精华:0 注册:2019/10/19 23:00:00
  发帖心情 Post By:2020/4/1 20:25:00 [显示全部帖子]

1、自动生成年级和班级有问题,运行的时候会不断提示星期几的几年几班已存在,行数越多,提示越多,好像是5的倍数。
2、一定确定后,列已生成,但会提示列不存在。
3、最后合并的数据的代码太多,一天两个年级就那么多,有没有简便的方法。
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
Dim nj() As String = {"一","二","三","四","五","六"}
For Each n As String In nj
For Each r As DataRow In DataTables("中心表一").Select(Tables("中心表一").FIlter)
 DataTables("课程表").DataCols.Add("星期" & s & "_" & r("年级") & "_" & r("班级"),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("年级") & "' and 班级='" & dr1("班级") & "'and 节序='" & dr1("节序") & "'")
    If dr2 Is Nothing Then
        dr2 = DataTables("课程表").AddNew()
    End If
dr2("星期一_一年级_(1)") = dr2("星期一_一年级_(1)") + dr1("星期_一")
dr2("星期一_一年级_(2)") = dr2("星期一_一年级_(2)") + dr1("星期_一")
dr2("星期一_一年级_(3)") = dr2("星期一_一年级_(3)") + dr1("星期_一")
dr2("星期一_一年级_(4)") = dr2("星期一_一年级_(4)") + dr1("星期_一")
dr2("星期一_二年级_(1)") = dr2("星期一_二年级_(1)") + dr1("星期_一")
dr2("星期一_二年级_(2)") = dr2("星期一_二年级_(2)") + dr1("星期_一")
dr2("星期一_二年级_(3)") = dr2("星期一_二年级_(3)") + dr1("星期_一")
dr2("星期一_二年级_(4)") = dr2("星期一_二年级_(4)") + dr1("星期_一")
dr2("星期一_三年级_(1)") = dr2("星期一_三年级_(1)") + dr1("星期_一")
dr2("星期一_三年级_(2)") = dr2("星期一_三年级_(2)") + dr1("星期_一")
dr2("星期一_三年级_(3)") = dr2("星期一_三年级_(3)") + dr1("星期_一")
dr2("星期一_三年级_(4)") = dr2("星期一_三年级_(4)") + dr1("星期_一")
Next

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