概述
2021-10-10 About 8 min
History
IBI复杂报表设计器基于开源项目UReport2 (opens new window), 通过迭代单元格可以实现任意复杂的中国式报表,复杂报表常用于向于对表格格式有较高的要求的场景,如:财务报表、审计上报。
相较与自助式交叉表,这类报表的特点是:
- 结构复杂,嵌套多级表头,单元格之间依赖计算
- 制作难度更大
- 如果对表格结构、格式没有强制要求,能用自助分析中交叉表实现的表格,优先选用交叉表
# 变更
在UReport2之上我们做了下面的变更:
# 整体架构
- 重写了全部前端模板交互与UI更便捷
- 报表定义存储数据库,报表存储格式改xml为json
- 整合IBI数据源与数据集
- 数据集读取表注释为别名
- 整合IBI数据集与多维查询引擎v1.10
- 数据集读取表注释为别名
- 整合报表资源权限控制
- 支持添加IBI看板、大屏
- 大屏表格样式配置弹窗
- 支持BI看板参数、支持主动联动事件定义, 被动联动事件响应, 支持点击弹窗
- 看板导出支持复杂报表导出
- 弃用UReport2变量,使用IBI变量机制
- 查询支持变量
- 普通文本支持变量
- 表达式支持变量
# 功能改进
- 交叉表表自动增加多级父格关联,原系统父格查找在同时多级有左父格和上父格的时候,其中上父格仅支持一层关联
- 聚合方式增加count、distinct
- 支持自定义排序
- 支持列宽拉伸
- 累加单元格坐标计算支持有合并的父格场景,原系统仅支持父格为列表的累加计算
- html输出列宽小于0隐藏列
- 插入删除列处理合并单元格设置
# 表达式改进
- 增加注释匹配, 单行多行
- 支持集合表达式, 同sql语法中的 in (1, 2, 3)
- 修复所有单元格表达式过滤计算错误的问题
- 支持仅列上父格偏移C1[;B1:-1]
- 支持sql标准case表达式 case when then else end
- 新坐标表达式@替代:,!相对偏移
- 增加复合条件表达式
- 图形化多层级过滤表达式
- 支持SQL标准多层级表达式, 如:
A1 > 1 or A1 < 10 and B2 > 100
# 操作体验
- 菜单部分
- 优化了颜色、边框、对齐、边框、清空内容操作
- 字体、背景、边框记忆上次选择配置,点击直接执行
- 预览模式改用弹框热预览
- 设计器
- 支持单元格复制、剪切
- 增加表达式编辑器,表达式模板
# 废弃的功能
- 原报表参数机制
- 原图表组件
- 原表格点击事件
# 暂时未引入的功能
- 斜线表头(v2.0之后重新引入)
- 报表打印(v2.1之后重新引入)
- 图片单元格(v1.11之后重新引入)
- 二维码单元格