Foxtable(狐表)用户栏目专家坐堂 → 垂直表和水平表的转换


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

主题:垂直表和水平表的转换

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
垂直表和水平表的转换  发帖心情 Post By:2018/7/17 9:00: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

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 & "'")
       dr1(dr2("课程")) = dr2("分数")
   
Next
Next
MainTable = Tables(
"表B")


请问老师,这里的表B,转换后还是临时表,表B数据内容编辑后,如何存储表B到外部数据源的sql数据库。好比下面的统计表,要编辑后再存储到外部数据源怎么做?




Dim tbl As Table = Tables("选择款_Table1")
Dim pd As WinForm.ComboBox = Forms("窗口").Controls("ComboBox1")
If tbl.Current IsNot Nothing Then
    pd.text = tbl.Current("款号")
End If

'用SQL语句生成临时表
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "Select * F ROM {款号登记} left JOIN {款式颜色} ON {款号登记}.款号 = {款式颜色}.款号 left join {款式尺码} on {款号登记}.{款号}= {款式尺码}.{款号} "
dt = cmd.ExecuteReader()
'对临时进行分组统计
Dim b As New CrossTableBuilder("大货用量颜色尺码",dt)
b.HGroups.AddDef("物料基本信息_序号")
b.HGroups.AddDef("物料基本信息_物料大类")
b.HGroups.AddDef("物料基本信息_客供")
b.HGroups.AddDef("物料基本信息_物料名称")
b.HGroups.AddDef("物料基本信息_物料辅助说明")
b.HGroups.AddDef("物料基本信息_部位及用途")
b.HGroups.AddDef("物料基本信息_布封")
b.HGroups.AddDef("物料基本信息_克重")
b.HGroups.AddDef("物料基本信息_单位")
b.HGroups.AddDef("物料基本信息_版规格配色要求")
b.HGroups.AddDef("物料基本信息_不分色")
b.HGroups.AddDef("物料基本信息_适用颜色")
b.HGroups.AddDef("物料基本信息_同色")
b.HGroups.AddDef("物料基本信息_同量")
b.HGroups.AddDef("物料基本信息_分码")
b.HGroups.AddDef("物料基本信息_适用尺码")
b.HGroups.AddDef("物料基本信息_物料编码")
b.HGroups.AddDef("用量信息_待定")
b.HGroups.AddDef("用量信息_上级")
b.HGroups.AddDef("用量信息_领料部门")
b.HGroups.AddDef("用量信息_变更日期")
b.HGroups.AddDef("用量信息_下级")
b.HGroups.AddDef("供应商属性_供应商名称")
b.HGroups.AddDef("供应商属性_转换率")
b.HGroups.AddDef("供应商属性_采购单位")
b.HGroups.AddDef("供应商属性_成份")



b.VGroups.AddDef("颜色名称")
b.VGroups.AddDef("尺码名称")



b.HorizontalTotal = True
b.VerticalTotal = True
b.Build()
' MainTable = Tables("横向出货计划1")
Tables("窗口_Table2").DataSource = b.BuildDataSource()

DataTables("窗口_Table2").load()





Forms("选择款").Close()

[此贴子已经被作者于2018/7/17 9:22:58编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/17 10:03:00 [只看该作者]

1、加入一列临时列,编写datacolchanged事件,如果修改了列值,记录为修改;如果是新增行,记录为新增;

 

2、做一个保存按钮,循环表格的每一行,根据临时列知道是否新增或修改,然后查找各个表的数据find修改值,或者addnew新增值


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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/7/17 10:11:00 [只看该作者]

存储到外部数据源怎么写?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/17 11:02:00 [只看该作者]

以下是引用yetle在2018/7/17 10:11:00的发言:
存储到外部数据源怎么写?

 

sqlfind或者find查找到对应的行(根据主键列查找)


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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/7/18 13:54:00 [只看该作者]

这个比较复杂,不知道怎么写,何从下手

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/18 15:37:00 [只看该作者]

1、会开启datacolchanged事件了没有?
 
http://www.foxtable.com/webhelp/scr/0671.htm

 
2、编写查询表的datacolchanged事件,查找原始表的行,赋值过去。
 
http://www.foxtable.com/webhelp/scr/1451.htm

 


 回到顶部