以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  表达式列能否进行统计  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=81620)

--  作者:lgj716330
--  发布时间:2016/3/2 11:28:00
--  表达式列能否进行统计
Dim b As New SQLGroupTableBuilder("销售成本汇总表","销售出库")
b.Groups.AddDef("日期", DateGroupEnum.Year, "年") 
b.Groups.AddDef("日期", DateGroupEnum.month, "月") 
b.Groups.AddDef("客户名称") 
b.Totals.AddDef("出库数量") 
b.Totals.AddDef("销售金额") 
b.Totals.AddDef("销售成本") 
b.Build \'生成统计表
MainTable = Tables("销售成本汇总表") \'打开生成的统计表

上述代码中,销售成本是表达式列,统计时出错,表达式列不能直接统计吗

--  作者:大红袍
--  发布时间:2016/3/2 11:31:00
--  

红色改成你的公式

 

b.Totals.AddExp("销售成本","数量 * 单价 * (1-折扣)")


--  作者:lgj716330
--  发布时间:2016/3/2 11:44:00
--  
Dim b As New SQLGroupTableBuilder("销售成本汇总表","销售出库")
b.Groups.AddDef("日期", DateGroupEnum.Year, "年") \'根据日期按年分组
b.Groups.AddDef("日期", DateGroupEnum.month, "月") \'根据日期按年分组
b.Groups.AddDef("客户名称") \'根据产品名称分组
b.Totals.AddDef("出库数量") \'对数量进行统计
b.Totals.AddDef("销售金额") \'对数量进行统计
b.Totals.AddExp("销售成本","出库数量 * 加权平均单价")
b.Totals.AddExp("打折成本","出库数量 * 加权平均单价 * 打折比率")
b.Totals.AddExp("内部加价成本","出库数量 * 加权平均单价 * 打折比率 * 内部加价比率")
b.Build \'生成统计表
MainTable = Tables("销售成本汇总表") \'打开生成的统计表

提示错误“至少一个参数没有被指定值”,出库数量、加权平均单价、打折比率、内部加价比率都是从其他表填充过来的,会不会有影响

--  作者:大红袍
--  发布时间:2016/3/2 11:53:00
--  

SQLGroupTableBuilder不能用表达式列。

 

你改成 GroupTableBuilder 吧

 

Dim b As New GroupTableBuilder("销售成本汇总表","销售出库")
b.Groups.AddDef("日期", DateGroupEnum.Year, "年")
b.Groups.AddDef("日期", DateGroupEnum.month, "月")
b.Groups.AddDef("客户名称")
b.Totals.AddDef("出库数量")
b.Totals.AddDef("销售金额")
b.Totals.AddDef("销售成本")
b.FromServer = True
b.Build \'生成统计表
MainTable = Tables("销售成本汇总表") \'打开生成的统计表

 


--  作者:lgj716330
--  发布时间:2016/3/2 11:58:00
--  
好的
--  作者:lgj716330
--  发布时间:2016/3/2 12:32:00
--  
GroupTableBuilder 也不支持表达式列的后台统计,看来只有前台统计了
--  作者:大红袍
--  发布时间:2016/3/2 12:37:00
--  
以下是引用lgj716330在2016/3/2 12:32:00的发言:
GroupTableBuilder 也不支持表达式列的后台统计,看来只有前台统计了

 

哦,对。不支持。如果有表达式,特别是跨表的,用前台统计最方便。