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


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

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

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


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

明白了,你给的是临时表,我给的是窗口表,所以有错误提示,能不能直接放在窗口表呢?或者窗口表如何引用临时表呢?(我需要直接在窗口显示横向查询结果)
那回到一楼,三表连接怎么写?
[此贴子已经被作者于2018/8/13 15:42:33编辑过]

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


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

Dim dtb As New DataTableBuilder("大货用量表_横向配色表123")

dtb.AddDef("物料名称", Gettype(String), 200)


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("Table1").Table
t.datasource = dtb.BuildDataSource
For Each v As String In DataTables("配色表").GetValues("物料名称")
    Dim dr1 As Row = t.AddNew()
    dr1("物料名称") = v
    For Each dr2 As DataRow In DataTables("配色表").Select("物料名称 = '" & v & "'")
        dr1("颜色_" & dr2("颜色信息")) = dr2("配色信息")
    Next
Next
For Each v As String In DataTables("配码表").GetValues("物料名称")
    Dim dr1 = t.DataTable.Find("物料名称 = '" & v & "'")
    If dr1 Is Nothing Then dr1 = t.DataTable.addnew
    dr1("物料名称") = v
    For Each dr2 As DataRow In DataTables("配码表").Select("物料名称 = '" & v & "'")
        dr1("尺码_" & dr2("尺码信息")) = dr2("配码信息")
    Next
Next


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


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

1、第一个表没有连接;
2、垂直列只有一列,我参照帮助加第二列和第三列提示:从类型“String()”到类型“String”的转换无效。
Dim dtb As New DataTableBuilder("横向大货用料表")
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("Table1").Table
t.datasource = dtb.BuildDataSource
For Each v As String In DataTables("配色表").GetValues("物料ID|物料名称")
    Dim dr1 As Row = t.AddNew()
    dr1("物料ID") = v(0)
    dr1("物料名称") = v(1)
   dr1("款号") = v(2)

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


Dim pd As WinForm.ComboBox = Forms("大货用量表").Controls("ComboBox1")
Tables("大货用量表_table1").Filter = "[款号] = '" & pd.text & "'"
[此贴子已经被作者于2018/8/13 17:44:44编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2018/8/13 19:09:00 [只看该作者]


Dim b As New SQLCrossTableBuilder("統計","配量表")
b.HGroups.AddDef("款號") '添加客户列用于水平分组
b.HGroups.AddDef("物料")

For Each s1 As String In Lst
    b.HGroups.AddExp("顏色信息_"  & s1 ,"款號")
Next



b.VGroups.AddDef("尺碼信息") '添加产品列用于垂直分组
b.Totals.AddDef("用量信息") '添加数量列用于统计
b.Build '生成统计表

Dim dr1,dr2 As DataRow

For Each dr2  In DataTables("統計").DataRows
    For Each s1 As String In Lst
        
        dr1= DataTables("配色表").Find("款號 ='" & dr2("款號")  & "'  And 物料 ='" & dr2("物料") & "' And 顏色信息 ='" &  s1 & "'")
        If dr1 IsNot Nothing Then
            dr2("顏色信息_"  & s1) = dr1("配色信息")
            
        End If
    Next
Next

Dim s2 As String
For Each c1 As  DataCol  In DataTables("統計").DataCols
    If c1.Name.Contains("用量信息_")  Then
        C1.Caption = "尺碼信息_"  & C1.Caption
    End If
    
Next
DataTables("統計") .BuildHeader()


MainTable = Tables("統計") '打开生成的统计表

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


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

Dim dtb As New DataTableBuilder("横向大货用料表")
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("Table1").Table
t.datasource = dtb.BuildDataSource
For Each v As String() In DataTables("配色表").GetValues("物料ID|物料名称|款号")
    Dim dr1 As Row = t.AddNew()
    dr1("物料ID") = v(0)
    dr1("物料名称") = v(1)
    dr1("款号") = v(2)

    For Each dr2 As DataRow In DataTables("配色表").Select("物料ID = '" & v(0) & "' And 物料名称 = '" & v(1) & "' and 款号 ='" & v(2) &"'")
        dr1("颜色_" & dr2("颜色信息")) = dr2("配色信息")
    Next
Next

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


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

提示从类型“String()”到类型“String”的转换无效。执行代码后,配码表没有出来结果,我想是配色表的string()类型和配码表得string类型不匹配,但我将配码表的类型改为string()后又提示: Dim dr1 = t.DataTable.Find("物料名称 = '" & v & "'")这句代码错,没有为类型string和string的1维数组定义运算符&
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 & "'")
    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


Dim pd As WinForm.ComboBox = Forms("大货用量表").Controls("ComboBox1")
Tables("大货用量表_table1").Filter = "[款号] = '" & pd.text & "'"这一句提示=缺少操作连接符
[此贴子已经被作者于2018/8/14 9:57:41编辑过]

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


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

For Each v As String() In DataTables("配码表").GetValues("物料ID|物料名称")

 

--------------------------------

 

msgbox(pd.text) 弹出什么?

去看你table1的currentChanged事件,里面应该有错误代码。


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


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

1、提示从类型“String()”到类型“String”的转换无效。执行代码后,配码表没有出来结果,我想是配色表的string()类型和配码表得string类型不匹配,但我将配码表的类型改为string()后又提示: Dim dr1 = t.DataTable.Find("物料名称 = '" & v & "'")这句代码错,没有为类型string和string的1维数组定义运算符&


这一句是保存代码弹出的提示,不是执行代码弹出的提示,将配码表的类型改为string()保存不了



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

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


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

请上传出错实例测试

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


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

请查看
[此贴子已经被作者于2018/8/14 17:46:45编辑过]

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