Foxtable(狐表)用户栏目专家坐堂 → 窗口的同一table切换不用tablebuilder源的问题


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

主题:窗口的同一table切换不用tablebuilder源的问题

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


加好友 发短信
等级:幼狐 帖子:106 积分:1002 威望:0 精华:0 注册:2012/9/6 14:13:00
窗口的同一table切换不用tablebuilder源的问题  发帖心情 Post By:2013/6/14 17:07:00 [只看该作者]

窗口里有table(tb1),按钮1,按钮2.按钮1可以创建grouptablebuilder(gt1),并tb1.datasource=gt1.builddatasource(),gt1有个列rowA。同样按钮2创建了crosstablebuilder(ct2)并tb1.datasource=ct2.builddatasource(). ,Ct2有个列rowB
首次单击按钮1和按钮2都很正常。但当单击过1再单击2或单击过2再单击1就显示错误,分别显示“tb1不存在名为ROWA的列!“和 “tb1不存在名为ROWB的列!“
求解!
是否table的source只能设置一次不能切换? 还是在设置之前要将上一次数据源”清零“?

按钮1代码:

Dim g As New GroupTableBuilder("test001", DataTables("产生表"))

g.Caption = "公司收入"

g.Groups.AddDef("报告出具时间", DateGroupEnum.Year, "年")

g.Groups.AddDef("报告出具时间", "月")

g.Totals.AddDef("合同金额")

g.Totals.AddDef("推广费")

g.Totals.AddDef("实际收入")

g.Decimals = 0

g.Filter = "SubString(Convert([报告出具时间],'System.String'),1,4) > 2011"

Dim t As Table = Tables("总表_table1")

t.DataSource = g.BuildDatasource()

Dim g1 As New Subtotalgroup '定义一个新的分组

g1.Aggregate = AggregateEnum.Sum '统计类型为求和

g1.GroupOn = "" '分组列

g1.TotalOn = "合同金额,推广费" ',实际收入"

g1.Caption = "{0} 小计" '设置标题

t.SubtotalGroups.Add(g1)

t.subtotal


按钮2代码: 

Dim b As New CrossTableBuilder("test003",DataTables("产生表"))

b.HGroups.AddDef("报告出具时间",DateGroupEnum.Year,"") '添加日期列用于水平分组,按年分组

b.HGroups.AddDef("报告出具时间","") '添加日期列用于水平分组,按年分组

b.VGroups.AddDef("业务来源","业务来源_{0}")

b.Totals.AddDef("实际收入") '添加数量列用于统计

'b.Totals.AddDef("实际收入",AggregateEnum.Count,"项目数量")

b.Filter = "SubString(Convert([报告出具时间],'System.String'),1,4) > 2011 And not ([业务来源] = '其他' Or [业务来源] = '其他来源' Or [业务来源] = '其他员工' Or [业务来源] = '业务部')"

b.Build

Dim t As Table = Tables("总表_Table1")

MainTable = t

t.DataSource = b.BuildDatasource()

Dim g1 As New Subtotalgroup '定义一个新的分组

g1.Aggregate = AggregateEnum.Sum '统计类型为求和

g1.GroupOn = "年"

Dim stn As String

Dim stns(t.Cols.Count - 3 ) As String

For i As Integer = 0 To t.Cols.Count - 3

    stns (i) = T.Cols(i+2).Name

Next

stn = String.Join(",",stns)

g1.TotalOn = stn

g1.Caption = "{0} 小计" '设置标题

t.SubtotalGroups.Add(g1)

t.subtotal

 


[此贴子已经被作者于2013-6-14 17:25:47编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/6/14 17:12:00 [只看该作者]

你尝试数据源”清零“ 看看. 照道理是不需要的.

还不行 上个例子我分析一下.

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


加好友 发短信
等级:幼狐 帖子:106 积分:1002 威望:0 精华:0 注册:2012/9/6 14:13:00
  发帖心情 Post By:2013/6/14 17:20:00 [只看该作者]

问题是怎么”清零“呢?

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


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

这样看看:

 

tb1.StopRedraw()

tb1.datasource = gtX.builddatasource()

tb1.ResumeRedraw()


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/6/14 17:24:00 [只看该作者]

tb1.datasource=nothing 看看.  实在不行还是上个例子吧. 按道理是不需要的直接赋值可以使用的.

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


加好友 发短信
等级:小狐 帖子:302 积分:1860 威望:0 精华:0 注册:2012/4/27 11:34:00
  发帖心情 Post By:2013/6/14 17:24:00 [只看该作者]

主窗口或停靠窗口吧?要這樣的:

tb1.Redraw =0
'原代碼
tb1.Redraw =1

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


加好友 发短信
等级:幼狐 帖子:116 积分:687 威望:0 精华:0 注册:2013/5/31 14:25:00
  发帖心情 Post By:2013/6/14 17:28:00 [只看该作者]

LZ,麻烦你上例子吧或者贴代码吧。

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


加好友 发短信
等级:幼狐 帖子:106 积分:1002 威望:0 精华:0 注册:2012/9/6 14:13:00
  发帖心情 Post By:2013/6/14 17:30:00 [只看该作者]

我照狐狸爸爸的做了,情况依旧。显示是“tb1不存在名为“实际收入_1"的列”。奇怪了。我至多只有名为“实际收入”的列,没有“实际收入_1”的列啊!?

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


加好友 发短信
等级:幼狐 帖子:106 积分:1002 威望:0 精华:0 注册:2012/9/6 14:13:00
  发帖心情 Post By:2013/6/14 17:35:00 [只看该作者]

我发现罪魁祸首是小计,就是这段:

Dim g1 As New Subtotalgroup '定义一个新的分组

g1.Aggregate = AggregateEnum.Sum '统计类型为求和

g1.GroupOn = "" '分组列

g1.TotalOn = "合同金额,推广费" ',实际收入"

g1.Caption = "{0} 小计" '设置标题

t.SubtotalGroups.Add(g1)

t.subtotal

把它去掉就没事了。但是何解呢?

[此贴子已经被作者于2013-6-14 17:35:23编辑过]

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


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

做个简单例子发上来说话。


 回到顶部