Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
用自带的“组合统计结果”为例,执行代码:
Dim b As New SQLGroupTableBuilder("统计表1","进货单")
b.AddTable("进货单","型号","销售单","型号")
b.Groups.AddDef("{进货单}.型号")
b.Totals.AddExp("金额","{进货单}.数量*{销售单}.售价")
b.Totals.AddDef("{进货单}.数量")
Tables("窗口1_Table1").DataSource = b.BuildDataSource
之前反映的问题依旧:
1、以“进货单”为基表,添加“销售单”参与统计。既然是按“进货单”的“型号”列进行分组,那么“进货单”中的所有型号都应出现在统计结果中。事实是,在“销售单”中没有关联记录的“NB-XXX”仍然消失。这肯定是不对的。
同理,如果是按“销售单”中的型号分组,则销售单中的所有型号都应出现在统计结果中。这就类似于sql的左连接或右连接。
2、统计列有两个,一个是Exp,一个是Def,统计的结果中,按列名统计的结果仍然排在表达式列的前面。
以上问题在上次更新时就提出来了,莫非是忘记修改了?
一楼的测试代码暂不考虑一对多还是多对多的问题,因为它的统计结果是不正确的。
用这个主要是便于说明问题。
比如,NB-XXX这个型号尽管在销售单中没有对应的记录,但它也应该出现在统计结果中,金额为0
撤了··· 从帮助中的SQLGroupTableBuilder看,好像就是要这样的吧。即:除了用来关联的列,其他列名在各表之间是不能重名的。否则用GroupTableBuilder+Combine来处理。
这次增加的连接类型参数很好使,本以为只对sqljointablebuild有效呢。呵呵
ok,问题解决!