Foxtable(狐表)用户栏目专家坐堂 → 垂直表转为水平表错误


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

主题:垂直表转为水平表错误

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


加好友 发短信
等级:超级版主 帖子:107178 积分:545139 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/15 20:16:00 [显示全部帖子]

试试

For Each v As String In DataTables("自测成绩表").GetValues("学科","学科 is not null")

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


加好友 发短信
等级:超级版主 帖子:107178 积分:545139 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/16 8:36:00 [显示全部帖子]

1、Tables("成绩表").FIlter = Tables("自测成绩表").FIlter
2、
方法1:创建临时表加上所有的学科
Dim dtb As New DataTableBuilder("成绩表")
dtb.AddDef("姓名", Gettype(String), 32)
For Each v As String In "语文,数学,英语,其它科目...".split(",")
    dtb.AddDef(v,Gettype(Double))
Next
dtb.Build()

方法2:动态合成表达式
dim s as string = "0 "
For Each v As String In DataTables("自测成绩表").GetValues("学科")
s = s & " + isnull([" & v & "],0)" 
next
DataTables("成绩表").DataCols.Add("总分",Gettype(Double), s)


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


加好友 发短信
等级:超级版主 帖子:107178 积分:545139 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/16 20:50:00 [显示全部帖子]

如果两个表的结构不一样,不能直接这样用的

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


加好友 发短信
等级:超级版主 帖子:107178 积分:545139 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/17 8:46:00 [显示全部帖子]

肯定可以。请上传实例说明

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


加好友 发短信
等级:超级版主 帖子:107178 积分:545139 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/17 20:38:00 [显示全部帖子]

msgbox(Tables("自测成绩表").FIlter )具体是什么条件?按什么条件筛选?

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


加好友 发短信
等级:超级版主 帖子:107178 积分:545139 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/17 20:40:00 [显示全部帖子]

For Each v As String In DataTables("自测成绩表").GetValues("学科",Tables("自测成绩表").FIlter)

    dtb.AddDef(v, Gettype(Double))

s = s & " + isnull([" & v & "],0)" 

Next

dtb.Build()

For Each v As String() In DataTables("自测成绩表").GetValues("学校|年级|班级|单元|座号|姓名",Tables("自测成绩表").FIlter)

    Dim dr1 As DataRow = DataTables("自测水平表").AddNew()

    dr1("学校") = v(0)

    dr1("年级") = v(1)

    dr1("班级") = v(2)

    dr1("单元") = v(3)

    dr1("座号") = v(4)

    dr1("姓名") = v(5)

    For Each dr2 As DataRow In DataTables ("自测成绩表").Select("学校 = '" & v(0) & "'and 年级 = '" & v(1) & "' And 班级 = '" & v(2) & "'and 单元 = '" & v(3) & "'and 座号 = '" & v(4) & "' And 姓名 = '" & v(5) & "'") ‘不知道具体数据是什么样的不确定这里是否也添加Tables("自测成绩表").FIlter条件,自己根据数据判断一下

        dr1(dr2("学科")) = dr2("分数")

    Next

Next

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


加好友 发短信
等级:超级版主 帖子:107178 积分:545139 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/17 23:00:00 [显示全部帖子]

请贴出更改后的完整代码

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


加好友 发短信
等级:超级版主 帖子:107178 积分:545139 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/17 23:07:00 [显示全部帖子]

For Each v As String In DataTables("自测成绩表").GetValues("学科",IIF(Tables("自测成绩表").FIlter>"",Tables("自测成绩表").FIlter & " and 学科 is not null", "学科 is not null"))


For Each dr2 As DataRow In DataTables ("自测成绩表").Select("学校 = '" & v(0) & "'and 年级 = '" & v(1) & "' And 班级 = '" & v(2) & "'and 单元 = '" & v(3) & "'and 座号 = '" & v(4) & "' And 姓名 = '" & v(5) & "' and " & IIF(Tables("自测成绩表").FIlter> "",Tables("自测成绩表").FIlter, "1=1"))

GetValues和Select的用法建议认真看一看帮助,而不是只会抄

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


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

生成的统计表数据是怎么样的?截图看看,目录树勾选的代码发上来

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


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

出错时显示一下最终的条件看看

msgbox(flt)

 回到顶部
总数 16 1 2 下一页