以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- SQLCrossTableBuilder问题续 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=11125) |
-- 作者:唐尸三摆手 -- 发布时间:2011/7/8 15:07:00 -- SQLCrossTableBuilder问题续 下面代码不会报错: Dim b As New SQLCrossTableBuilder("统计表1","aec00000") b. c b.AddTable("aec00000","itemcode","aaa00000","code") \'添加统计表 \'b.AddTable("aaa00000","classcode","aam00000","classcode") \'添加统计表 b.HGroups.AddDef("classcode","分类码") \'添加水平分组 \'b.HGroups.AddDef("classname","分类名称") \'添加水平分组 b.VGroups.AddDef("requiredate",DateGroupEnum.none) \'添加垂直分组 b.Totals.AddDef("plannum") \'添加数量列用于统计 b.VerticalTotal=True b.Build() \'生成统计表 MainTable= Tables("统计表1") MessageBox.Show("数据分析完毕!","提示",MessageBoxButtons.ok, MessageBoxIcon.Question) 但是,第四行代码如果执行就会报错:见图片 所以问题出在第四行代码: aaa00000和aam00000通过classcode关联,aam00000包括classcode和classname两列 生成的统计表水平分组为classcode和classname两列,垂直分组为aec00000的requiredate列 统计列为aec00000的plannum列 很早之前版本发布的程序运行正常,不知何故。 此主题相关图片如下:screenshot31.jpg |
-- 作者:狐狸爸爸 -- 发布时间:2011/7/8 15:11:00 -- 看一下SQLCrossTableBuilder说明的最后一部分:同名列的处理: http://help.foxtable.com/topics/1627.htm
[此贴子已经被作者于2011-7-8 15:11:35编辑过]
|
-- 作者:唐尸三摆手 -- 发布时间:2011/7/8 21:31:00 -- sql server也可以用{表名}.列名的方法吗 [此贴子已经被作者于2011-7-8 21:31:14编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2011/7/9 8:03:00 -- 可以的 |
-- 作者:唐尸三摆手 -- 发布时间:2011/7/9 10:26:00 -- Dim b As New SQLCrossTableBuilder("a","aec00000") b.c b.AddTable("aec00000","itemcode","aaa00000","code") \'添加统计表 b.AddTable("aec00000","id_contract","eba00000","id_contract") \'添加统计表 b.AddTable("aaa00000","classcode","aam00000","classcode") \'添加统计 表 b.HGroups.AddDef("{aaa00000}.classcode","分类码") \'添加水平分组 b.VGroups.AddDef("requiredate",DateGroupEnum.none) \'添加垂直分组 b.Totals.AddDef("plannum") \'添加数量列用于统计 b.VerticalTotal=True b.Build(True) \'生成统计表 Tables("nb_table1").DataSource = b.BuildDataSource() 这段代码仍然报错,错误出在第五行,还是请老大看看,没有第五行就可以执行,有第五行就报错
|
-- 作者:狐狸爸爸 -- 发布时间:2011/7/9 10:29:00 -- 做个例子上来测试。 |
-- 作者:唐尸三摆手 -- 发布时间:2011/7/11 8:43:00 -- 经测试,应该是个BUG
操作步骤: 1.打开CaseStudy目录下的文件:多表统计.Table 2.命令窗口执行下面的代码(引用自帮助文件) Dim b As New SQLCrossTableBuilder("统计表1","订单") b. ConnectionName = "Sale" b.AddTable("订单","产品ID","产品","产品ID") b.HGroups.AddDef("{订单}.产品ID") b.VGroups.Adddef("日期",DateGroupEnum.Year,"年") b.Totals.AddDef("数量") b.Build MainTable = Tables("统计表1") 执行结果完全正确。 3.新增一个独立窗口F01,添加一个表控件table1。 4.现在将上面第二步正确代码的最后两行改为: b.Build(True) 5.继续执行代码,发现报错
7.程序版本
不过我说了不算的,还要老大你来看下 [此贴子已经被作者于2011-7-11 8:48:44编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2011/7/11 8:49:00 -- 正确代码:
Dim b As New SQLCrossTableBuilder("统计表1","订单")
也就是说: b.Build(True)
|
-- 作者:唐尸三摆手 -- 发布时间:2011/7/11 9:01:00 -- 帮助好似没有提到这点 |
-- 作者:狐狸爸爸 -- 发布时间:2011/7/11 9:02:00 -- 呵呵,帮助也没有教你这样做啊,在帮助中,Build和BuildDataSource从来都是单独使用的。 |