Foxtable(狐表)用户栏目专家坐堂 → [求助]表达式列统计报错


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

主题:[求助]表达式列统计报错

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


加好友 发短信
等级:童狐 帖子:205 积分:1468 威望:0 精华:0 注册:2013/2/1 21:25:00
[求助]表达式列统计报错  发帖心情 Post By:2014/3/10 23:25:00 [只看该作者]

统计报错,不知咋解决,说明如下:

1、<销售订单>与<销售订单明细>为关联表

2、<销售订单明细>表中【金额】列为表达式列

3、因同种型号商品在销售时有可能单价不一样,所以统计时无法通过 【统计数量】*【单价】 计算,我的功能想实现该型号商品总共销售多少数量及总金额

碰到问题为:在代码中把<销售订单明细表>中【金额】列加入统计列就报错,取消【金额】列就好了

现附代码如下:

Dim b As New SQLGroupTableBuilder("汇总统计","销售订单明细")
b.AddTable("销售订单明细","销售单号","销售订单","销售单号")
b.Groups.AddDef("货物名称")
b.Groups.AddDef("生产厂家")

b.Groups.AddDef("提货机型")
b.Totals.AddDef("数量")
b.Totals.AddDef("{销售订单明细}.金额")
b.VerticalTotal = True
b.Build
MainTable = Tables("汇总统计")


图片点击可在新窗口打开查看此主题相关图片如下:销售订单.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:销售订单明细.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
sloyy
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2014/3/10 23:37:00 [只看该作者]

表达式列无法直接统计,要换一种方式统计

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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2014/3/11 8:25:00 [只看该作者]

Dim b As New SQLGroupTableBuilder("汇总统计","销售订单明细")
b.AddTable("销售订单明细","销售单号","销售订单","销售单号")
b.Groups.AddDef("货物名称")
b.Groups.AddDef("生产厂家")

b.Groups.AddDef("提货机型")
b.Totals.AddDef("数量")
b.Totals.Addexp("金额","单价 * 数量")
b.VerticalTotal = True
b.Build
MainTable = Tables("汇总统计")

 

帮助有介绍表达式列的处理:

http://www.foxtable.com/help/topics/1626.htm

 

[此贴子已经被作者于2014-3-11 8:25:03编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lwj396086371
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:205 积分:1468 威望:0 精华:0 注册:2013/2/1 21:25:00
  发帖心情 Post By:2014/3/11 9:28:00 [只看该作者]

关键是同种商品销售时单价不一样


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

不影响统计结果的准确性,因为表达式计算的时候,是将每个订单明细的数量和单价相乘,得出金额,然后累计金额。

 

你可以测试一下


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/11 9:35:00 [只看该作者]

金额列不要用表达式列,改为在DataColChanged用代码计算.即可.

if e.datacol.name="单价" orElse e.datacol.name="数量" then
  if e.datarow.isnull("单价")=false andalso e.datarow.isnull("数量")=false then
     e.datarow("金额")=e.datarow("单价")*e.datarow("数量")
  end if
end if

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


加好友 发短信
等级:四尾狐 帖子:941 积分:7786 威望:0 精华:0 注册:2013/7/7 13:37:00
  发帖心情 Post By:2014/3/11 9:38:00 [只看该作者]

一句题外话建议,楼主 申请帮助时请在 标题里注明你 问题的关键词,这样即便于老师们提前预知,也便于将来各们同学遇到类似问题时搜索。

 回到顶部
帅哥哟,离线,有人找我吗?
lwj396086371
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:205 积分:1468 威望:0 精华:0 注册:2013/2/1 21:25:00
  发帖心情 Post By:2014/3/11 9:54:00 [只看该作者]

改为表达式列,测试时,金额列出现了但是是空值【解决了】
[此贴子已经被作者于2014-3-11 9:56:10编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/11 9:55:00 [只看该作者]

上例子吧,或者考虑6楼的方案.

 回到顶部
帅哥哟,离线,有人找我吗?
lwj396086371
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:205 积分:1468 威望:0 精华:0 注册:2013/2/1 21:25:00
  发帖心情 Post By:2014/3/11 10:21:00 [只看该作者]

当某一种商品销售单价不是固定,在统计报表中又不想反映每一个销售单号,是不是表达式列就无法进行统计,表达式列只能用代码实现

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