Foxtable(狐表)用户栏目专家坐堂 → [求助]表格转换


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

主题:[求助]表格转换

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


加好友 发短信
等级:幼狐 帖子:154 积分:1535 威望:0 精华:0 注册:2011/8/29 20:48:00
[求助]表格转换  发帖心情 Post By:2016/4/21 18:14:00 [只看该作者]

请高手给看看问题出在哪里了?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:表格转换.zip


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/21 18:32:00 [只看该作者]

Dim dtb As New DataTableBuilder("表B")
Dim Names As New List(Of String) 

dtb.AddDef("班级",Gettype(String),10)
dtb.AddDef("姓名",Gettype(String),10)
For Each v As String In DataTables("学生成绩").GetValues("科目")
    dtb.AddDef(v, Gettype(Double))
Names.Add(v) 
Next
dtb.Build()
For Each v As String() In DataTables("学生成绩").GetValues("班级|姓名")
    Dim dr1 As DataRow = DataTables("表B").AddNew()
    dr1("班级") = v(0)
    dr1("姓名") = v(1)
    For Each dr2 As DataRow In DataTables ("学生成绩").Select("班级 = '" & v(0) & "' And 姓名 = '" & v(1) & "'")
        dr1(dr2("科目")) = dr2("分数")
    Next
Next

Dim s As String
For i As Integer = 0 To names.Count - 1
    s = s & "+isnull(" & names(i) & ",0)"
Next

DataTables("表B").DataCols.Add("总分",Gettype(Double),s.trim("+"))    ',"[语文] + [英语] + [数学] + [物理] + [化学]")
MainTable = Tables("表B")


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


加好友 发短信
等级:幼狐 帖子:154 积分:1535 威望:0 精华:0 注册:2011/8/29 20:48:00
  发帖心情 Post By:2016/4/21 18:41:00 [只看该作者]

哦。学习了。O(∩_∩)O谢谢。

代码比我的简洁很。

可是我的错在哪里了呢?

不应该加双引号吗?

 


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


加好友 发短信
等级:幼狐 帖子:154 积分:1535 威望:0 精华:0 注册:2011/8/29 20:48:00
  发帖心情 Post By:2016/4/21 19:00:00 [只看该作者]

出错提示:


图片点击可在新窗口打开查看此主题相关图片如下:转换表格错误.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:幼狐 帖子:154 积分:1535 威望:0 精华:0 注册:2011/8/29 20:48:00
  发帖心情 Post By:2016/4/21 19:02:00 [只看该作者]

嗯,好了。代码写错了。

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


加好友 发短信
等级:幼狐 帖子:154 积分:1535 威望:0 精华:0 注册:2011/8/29 20:48:00
  发帖心情 Post By:2016/4/21 19:17:00 [只看该作者]

科目里有“SERVER”就会出错,这个怎么弄啊?
[此贴子已经被作者于2016/4/21 19:18:27编辑过]

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


加好友 发短信
等级:幼狐 帖子:154 积分:1535 威望:0 精华:0 注册:2011/8/29 20:48:00
  发帖心情 Post By:2016/4/21 19:28:00 [只看该作者]

是有空格的原因


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/21 20:20:00 [只看该作者]

Dim dtb As New DataTableBuilder("表B")
Dim Names As New List(Of String) 

dtb.AddDef("班级",Gettype(String),10)
dtb.AddDef("姓名",Gettype(String),10)
For Each v As String In DataTables("学生成绩").GetValues("科目", "科目 is not null")
    dtb.AddDef(v.Trim, Gettype(Double))
    Names.Add(v.Trim) 
Next
dtb.Build()
For Each v As String() In DataTables("学生成绩").GetValues("班级|姓名")
    Dim dr1 As DataRow = DataTables("表B").AddNew()
    dr1("班级") = v(0)
    dr1("姓名") = v(1)
    For Each dr2 As DataRow In DataTables ("学生成绩").Select("班级 = '" & v(0) & "' And 姓名 = '" & v(1) & "'")
        dr1(dr2("科目")) = dr2("分数")
    Next
Next

Dim s As String
For i As Integer = 0 To names.Count - 1
    s = s & "+isnull([" & names(i) & "],0)"
Next

DataTables("表B").DataCols.Add("总分",Gettype(Double),s.trim("+"))   
MainTable = Tables("表B")


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


加好友 发短信
等级:幼狐 帖子:177 积分:1718 威望:0 精华:0 注册:2017/3/26 10:20:00
  发帖心情 Post By:2018/8/19 22:21:00 [只看该作者]

反方向转换的时候怎么弄?会了吗?我正好反向转换的问题。


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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/19 22:23:00 [只看该作者]


 回到顶部