Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共8 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:边学边练手,请教SQLCrossTableBuilder用法

1楼
唐尸三摆手 发表于:2010/4/6 16:01:00

数据源为erp,有四个表
第一个表aec,有订单号,合同号,产品编码,计划数量,交货期五列(其他列省略不提)。
第二个表eba,有合同号,销售单位两列(其他列省略不提)。
第三个表aaa,有产品编码,产品名称,分类码三列。
第四个表aam,有分类码,分类名称两列。


关联情况:aec表和eba表通过“合同号”建立关联;aec表和aaa表通过“产品编码”建立关联。aaa表和aam表通过“分类码”建立关联。

现在希望通过SQLCrossTableBuilder来实现这样的效果:

垂直分组:aec表中的"产品编码"对应的“分类码”和“分类名称”
水平分组:aec表中的“交货期”,按月分组。
统计列:aec表中的“计划数量”

 

请高手指教一下,如何设置代码,自己没弄出来,有点复杂,呵呵

 

Dim b As New SQLCrossTableBuilder("统计表1",aec)
b.C
b.AddTable(aec,"产品编码",aaa,"产品编码") '添加统计表
b.AddTable(aaa,"分类码",aam,"分类码") '添加统计表
b.AddCols(aaa,"分类码")
b.AddCols(aam,"分类名称")
b.HGroups.AddDef("分类码")
b.HGroups.AddDef("分类名称")
b.VGroups.AddDef("交货期",DateGroupEnum.Month,"月")
b.Totals.AddDef("计划数量")
b.Build '生成统计表
Maintable = Tables("统计表1")


此主题相关图片如下:pic054.jpg
按此在新窗口浏览图片
[此贴子已经被作者于2010-4-6 16:06:09编辑过]
2楼
唐尸三摆手 发表于:2010/4/6 17:37:00

各位能不能帮帮忙啊,如何能实现上述效果啊,就是太复杂啊,前两列都不是基表中的字段

3楼
mr725 发表于:2010/4/6 17:42:00
给个例子帮你测试,光看图不得要领,因为情况多样。

也许你得用 aaa 表作为基础表来统计更好。
[此贴子已经被作者于2010-4-6 19:59:45编辑过]
4楼
唐尸三摆手 发表于:2010/4/7 15:23:00
终于实现了,可是filter条件中能否加入变量呢

5楼
狐狸爸爸 发表于:2010/4/7 15:24:00
以下是引用唐尸三摆手在2010-4-7 15:23:00的发言:
终于实现了,可是filter条件中能否加入变量呢


动态合成表达式,这可是基本功哦

6楼
唐尸三摆手 发表于:2010/4/9 13:41: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.AddCols("aam00000","classcode") '指定列来源
b.AddCols("eba00000","sellunit") '指定列来源
b.AddCols("aam00000","classname") '指定列来源
b.HGroups.AddDef("classcode","分类码") '添加水平分组
b.HGroups.AddDef("classname".trim(),"分类名称") '添加水平分组
b.VGroups.AddDef("requiredate",DateGroupEnum.none) '添加垂直分组
b.Totals.AddDef("plannum") '添加数量列用于统计
b.VerticalTotal=true


classname列内容有空格,希望在统计结果中删除掉,上述红色部分代码设置为什么不行呢
[此贴子已经被作者于2010-4-9 13:41:50编辑过]
7楼
狐狸爸爸 发表于:2010/4/9 17:48:00
1、代码不能用在SQL语句中,SQL语句有自己函数
2、表达式应该用AddExp
3、SQL Server没有Trim

b.HGroups.AddExp("Replace(classname, ' ', ''", "分类名称") '添加水平分组
8楼
唐尸三摆手 发表于:2010/4/10 10:02:00

提示无法完成延时准备

共8 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 2 queries.