[常用脚本] 如何通过脚本在表中增加聚合计算列

Doka铂金一 显示全部楼层 发表于 2022-5-13 16:41:12 |阅读模式 打印 上一主题 下一主题
5
已解决
版本8.6升级9.2后,增加字段的脚本报错,提示“聚合计算列不支持再聚合。”

之前在永洪8.6中,制作报告时新增聚合表达式=SUM(col['金额']) / SUM(col['件数'])
然后在脚本中通过脚本,将聚合表达式插入到表1中,脚本如下:
var bcol1 = new BCol('聚合表达式', DOUBLE, true);
var meaCol = new MeasureCol(SUM, bcol1, null);       
表1.binding.addCol(meaCol);

升级迁移到9.2后,聚合表达式变成了计算列,脚本报错,报表不显示内容,字段名“聚合表达式_求和”变红(8.6正常显示时不会显示“_求和”后缀)。
而且此脚本在插入普通度量时没有问题,会正常显示字段名为“度量_求和”

1. 请问聚合计算列插入到表中的脚本应该怎么写?
2. 如果聚合计算列的脚本和普通度量的脚本不同,判断聚合计算列和普通度量的脚本怎么写?

最佳答案

环环 白银三 关注Ta

2022-05-13 16:41:13

1. 中间那句改成这样试试 var meaCol = new MeasureCol(NONE, bcol1, null); 2. 用了聚合函数的就是聚合表达式,聚合函数包括求和、最大值、平均这些
查看完整内容
回复

使用道具 举报

精彩评论10

环环白银三 显示全部楼层 发表于 2022-5-13 16:41:13
1. 中间那句改成这样试试  var meaCol = new MeasureCol(NONE, bcol1, null);   
2. 用了聚合函数的就是聚合表达式,聚合函数包括求和、最大值、平均这些
回复

使用道具 举报

Doka铂金一 显示全部楼层 发表于 2022-5-13 17:45:09
永洪tech-秀秀 发表于 2022-5-13 17:09
1. 中间那句改成这样试试  var meaCol = new MeasureCol(NONE, bcol1, null);   
2. 用了聚合函数的就是聚 ...

1.换成NONE可以
2.怎么在脚本中判断字段是不是聚合表达式?因为他们在脚本里都只有一个名字,我想实现的是聚合表达式用NONE,正常的度量用SUM
回复

使用道具 举报

环环白银三 显示全部楼层 发表于 2022-5-13 18:02:56
脚本中判断不了,一个计算列只能是一种计算方式啊,不是聚合就是细节表达式,为什么还需要去判断呢,计算列是怎么做的
回复

使用道具 举报

Doka铂金一 显示全部楼层 发表于 2022-5-13 18:08:55
永洪tech-秀秀 发表于 2022-5-13 18:02
脚本中判断不了,一个计算列只能是一种计算方式啊,不是聚合就是细节表达式,为什么还需要去判断呢,计算列 ...

计算列公式:SUM(col['金额']) / SUM(col['件数'])
因为想把正常度量求和,计算列先求和再除,所以有这个需求在
回复

使用道具 举报

环环白银三 显示全部楼层 发表于 2022-5-13 18:17:07
这样的不就是聚合表达式吗而且同样的名字一个数据集也只会有一个,直接判断字段名就可以吧
回复

使用道具 举报

Doka铂金一 显示全部楼层 发表于 2022-5-16 09:22:59
永洪tech-秀秀 发表于 2022-5-13 18:17
这样的不就是聚合表达式吗而且同样的名字一个数据集也只会有一个,直接判断字段名就可以吧 ...

度量里,既有聚合表达式,也有不聚合的正常字段。
正常字段需要用SUM,聚合表达式用NONE,需要做区分,8.6可以全都SUM,但是9.2不行
字段特别多,判断字段名很麻烦而且没法维护。
回复

使用道具 举报

永洪tech-cp铂金四 显示全部楼层 发表于 2022-5-16 10:04:48
Doka 发表于 2022-5-16 09:22
度量里,既有聚合表达式,也有不聚合的正常字段。
正常字段需要用SUM,聚合表达式用NONE,需要做区分,8. ...

不好意思,这个没有其它办法,只能麻烦您手动依次修改一下了
回复

使用道具 举报

Doka铂金一 显示全部楼层 发表于 2022-5-16 11:01:27
永洪tech-cp 发表于 2022-5-16 10:04
不好意思,这个没有其它办法,只能麻烦您手动依次修改一下了

那么请问如何判断一个字段名"指标1"是否在一个{'指标1','指标2','指标3'}中呢?
从定义这个数组开始
回复

使用道具 举报

永洪tech-cp铂金四 显示全部楼层 发表于 2022-5-16 11:21:10
您可以使用for循环查找一下
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |联系社区管理员|《永洪社区协议》
返回顶部