Foxtable(狐表)用户栏目专家坐堂 → 三表连接,横向排列


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

主题:三表连接,横向排列

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


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

Dim dtb As New DataTableBuilder("横向大货用料表1")
dtb.AddDef("物料名称", Gettype(String), 200)
dtb.AddDef("物料ID", Gettype(String),25)
dtb.AddDef("款号", Gettype(String),100)

For Each v As String In DataTables("配色表").GetValues("颜色信息")
    dtb.AddDef("颜色_" & v, Gettype(String))
Next
For Each v As String In DataTables("配码表").GetValues("尺码信息")
    dtb.AddDef("尺码_" & v, Gettype(String))
Next
Dim t As Table = Forms("大货用量表").Controls("Table2").Table
t.datasource = dtb.BuildDataSource
For Each v As String() In DataTables("配色表").GetValues("款号|物料ID|物料名称")
    Dim dr1 As Row = t.AddNew()
    dr1("款号") = v(0)
    dr1("物料ID") = v(1)
    dr1("物料名称") = v(2)
   
   
    For Each dr2 As DataRow In DataTables("配色表").Select("物料ID = '" & v(1) & "' And 物料名称 = '" & v(2) & "'")
        dr1("颜色_" & dr2("颜色信息")) = dr2("配色信息")
    Next
Next
For Each v As String() In DataTables("配码表").GetValues("款号|物料ID|物料名称")
    Dim dr1 = t.DataTable.Find("物料名称 = '" & v(2) & "'")
    If dr1 Is Nothing Then dr1 = t.DataTable.addnew
    dr1("款号") = v(0)
    dr1("物料ID") = v(1)
    dr1("物料名称") = v(2)
    For Each dr2 As DataRow In DataTables("配码表").Select("物料ID = '" & v(1) & "' And 物料名称 = '" & v(2) & "'")
        dr1("尺码_" & dr2("尺码信息")) = dr2("配码信息")
    Next
Next


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


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

多出了一行,可以调整成一行吗?


[此贴子已经被作者于2018/8/14 17:47:01编辑过]

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


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

代码没问题,绝对是你数据有问题。把【物料名称】列拉宽一些看看数据。

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


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

是生成新的物料名称的长度不够自动被截取了,所以就多了一行,如何定义新增物料名称的长度

另外要写条件只加载对当前款的数据进行合并,要加条件怎么加?
[此贴子已经被作者于2018/8/14 17:47:22编辑过]

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


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

Dim dtb As New DataTableBuilder("横向大货用料表1")
dtb.AddDef("物料名称", Gettype(String), 999)
dtb.AddDef("物料ID", Gettype(String),25)
dtb.AddDef("款号", Gettype(String),100)

For Each v As String In DataTables("配色表").GetValues("颜色信息")
    dtb.AddDef("颜色_" & v, Gettype(String))
Next
For Each v As String In DataTables("配码表").GetValues("尺码信息")
    dtb.AddDef("尺码_" & v, Gettype(String))
Next
Dim t As Table = Forms("大货用量表").Controls("Table2").Table
t.datasource = dtb.BuildDataSource
For Each v As String() In DataTables("配色表").GetValues("款号|物料ID|物料名称")
    Dim dr1 As Row = t.AddNew()
    dr1("款号") = v(0)
    dr1("物料ID") = v(1)
    dr1("物料名称") = v(2)
   
   
    For Each dr2 As DataRow In DataTables("配色表").Select("物料ID = '" & v(1) & "' And 物料名称 = '" & v(2) & "'")
        dr1("颜色_" & dr2("颜色信息")) = dr2("配色信息")
    Next
Next
For Each v As String() In DataTables("配码表").GetValues("款号|物料ID|物料名称")
    Dim dr1 = t.DataTable.Find("物料id = '" & v(1) & "'")
    If dr1 Is Nothing Then dr1 = t.DataTable.addnew
    dr1("款号") = v(0)
    dr1("物料ID") = v(1)
    dr1("物料名称") = v(2)
    For Each dr2 As DataRow In DataTables("配码表").Select("物料ID = '" & v(1) & "' And 物料名称 = '" & v(2) & "'")
        dr1("尺码_" & dr2("尺码信息")) = dr2("配码信息")
    Next
Next


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


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

匹配值改为物料ID就不存在长名的情况了,谢谢

另外要写条件只加载对当前款的数据进行合并,我改了一下代码:却提示:无法找到列 and [款号] = '123'。应该是哪个地方加条件多余了,(主要是还没有透彻理解整个代码),应该怎么修改。

Dim dtb As New DataTableBuilder("横向大货用料表1")

 Dim pd As WinForm.ComboBox = Forms("大货用量表").Controls("ComboBox1")
dtb.AddDef("物料名称", Gettype(String), 200)
dtb.AddDef("物料ID", Gettype(String),25)
dtb.AddDef("款号", Gettype(String),100)

For Each v As String In DataTables("配色表").GetValues("颜色信息","[款号] = '" & pd.text & "'")
    dtb.AddDef("颜色_" & v, Gettype(String))
Next
For Each v As String In DataTables("配码表").GetValues("尺码信息","[款号] = '" & pd.text & "'")
    dtb.AddDef("尺码_" & v, Gettype(String))
Next
Dim t As Table = Forms("大货用量表").Controls("Table2").Table
t.datasource = dtb.BuildDataSource
For Each v As String() In DataTables("配色表").GetValues("款号|物料ID|物料名称")
    Dim dr1 As Row = t.AddNew()
     dr1("款号") = v(0)
    dr1("物料ID") = v(1)
    dr1("物料名称") = v(2)


    For Each dr2 As DataRow In DataTables("配色表").Select("物料ID = '" & v(1) & "' And 物料名称 = '" & v(2) & "' and  [款号] = '" & pd.text & "'")
        dr1("颜色_" & dr2("颜色信息")) = dr2("配色信息")
    Next
Next
For Each v As String() In DataTables("配码表").GetValues("款号|物料ID|物料名称")
    Dim dr1 = t.DataTable.Find("物料名称 = '" & v(1) & "'","and [款号] = '" & pd.text & "'")
       
    If dr1 Is Nothing Then dr1 = t.DataTable.addnew
     dr1("款号") = v(0)
    dr1("物料ID") = v(1)
    dr1("物料名称") = v(2)
    For Each dr2 As DataRow In DataTables("配码表").Select("物料ID = '" & v(1) & "' And 物料名称 = '" & v(2) & "' and [款号] = '" & pd.text & "'")
        dr1("尺码_" & dr2("尺码信息")) = dr2("配码信息")
    Next
Next


 Tables("大货用量表_table2").Filter = "[款号] = '" & pd.text & "'"
[此贴子已经被作者于2018/8/14 16:07:51编辑过]

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


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

Dim dtb As New DataTableBuilder("横向大货用料表1")

 Dim pd As WinForm.ComboBox = Forms("大货用量表").Controls("ComboBox1")
dtb.AddDef("物料名称", Gettype(String), 200)
dtb.AddDef("物料ID", Gettype(String),25)
dtb.AddDef("款号", Gettype(String),100)

For Each v As String In DataTables("配色表").GetValues("颜色信息","[款号] = '" & pd.text & "'")
    dtb.AddDef("颜色_" & v, Gettype(String))
Next
For Each v As String In DataTables("配码表").GetValues("尺码信息","[款号] = '" & pd.text & "'")
    dtb.AddDef("尺码_" & v, Gettype(String))
Next
Dim t As Table = Forms("大货用量表").Controls("Table2").Table
t.datasource = dtb.BuildDataSource
For Each v As String() In DataTables("配色表").GetValues("款号|物料ID|物料名称")
    Dim dr1 As Row = t.AddNew()
     dr1("款号") = v(0)
    dr1("物料ID") = v(1)
    dr1("物料名称") = v(2)


    For Each dr2 As DataRow In DataTables("配色表").Select("物料ID = '" & v(1) & "' And 物料名称 = '" & v(2) & "' and  [款号] = '" & pd.text & "'")
        dr1("颜色_" & dr2("颜色信息")) = dr2("配色信息")
    Next
Next
For Each v As String() In DataTables("配码表").GetValues("款号|物料ID|物料名称")
    Dim dr1 = t.DataTable.Find("物料名称 = '" & v(1) & "' and [款号] = '" & pd.text & "'")
       
    If dr1 Is Nothing Then dr1 = t.DataTable.addnew
     dr1("款号") = v(0)
    dr1("物料ID") = v(1)
    dr1("物料名称") = v(2)
    For Each dr2 As DataRow In DataTables("配码表").Select("物料ID = '" & v(1) & "' And 物料名称 = '" & v(2) & "' and [款号] = '" & pd.text & "'")
        dr1("尺码_" & dr2("尺码信息")) = dr2("配码信息")
    Next
Next


 Tables("大货用量表_table2").Filter = "[款号] = '" & pd.text & "'"

 回到顶部
总数 27 上一页 1 2 3