以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请问这个数据源参数如何写? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=66803) |
-- 作者:瞩望星空 -- 发布时间:2015/4/14 10:09:00 -- 请问这个数据源参数如何写? 参照“组合多个统计结果”(http://www.foxtable.com/help/topics/2305.htm)例子,能做到多个查询表组合成一个表。 其中的统计命令为:GroupTableBuilder,现想把统计命令改为后台直接统计:SQLGroupTableBuilder 请问此时原例子中的“dt1”,"dt2"等如何去表达? |
-- 作者:Bin -- 发布时间:2015/4/14 10:12:00 -- 同样是这么做 |
-- 作者:瞩望星空 -- 发布时间:2015/4/14 10:19:00 -- 主要是: Dim dt1 As fxDataSource dt1 = bd1.BuildDataSource() dt1.Combine("型号",dt2,"型号") 这几句不会改。 如果不改,会出现以下错误提示: .NET Framework 版本:2.0.50727.5477 Foxtable 版本:2014.11.11.1 错误所在事件:窗口,窗口1,Button4,Click 详细错误信息: 重载决策失败,因为没有最适合这些参数的 Public“Item”: \'Public ReadOnly Property Item(Index As Integer) As Foxtable.DataTable\': 不是最特定的。 \'Public ReadOnly Property Item(TableName As String) As Foxtable.DataTable\': 不是最特定的。 [此贴子已经被作者于2015/4/14 10:21:19编辑过]
|
-- 作者:Bin -- 发布时间:2015/4/14 10:25:00 -- Dim dt1 As fxDataSource dt1 = bd1.BuildDataSource() 先不Combine 看看是否报错
|
-- 作者:Bin -- 发布时间:2015/4/14 10:25:00 -- 不Combine 不出错,说明你数据源的表结构肯定不一样. |
-- 作者:狐狸爸爸 -- 发布时间:2015/4/14 10:35:00 -- 真的是一回事,用帮助的例子,下面的代码测试通过,注意SQLGroupTableBuilder不能直接统计表达式列,要自定义表达式进行统计。 Dim bd1 As New SQLGroupTableBuilder("统计表1","进货单") Dim dt1 As fxDataSource bd1.Groups.AddDef("型号") \'根据型号分组 bd1.Totals.AddDef("数量","进货_数量") \'对数量进行统计 bd1.Totals.AddExp("进货_金额","数量 * 单价") \'对金额进行统计 dt1 = bd1.BuildDataSource() Dim bd2 As New SQLGroupTableBuilder("统计表2","销售单") Dim dt2 As fxDataSource bd2.Groups.AddDef("型号") \'根据型号分组 bd2.Totals.AddDef("数量","销售_数量") \'对数量进行统计 bd2.Totals.AddExp("销售_金额","数量 * 售价") \'对金额进行统计 dt2 = bd2.BuildDataSource() Dim bd3 As New SQLGroupTableBuilder("统计表3","退货单") Dim dt3 As fxDataSource bd3.Groups.AddDef("型号") \'根据型号分组 bd3.Totals.AddDef("数量","退货_数量") \'对数量进行统计 bd3.Totals.AddExp("退货_金额","数量 * 单价") \'对金额进行统计 dt3 = bd3.BuildDataSource() dt1.Combine("型号",dt2,"型号") \'将销售统计数据组合到进货统计数据 dt1.Combine("型号",dt3,"型号") \'将退货统计数据组合到进货统计数据 Tables("窗口1_Table1").DataSource = dt1 \'将统计结果绑定到Table With DataTables("窗口1_Table1").DataCols \'用表达式列计算库存数据 .Add("库存_数量",Gettype(Integer), "IsNull([进货_数量],0) - ISNULL([销售_数量],0) - ISNULL([退货_数量],0)") .Add("库存_金额",Gettype(Double), "[库存_数量] /[进货_数量] * [进货_金额]") End With [此贴子已经被作者于2015/4/14 10:38:54编辑过]
|
-- 作者:瞩望星空 -- 发布时间:2015/4/14 10:45:00 -- 嗯,现在可以了。 |