千家信息网

BIRT中组内跨行计算和小计怎样做

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这期内容当中小编将会给大家带来有关BIRT中组内跨行计算和小计怎样做,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。BIRT提供了简单的计算列功能,可以在原始数据基础
千家信息网最后更新 2026年11月03日BIRT中组内跨行计算和小计怎样做

这期内容当中小编将会给大家带来有关BIRT中组内跨行计算和小计怎样做,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

BIRT提供了简单的计算列功能,可以在原始数据基础上再计算出一些别的列值或统计值(规律性较强的表达式)。但由于模型采用控件拖拽式布局(一般用列名命名设计阶段的数据单元),没有很好的运算后报表数据项命名机制,很难精确描述数据之间的引用关系,导致随意的独立格运算非常困难。

比如要处理这么个场景:为了让例子尽可能简单,假设有3列数据,按id分组,数据格式如下:

期望展现的报表结果如下图所示:

计算规则:

1、newcolumn=上一行v1 + V1 + 上一行v2 + v2 (上一行无数据则为0)

2、每组都有小计来汇总newcolumn

3、最后还需要总计

常见的解决办法就是写自定义数据集(复杂SQL或scripted data sources),把数据事先计算好后再塞入到报表格子中。但自定义数据集方式,代码非常麻烦,工作量大。

如果使用集算器则会简单很多,其丰富的集合运算可以方便地完成这类计算,比scripted data sources代码要短,比SQL写起来更简单,比如类似的计算在集算器里可以这样写:


A

B

1

=myDB.query@x("select *,0 as newcolumn from sample")

=create(id,v1,v2,newcolumn)

2

>A1.group(id).run(~.run(v1+v2+v1[-1]+v2[-1]:newcolumn))

3

for A1.group(id)

>B1.insert(0:A3,id,v1,v2,newcolumn)

4


>B1.insert(0,"","",A3.id+"SUBTOTAL:",A3.sum(newcolumn))

5

>B1.insert(0,"","","TOTAL:",A1.sum(newcolumn))


最后将计算结果返回给BIRT直接进行报表展现即可。

上述就是小编为大家分享的BIRT中组内跨行计算和小计怎样做了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

数据 报表 小计 一行 运算 代码 内容 就是 结果 分析 原始 复杂 精确 困难 中小 之间 例子 内容丰富 办法 功能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 厦门中拓互联网络科技有限公司 科技制造互联网公司 世界互联网领先科技成果 广州凡科互联网科技 万达互联网科技 互联网 科技馆 互联网实体化科技化 江苏南京365互联网科技 阿里巴巴算科技企业还是互联网 承德科技产业互联网发展 来此购互联网科技有限公司 世界互联网科技公司市值排名 赶超互联网科技 微信多开 搜狐科技互联网 科技类公司包括互联网吗 四川互联网展示科技馆设计 广州有谷有贝互联网科技有限公司 互联网科技的前景 互联网科技创新方面的资料 株洲百竞科技的互联网营销顾问 天津摩尔互联网科技 郑州华宇互联网科技 山东吉时兔互联网科技有限公司 恒银科技与互联网金融 智腾互联网科技有限公司 杭州壁岐互联网科技有限公司 世界互联网领先科技成果获奖 美国互联网科技实力 易租星互联网科技有限公司 科技互联网企业在行动
0