Foxtable(狐表)用户栏目专家坐堂 → [求助]组合两个统计表时出问题


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

主题:[求助]组合两个统计表时出问题

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


加好友 发短信
等级:幼狐 帖子:133 积分:1199 威望:0 精华:0 注册:2012/4/18 9:54:00
[求助]组合两个统计表时出问题  发帖心情 Post By:2013/3/12 11:35:00 [只看该作者]

我在组合两个统计报表时出现如下问题,请大侠给点帮助,谢谢!!

 

If s > ""  And  s1 > ""   Then
   
    Dim d1 As Date =Forms("月报表2").Controls("DateTimePicker1").value
    Dim d2 As Date =Forms("月报表2").Controls("DateTimePicker2").value
    Dim sql0 As String = "Select  * FROM {日常废品录入} where {日常废品录入}.录入时间 between '"  & d1  & "' and '" & d2 & "' and {日常废品录入}.生产线f in (" & s & ") and substring({日常废品录入}.材质规格f,1,2) in (" & s1 & ") and {日常废品录入}.发生工序 <> '成工退废' and {日常废品录入}.发生工序 <> '长征退废' "
   
    Dim b As New CrossTableBuilder("统计表1",sql0, "yun")
    b.HGroups.AddDef("货品编号")
    b.VGroups.AddDef("废品原因","内废原因_{0}")
    b.Totals.AddDef("废品数量")
    b.HorizontalTotal = True
    b.VerticalTotal = True
    b.Filter = "[废品原因]<> '回用'"
    Dim dt As fxDataSource
    b.FromServer = True
    dt=b.BuildDataSource()
    MessageBox.Show("1")
    Dim sql2 As String = "Select  * FROM {日常废品录入} where {日常废品录入}.录入时间 between '"  & d1  & "' and '" & d2 & "' and {日常废品录入}.生产线f in (" & s & ") and substring({日常废品录入}.材质规格f,1,2) in (" & s1 & ") and {日常废品录入}.发生工序 = '成工退废' or {日常废品录入}.发生工序 = '长征退废' "
    Dim e11 As New CrossTableBuilder("统计表5",sql2, "yun")
    e11.HGroups.AddDef("货品编号")
    e11.VGroups.AddDef("废品原因","外废原因_{0}")
    e11.Totals.AddDef("废品数量")
    e11.HorizontalTotal = True
    e11.VerticalTotal = True
    e11.Filter = "[废品原因] <> '回用'"
    Dim dt3 As fxDataSource
    e11.FromServer = True
    dt3=e11.BuildDataSource()
    MessageBox.Show("2")
  dt2.Combine("货品编号",dt3,"货品编号")


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:幼狐 帖子:133 积分:1199 威望:0 精华:0 注册:2012/4/18 9:54:00
  发帖心情 Post By:2013/3/12 11:36:00 [只看该作者]

提示说是,列名重复,但是,我没有废品数量的列啊!


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/12 11:38:00 [只看该作者]

你有两个:

 

   b.Totals.AddDef("废品数量")

 

其中一个改为:

 

   b.Totals.AddDef("废品数量2")

 

或其他名称


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


加好友 发短信
等级:幼狐 帖子:133 积分:1199 威望:0 精华:0 注册:2012/4/18 9:54:00
  发帖心情 Post By:2013/3/12 11:41:00 [只看该作者]

我这是都同一个表按不同条件做的两个不同的统计,统计的都是废品数量一列

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/12 11:48:00 [只看该作者]

可以改名:

 

 b.Totals.AddDef("废品数量","废品数量_A")

 

 

 b.Totals.AddDef("废品数量","废品数量_B")


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


加好友 发短信
等级:幼狐 帖子:133 积分:1199 威望:0 精华:0 注册:2012/4/18 9:54:00
  发帖心情 Post By:2013/3/12 11:51:00 [只看该作者]

以下是引用狐狸爸爸在2013-3-12 11:48:00的发言:

可以改名:

 

 b.Totals.AddDef("废品数量","废品数量_A")

 

 

 b.Totals.AddDef("废品数量","废品数量_B")

已经如你所说,进行修改,依然出错

更改如下

e11.Totals.AddDef("废品数量","外废合计")

b.Totals.AddDef("废品数量","内废合计")

以下是帮助文件的说明,这样改只能改标题,没有改列名啊

添加统计列到Totals集合中的语法是: 

Totals.AddDef(Name)
Totals.AddDef(Name, Caption)
Totals.AddDef(Name, Aggregate)
Totals.AddDef(Name, Aggregate,Caption)

参数说明

Name:      字符型,指定统计列
Caption:  字符型,指定统计列的标题
Aggregate: AggregateEnum枚举型,用于指定统计类型,默认是求和。

 

[此贴子已经被作者于2013-3-12 11:52:03编辑过]

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


加好友 发短信
等级:幼狐 帖子:133 积分:1199 威望:0 精华:0 注册:2012/4/18 9:54:00
  发帖心情 Post By:2013/3/12 12:09:00 [只看该作者]

并不是所有时候都出现,只在某些时候出现!


图片点击可在新窗口打开查看此主题相关图片如下:未命名1.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/12 14:10:00 [只看该作者]

换统计工具,用这个:

http://www.foxtable.com/help/topics/1627.htm

 

用表达式的形式加入例如:

 

VGroups.AddExp(Name, Expression)

 

例如:

 

b.Totals.AddDef("废品数量_A","废品数量")


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


加好友 发短信
等级:幼狐 帖子:133 积分:1199 威望:0 精华:0 注册:2012/4/18 9:54:00
  发帖心情 Post By:2013/3/12 14:30:00 [只看该作者]

以下是引用狐狸爸爸在2013-3-12 14:10:00的发言:

换统计工具,用这个:

http://www.foxtable.com/help/topics/1627.htm

 

用表达式的形式加入例如:

 

VGroups.AddExp(Name, Expression)

 

例如:

 

b.Totals.AddDef("废品数量_A","废品数量")

我已经试过,不行的,合并后只见第一个表,第二个不显示

 

 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/12 14:37:00 [只看该作者]

这样就基本不用改代码:

Dim sql0 As String = "Select  *, 废品数量As 废品数量1 FROM {日常废品录入} where {日常废品录入}.录入时间 between '"  & d1  & "' and '" & d2 & "' and {日常废品录入}.生产线f in (" & s & ") and substring({日常废品录入}.材质规格f,1,2) in (" & s1 & ") and {日常废品录入}.发生工序 <> '成工退废' and {日常废品录入}.发生工序 <> '长征退废' "
   
    Dim b As New CrossTableBuilder("统计表1",sql0, "yun")
    b.HGroups.AddDef("货品编号")
    b.VGroups.AddDef("废品原因","内废原因_{0}")
    b.Totals.AddDef("废品数量1")
    b.HorizontalTotal = True
    b.VerticalTotal = True
    b.Filter = "[废品原因]<> '回用'"
    Dim dt As fxDataSource
    b.FromServer = True
    dt=b.BuildDataSource()

 

另一个改为2或其他名称


 回到顶部
总数 11 1 2 下一页