Foxtable(狐表)用户栏目专家坐堂 → SQLCrossTableBuilder问题续


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

主题:SQLCrossTableBuilder问题续

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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
SQLCrossTableBuilder问题续  发帖心情 Post By:2011/7/8 15:07:00 [只看该作者]

下面代码不会报错:
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
图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

看一下SQLCrossTableBuilder说明的最后一部分:同名列的处理:

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

 

[此贴子已经被作者于2011-7-8 15:11:35编辑过]

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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2011/7/8 21:31:00 [只看该作者]

sql server也可以用{表名}.列名的方法吗
[此贴子已经被作者于2011-7-8 21:31:14编辑过]

 回到顶部
帅哥,在线噢!
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

可以的

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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By: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()


这段代码仍然报错,错误出在第五行,还是请老大看看,没有第五行就可以执行,有第五行就报错

 回到顶部
帅哥,在线噢!
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

做个例子上来测试。


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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By: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")

执行结果完全正确。


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

3.新增一个独立窗口F01,添加一个表控件table1。

4.现在将上面第二步正确代码的最后两行改为:

b.Build(True)
Forms("F01").Show()
Tables("F01_table1").DataSource = b.BuildDataSource

5.继续执行代码,发现报错


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

图片点击可在新窗口打开查看此主题相关图片如下:screenshot33.jpg
图片点击可在新窗口打开查看
6.使用sql server数据源测试,问题依然如此,由此判断,应该是个BUG

7.程序版本


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

 

不过我说了不算的,还要老大你来看下

[此贴子已经被作者于2011-7-11 8:48:44编辑过]

 回到顶部
帅哥,在线噢!
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

正确代码:

 

Dim b As New SQLCrossTableBuilder("统计表1","订单")
b.C
b.AddTable("订单","产品ID","产品","产品ID")
b.HGroups.AddDef("{订单}.产品ID")
b.VGroups.Adddef("日期",DateGroupEnum.Year,"年")
b.Totals.AddDef("数量")
Forms("窗口1").Show()
Tables("窗口1_Table1").DataSource = b.BuildDataSource

 

也就是说:

b.Build(True)
是多余的。

 

 

 

 


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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2011/7/11 9:01:00 [只看该作者]

帮助好似没有提到图片点击可在新窗口打开查看这点

 回到顶部
帅哥,在线噢!
狐狸爸爸
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

呵呵,帮助也没有教你这样做啊,在帮助中,Build和BuildDataSource从来都是单独使用的。

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