Foxtable(狐表)用户栏目专家坐堂 → 求助:怎样把动态多行数据合并成一行


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

主题:求助:怎样把动态多行数据合并成一行

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


加好友 发短信
等级:小狐 帖子:349 积分:4112 威望:0 精华:0 注册:2018/4/6 18:02:00
求助:怎样把动态多行数据合并成一行  发帖心情 Post By:2022/7/22 18:58:00 [显示全部帖子]

各位老师:我用一个临时统计表统计出来的数据,想把动态增加(第一次查询不一样)的多列数据合并成一列,如下图:

 


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20220722182109.jpg
图片点击可在新窗口打开查看

 

我想达到的效果是:把购货单位这一列,替换成:购货单位后面、合计前面的多列数据组合,不包括空值。

   第一行:购货单位的内容是:6加单位列,即:6Kg

   第二列:                                               1Kg + 1Kg

   。。。。

 

我用的代码如下:

 

Dim b As New CrossTableBuilder("统计表1",DataTables("出库单明细"))
    b.HGroups.AddDef("名称")
    b.HGroups.AddDef("品牌")
    b.HGroups.AddDef("规格")
    b.HGroups.AddDef("单位")
    b.HGroups.AddDef("购货单位")
    b.VGroups.AddDef("档口名称")
    b.Totals.AddDef("数量")
    b.Filter = "[出库日期] = '" & e.Form.Controls("DateTimePicker1").Text & "' And 补货 = true"
    b.HorizontalTotal =  True
    b.VerticalTotal =  True
    b.Build()

With Tables("统计表1")
    .Position = 0     '下移一行
End With

Dim n As Integer = Tables("统计表1").Rows.Count
    'Dim r1  = Tables("统计表1").Current
For n2 As Integer = 1 To n    '打印4份
    Dim r1  = Tables("统计表1").Current

r1("购货单位") = r1(" ") '这句该怎样引用动态生成的列
      With Tables("统计表1")
         If  .Position = .Rows.Count - 1   '如果是未行
         Else
            .Position = .Position + 1     '下移一行
         End If
      End With
Next

 

标红的这句代码该怎么写,请各位老师指点!

谢谢!


 


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


加好友 发短信
等级:小狐 帖子:349 积分:4112 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2022/7/23 9:53:00 [显示全部帖子]

谢谢!

 

    这句代码:if c.name like "档口名称_*"  提示:未将对象引用设置到对象的实例。

 

还得请老师费心!


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


加好友 发短信
等级:小狐 帖子:349 积分:4112 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2022/7/23 11:03:00 [显示全部帖子]

蓝老师:打开表结构,如下图:提示是数量_

 


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20220722182109.jpg
图片点击可在新窗口打开查看

 

改成: 数量_*后的全部代码如下:

 

Dim b As New CrossTableBuilder("统计表1",DataTables("出库单明细"))
    b.HGroups.AddDef("名称")
    b.HGroups.AddDef("品牌")
    b.HGroups.AddDef("规格")
    b.HGroups.AddDef("单位")
    b.HGroups.AddDef("购货单位")
    b.VGroups.AddDef("档口名称")
    b.Totals.AddDef("数量")
    b.Filter = "[出库日期] = '" & e.Form.Controls("DateTimePicker1").Text & "' And 补货 = true"
    b.HorizontalTotal =  True
    b.VerticalTotal =  True
    b.Build()
With Tables("统计表1")
    .Position = 0     '下移一行
End With
Dim n As Integer = Tables("统计表1").Rows.Count
For n2 As Integer = 0 To n-1    '打印4份
    Dim r1 As Row   = Tables("统计表1").rows(n2)
    Dim s As String
   For Each c As Col In Tables("统计表1").cols
'If c.name Like "档口名称_*"
      If c.name Like "数量_*"
         s = s & "+" & r1(c.name)  & r1("单位")
      End If
      r1("购货单位") = s.trim("+")
   Next
Next

 

运行后提示:

 


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20220723110027.jpg
图片点击可在新窗口打开查看

 

麻烦老师给指点指点!

谢谢!


 


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


加好友 发短信
等级:小狐 帖子:349 积分:4112 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2022/7/23 11:58:00 [显示全部帖子]

老师,把s= “”后,可以执行,结果如下图

 


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20220722182109.jpg
图片点击可在新窗口打开查看

 

但是这个结果,感觉是空值的也加上了

 

离我想要的效果还差一步!

 

 第一行:购货单位的内容是:6加单位列,即:6Kg

 第二列:                                             1Kg + 1Kg

   。。。。

老师,费心!


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


加好友 发短信
等级:小狐 帖子:349 积分:4112 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2022/7/23 16:31:00 [显示全部帖子]

谢谢蓝老师!


 回到顶部