Foxtable(狐表)用户栏目专家坐堂 → 数据转换问题


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

主题:数据转换问题

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


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

Dim dtb As New DataTableBuilder("表B")
dtb.AddDef("姓名", GetType(String), 32)
For Each v As String In DataTables("表A").GetValues("课程")
    dtb.AddDef(v & "_分数", GetType(Double))
    dtb.AddDef(v & "_实际分数", GetType(Double))
Next
dtb.Build()
For Each v As String In DataTables("表A").GetValues("姓名","审核=‘未审核’")
    Dim dr1 As DataRow = DataTables("表B").AddNew()
    dr1("姓名") = v
    For Each dr2 As DataRow In DataTables("表A").select("姓名='" & v & "' and 审核=‘未审核’")
       dr1(dr2("课程") & "_分数") = dr2("分数")
       dr1(dr2("课程") & "_实际") = dr2("实际")
    Next
Next
MainTable = Tables("表B")

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


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

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码出错

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


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

自己加上日期列赋值的代码即可

主表只能预先创建好,无法使用代码创建

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


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

贴出完整代码

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


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

如果是合法的日期字符串,会自动转换为日期类型的对象的,不需要转换。

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


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

Dim dtb As New DataTableBuilder("B")
dtb.AddDef(
"姓名"Gettype(String), 32)
For Each 
v As String In DataTables("A").GetValues("课程")
    
dtb.AddDef(v, Gettype(Double))
Next

Tables("行转列_表B").DataSource = dtb.BuildDataSource()
For Each 
v As String In DataTables("A").GetValues("姓名")
    
Dim dr1 As DataRow = DataTables("行转列_表B").AddNew()
    dr1(
"姓名") = v
    
For Each dr2 As DataRow In DataTables("A").DataRows
        
If dr2("姓名") = v Then
            dr1(dr2(
"课程")) = dr2("分数")
        
End If
    
Next
Next



 回到顶部