概述

2021-10-10 Guide
  • 开发人员
  • 报表
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之后重新引入)
  • 二维码单元格
Last update: February 24, 2025 10:55