Releases: jeecgboot/JimuReport
v1.9.0,支持填报和大屏
项目介绍
积木报表JimuReport,是一款免费的数据可视化报表,含报表、仪表盘和大屏设计,像搭建积木一样完全在线设计!功能涵盖:数据报表、打印设计、图表报表、门户设计、大屏设计等!
- Web版报表设计器,类Excel操作风格,通过拖拽完成报表设计,所见即所得。
- 大屏采用类word风格,可以随意拖动组件,想怎么设计怎么设计,可以像百度和阿里一样,设计出炫酷大屏!
- 从v1.9.0+起积木仪表盘支持大屏迈进了革命的步伐,她的牛叉之处:同时支持仪表盘、大屏、门户(支持交互)、移动。
- 秉承"简单、易用、专业"的产品理念,极大的降低报表开发难度、缩短开发周期、节省成本。
- 领先的企业级Web报表,支持各种复杂报表,专注于解决企业报表难题。
当前版本:v1.9.0 | 2024-11-04
集成依赖
一、积木报表依赖(springboot2版)
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-spring-boot-starter</artifactId>
<version>1.9.0</version>
</dependency>
二、积木仪表盘大屏依赖(springboot2版)
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-dashboard-spring-boot-starter</artifactId>
<version>1.9.0</version>
</dependency>
升级日志
此次版本改动较大,完善了填报功能支持行表格、一对多、查询填报等高级填报功能;支持共享数据集;整体界面大改版,使用体验更加简便;仪表盘提供大屏能力,支持黑色主题风格;增量升级SQL见 http://jimureport.com/doc/log
新功能
- 界面布局整体改版,使用更加简便(涉及左侧区域、顶部菜单、右键菜单、右侧配置区)
- 顶部图标更换,换成两行
- 新功能,支持共享数据集
- 新功能,打印当前页
- 在线填报,填报数据集支持拖拽
- 在线填报,支持行表格填报
- 在线填报,支持一对多填报
- 在线填报,支持查询填报
- 在线填报,Api支持相对路径
- 在线填报,支持唯一校验
- 在线填报,无token访问禁止使用"用户、角色、部门"等敏感控件
- 在线填报,预览地址改成restful风格
- 新增填报示例:SQL数据集填报、填报默认值
- 回收站功能,新删除的报表不在最前面
- 标题和字段,鼠标放上去显示全文
- 大数据导出报表失败时增加错误提示
- 列表优化,点击左侧树可以显示子级的文件夹
- 保存报表检查下有没有同行多个数据集,有的话提醒一下
- 列表页面增加批量变更文件夹功能
- 优化报表分享功能,用户可选是否要token
issues修复
- 【issues/2972】解决jimureport可上传任意文件漏洞
- 解决设计报告后无法保存,提示版本已过时严重问题
- 可以像EXCEL那样填报码?可以拆入行吗? · Issue #2971
- 积木报表SQL数据集使用存储过程每次预览未关闭druid连接池 · Issue #2929
- 单元格中使用concat函数做字符串连接时错误 · Issue #2969
- 导出问题 · Issue #2964
- jmreport可上传任意文件 · Issue #2972
- 设置动态合并格未合并正确 · Issue #2958
- 字典字段渲染时,报错 · Issue #2974
- 字体大小能否支持自定义 · Issue #2375
- 在报表设计器中如何使用超大字号 · Issue #2970
- 通过API配置数据字典问题 · Issue #2982
- 导出pdf报错 · Issue #2983
- /drag/onlDragDatasetHead/getTotalData interface has an unauthorized SQL injection vulnerability. · Issue #7237
- 主子表导出excel,报空指针异常,导出数据为空。 · Issue #2945
- 预览白屏 · Issue #2975
- 外部的系统里导入积木报表的链接后打开会报错提示 · Issue #2981
- 单元格计算后只计算第一行,后面的数值全部都是一样,没有根据前面的数据来计算 · Issue #2980
- 一个字段设置了别名,对该字段设置组合之后,系统会将别名插入到原查询sql的order by参数中,因原表中无该字段,导致sql执行异常 · Issue #2973
- 在SQL数据集中明细字段的参数配置中设置排序,预览查询时提示"ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效"的错误 · Issue #2984
- 自定义函数怎么接收查询参数 · Issue #2989
- 打印留白问题 issues/3013
- 缩放打印报错 issues/3022
- 分享链接在未登录的情况下导出excle有问题JimuReport/issues/2951
- 分页打印中如何获取当前页金额 issues/2899
- springboot3使用分库数据源配置,启动提示Bean被提前实例化 · Issue #3001
- TestController被占用问题 · Issue #3045
- 自动分组问题 · Issue #3068
- 主子报表,子报表空指针问题 · Issue #3071
- 添加地图-点地图报表 添加完报表参数查询条件后无法运行 · Issue #3064
- (Bug)数据字典无法进行更新修改 · Issue #3042
- GitHub · Where software is built](https://github.com/jeecgboot/JimuReport/issues/3056)
- 设置空值不计算后,分组小计的平均值仍然将空值算到计数中 · Issue #3052
- 图标报表无法预览 · Issue #3088
- 仪表盘地址栏传动态参数不生效 · Issue #7380
- 仪表盘设计器API数据集报错 · Issue #7376
- 仪表盘设计器集成时【customPrePath】不好用 · Issue #3060
- 积木新仪表盘数据源设置为API获取时,返回数据解析报错。IndexOutOfBoundsExceptions #3048
- 设置固定表尾,用A4纸打印,但表尾并没有在A4纸下方 #3065
- 仪表盘多租户的问题 #3078
- 仪表盘报表的静态资源加载错误 #3029
1.8.1 填报版本发布
当前版本:v1.8.1 | 2024-09-10
集成依赖
springboot2版本
<dependency>
<grupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-spring-boot-starter</artifactId>
<version>1.8.1</version>
</dependency>
springboot3版本
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-spring-boot3-starter-fastjson2</artifactId>
<version>1.8.1</version>
</dependency>
升级日志
重磅新功能:支持填报功能、支持自定义分类文件夹、积木报表加乐观锁、积木仪表盘同步发布 见详情;本次升级较大,有升级SQL。
全新功能
- 支持填报功能
- 支持自定义分类文件夹
- 积木报表加乐观锁
升级SQL
-- 积木报表加乐观锁---
ALTER TABLE jimu_report
ADD COLUMN update_count int NULL DEFAULT 0 COMMENT '乐观锁版本' AFTER tenant_id;
-- 版本默认为0
update jimu_report set update_count = 0 where update_count is null;
-- 在线填报功能 ---
ALTER TABLE jimu_report
ADD COLUMN `submit_form` tinyint(1) NULL COMMENT '是否填报报表 0不是,1是' ;
-- 支持自定义目录树---
ALTER TABLE jimu_report
MODIFY COLUMN type varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '类型' AFTER status;
-- 支持自定义目录树---
DROP TABLE IF EXISTS `jimu_report_category`;
CREATE TABLE `jimu_report_category` (
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '分类名称',
`parent_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '父级id',
`iz_leaf` int(1) NULL DEFAULT NULL COMMENT '是否为叶子节点(0 否 1是)',
`source_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '来源类型( report 积木报表 screen 大屏 drag 仪表盘)',
`del_flag` int(1) NULL DEFAULT NULL COMMENT '删除标识(0 正常 1 已删除)',
`create_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
`tenant_id` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分类' ROW_FORMAT = Dynamic;
INSERT INTO jimu_report_category (id, name, parent_id, iz_leaf, source_type, del_flag, create_by, create_time, update_by, update_time, tenant_id) VALUES ('984272091947253760', '数据报表', '0', 1, 'report', 0, 'admin', '2024-08-16 11:52:44', NULL, NULL, '1000');
INSERT INTO jimu_report_category (id, name, parent_id, iz_leaf, source_type, del_flag, create_by, create_time, update_by, update_time, tenant_id) VALUES ('984302961118724096', '图形报表', '0', 1, 'report', 0, 'admin', '2024-08-16 13:55:24', NULL, NULL, '1000');
INSERT INTO jimu_report_category (id, name, parent_id, iz_leaf, source_type, del_flag, create_by, create_time, update_by, update_time, tenant_id) VALUES ('984302991393210368', '打印设计', '0', 1, 'report', 0, 'admin', '2024-08-16 13:55:31', NULL, NULL, '1000');
update jimu_report set type = '984302991393210368' where type = 'printinfo';
update jimu_report set type = '984272091947253760' where type = 'datainfo';
update jimu_report set type = '984302961118724096' where type = 'chartinfo';
-- 自动导出日志表---
CREATE TABLE IF NOT EXISTS `jimu_report_export_log` (
`id` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
`batch_no` varchar(50) NULL COMMENT '批次编号',
`export_channel` varchar(20) NULL COMMENT '导出渠道',
`export_type` varchar(10) NULL COMMENT '导出类型',
`report_id` text NULL COMMENT '报表id',
`download_path` varchar(255) NULL COMMENT '下载路径',
`status` varchar(15) NULL COMMENT '状态',
`create_by` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '创建人',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`tenant_id` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '多租户标识',
PRIMARY KEY (`id`)
) COMMENT = '积木报表自动导出记录表';
-- 在线填报--示例:员工信息登记表 ---
-- 字典数据: 民族
INSERT INTO `jimu_dict` (`id`, `dict_name`, `dict_code`, `description`, `del_flag`, `create_by`, `create_time`, `update_by`, `update_time`, `type`, `tenant_id`) VALUES ('986779503584169984', '民族', 'minzu', '', 0, 'admin', '2024-08-23 09:56:17', NULL, NULL, NULL, NULL);
INSERT INTO `jimu_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('986779561591394304', '986779503584169984', '汉族', 'hanzu', NULL, 1, 1, 'admin', '2024-08-23 09:56:31', 'admin', '2024-08-23 09:56:45');
INSERT INTO `jimu_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('986779602800431104', '986779503584169984', '回族', 'huizu', NULL, 1, 1, 'admin', '2024-08-23 09:56:41', NULL, NULL);
INSERT INTO `jimu_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('986779663689142272', '986779503584169984', '维吾尔族', 'weiwuer', NULL, 1, 1, 'admin', '2024-08-23 09:56:56', NULL, NULL);
INSERT INTO `jimu_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('986779697352626176', '986779503584169984', '藏族', 'zangzu', NULL, 1, 1, 'admin', '2024-08-23 09:57:04', NULL, NULL);
-- 字典数据: 学历
INSERT INTO `jimu_dict` (`id`, `dict_name`, `dict_code`, `description`, `del_flag`, `create_by`, `create_time`, `update_by`, `update_time`, `type`, `tenant_id`) VALUES ('986783181955223552', '学历', 'xueli_sf', '', 0, 'admin', '2024-08-23 10:10:54', NULL, NULL, NULL, NULL);
INSERT INTO `jimu_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('986783239996002304', '986783181955223552', '文盲', '0', NULL, 1, 1, 'admin', '2024-08-23 10:11:08', NULL, NULL);
INSERT INTO `jimu_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('986783271616860160', '986783181955223552', '小学', '1', NULL, 1, 1, 'admin', '2024-08-23 10:11:16', NULL, NULL);
INSERT INTO `jimu_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('986783303967526912', '986783181955223552', '初中', '2', NULL, 1, 1, 'admin', '2024-08-23 10:11:23', NULL, NULL);
INSERT INTO `jimu_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('986783326532882432', '986783181955223552', '高中', '3', NULL, 1, 1, 'admin', '2024-08-23 10:11:29', NULL, NULL);
INSERT INTO `jimu_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('986783354462752768', '986783181955223552', '专科', '4', NULL, 1, 1, 'admin', '2024-08-23 10:11:35', NULL, NULL);
INSERT INTO `jimu_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('986783373504892928', '986783181955223552', '本科', '5', NULL, 1, 1, 'admin', '2024-08-23 10:11:40', NULL, NULL);
INSERT INTO `jimu_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('986783415494070272', '986783181955223552', '研究生', '6', NULL, 1, 1, 'admin', '2024-08-23 10:11:50', NULL, NULL);
INSERT INTO `jimu_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('986783438734708736', '986783181955223552', '博士', '7', NULL, 1, 1, 'admin', '2024-08-23 10:11:56', NULL, NULL);
-- 字典数据: 爱好
INSERT INTO `jimu_dict` (`id`, `dict_name`, `dict_code`, `description`, `del_flag`, `create_by`, `create_time`, `update_by`, `update_time`, `type`, `tenant_id`) VALUES ('986784113082322944', '爱好', 'aihao', '', 0, 'admin', '2024-08-23 10:14:36', NULL, NULL, NULL, NULL);
INSERT INTO `jimu_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('986784154379440128', '986784113082322944', '音乐', '0', NULL, 1, 1, 'admin', '2024-08-23 10:14:46', NULL, NULL);
INSERT INTO `jimu_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('986784179134222336', '986784113082322944', '运动', '1', NULL, 1, 1, 'admin', '2024-08-23 10:14:52', NULL, NULL);
INSERT INTO `jimu_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('986784205717721088', '986784113082322944', '舞蹈', '2', NULL, 1, 1, 'admin', '2024-08-23 10:14:58', NULL, NULL);
INSERT INTO `jimu_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('986784229390372864', '986784113082322944', '棋牌', '3', NULL, 1, 1, 'admin', '2024-08-23 10:15:04', NULL, NULL);
INSERT INTO `jimu_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('986784260960899072',...
v1.8.0 版本发布
领先的企业级Web报表,采用纯Web在线技术,专注于解决企业报表快速制作难题。
当前版本:v1.8.0 | 2024-08-22
集成依赖
springboot2版本
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-spring-boot-starter</artifactId>
<version>1.8.0</version>
</dependency>
springboot3版本
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-spring-boot3-starter-fastjson2</artifactId>
<version>1.8.0</version>
</dependency>
升级日志
重磅新功能:正式推出仪表盘;积木报表升级支持页眉页脚设置、水印、查询条件优化等;修复一系列issue和两个安全漏洞;
仪表盘能力:集成源码版和免安装版本默认提供了仪表盘设计器,提供更强大的图表面板、大屏设计能力,支持移动端。
新功能
- 回收站一键清空户按钮功能
- 查询条件重构优化:支持必填/默认展开查询栏和默认查询报表/api新增分页配置
- 查询条件性能优化:如果是下拉单选和下拉多选必须配置字典
- 查询设置样式优化
- 打印弹窗支持页眉页脚配置
- 积木报表支持水印
- 新增查询和替换弹窗
- jimureport-example支持登录账号密码
- 关于函数简便操作的优化 · Issue #2709
- 积木报表如何加水印?(导出的excel和pdf文件需要添加水印)谢谢! · Issue #2610
- 积木报表如何加水印?(导出的excel和pdf文件需要添加水印)谢谢! · Issue #2610
- 导出文件增加水印 · Issue #803
- 希望增加选项可以默认展开查询栏 · Issue #2646
- 离线版能不能也整个设计管理员帐号,免得被人随便改报表 · Issue #558
- 为什么项目中积木报表没有“查询设置”选项? · Issue #7092 · jeecgboot/JeecgBoot · GitHub
漏洞处理
- 积木报表软件存在AviatorScript代码注入RCE漏洞 · Issue #2848
- 访问漏洞 · Issue #2865
issues修复
- 图表坐标轴标题超出隐藏 · Issue #2647
- 字典传参渲染到报表上异常 · Issue #2688
- 积木报表下拉搜索模糊匹配无效 · Issue #2672
- 报表下钻的时候,传递过去的参数并未生效,使用的是参数默认值 · Issue #2702
- 表格数值类型展示错误0E-9 · Issue #2613
- 返回上一页无法返回原报表问题 · Issue #2621
- 更新1.7.6版本后导出PDF依旧报错 · Issue #2729
- jimureport报表管理界面 眉头上面的 列表和视图切换是否可以默认选择成 列表,或者这一块可以开放出来自行设计 · Issue #2713
- 图片显示问题 · Issue #2635
- Base64图片渲染问题 · Issue #2636
- sql解析异常 · Issue #2764
- 负数与0.000000进行计算时,小数位数限制失效 · Issue #2642
- 导出报表穿越 · Issue #2627
- 关于compute计算的问题 · Issue #2767
- 导出的数据格式化不生效 · Issue #2744
- api返回对象,无法解析对象 · Issue #2710
- 字段名称有“-”短横线字符,解析报错 · Issue #2682
- date_str函数日期格式化bug · Issue #2651
- sql解析异常 · Issue #2753
- 关于1.7.52版本compute和百分号组合问题 · Issue #2693
- 多表关联sql分组,数据库表中有重复字段作为分组条件时,生成的查询不会按表区分,报错 · Issue #2751
- 排序异常 · Issue #2739
- 分组功能异常 · Issue #2746
- 循环主子表 分页混乱 · Issue #2683
- 主子循环块,抛出【Size must be greater than 0】报错 · Issue #2788
- 再来一个SQL解析异常 · Issue #2765
- 部分报表SQL查询时间太长了 超过一分钟 客户不知道是不是能加载出来 等待没有耐心 能否增加一个加载中页面 进行引导 · Issue #2650
- 关于dbsum的bug · Issue #2695
- 柱状图数据过多时x轴非常密集 · Issue #2774
- 积木报表打印分页 · Issue #2698
- 积木报表加减乘除怎么实现 · Issue #2735
- 返回大数据量,求和报错,无法求和 · Issue #2807
- 自定义横向分组排序问题 · Issue #2795
- 单元格设置 Base64图片,值未读取出来 · Issue #2824
- 查询条件为空时弹窗提示 · Issue #2618
- 导出PDF支持展示页码和总页数? · Issue #858
- 打印内容时出现空白页 · Issue #2804
- 分页翻到 第二页,报表钻取后返回上一页没有回到第二页而是第一页 · Issue #2622
- 用户手动录入的数值数据无法和数据库中查出的数值常量取比例结果,使用round会报错。 · Issue #2805
- 动态横向动态列数据合计超过35列后的数据合计时都以2倍计算,其它列正常,减少列数就正常。 · Issue #2716
- 关于xlsx模版导出图片出错问题 · Issue #6925 · jeecgboot/JeecgBoot · GitHub
- 参数列为下拉控件,控件值从下拉列表中选择,控件值不允许清空,但可以更换 · Issue #2834
- 积木报表查询下拉框有重复值 · Issue #2832
- 自定义函数仿造MAX函数的问题 · Issue #2819
- 自定义函数不能动态获取单元格内容 · Issue #2752
- 固定打印表头,表头上包含了图片,导出的pdf第二页表头就没有图片了 · Issue #2756
- 导出的pdf文件目前缺少-当前页码/总页数 · Issue #2757
- 报表查询条件 · Issue #2634
- 积木报表横向分组小计问题 · Issue #2845
- 积木报表钻取设置条件时,条件判断问题 · Issue #2827
- 柱形图标的数据,不能根据查询条件进行图形渲染 · Issue #2855
- 单元格内容超过当前页设置为自动换行时导出pdf时第一页为空 · Issue #2831
- 导出的PDF有大量空白间断 · Issue #2847
- 在sqlserver数据库下查询如果有order by 结尾,在页面查询count时会报错:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询 · Issue #2880
- 导出的excel,下载下来是txt文本 · Issue #2878
- 下拉单选查询选择器有滚动条后,进行滚动条下拉后,会重新加载一遍数据,变为多次重复的数据 · Issue #2830
- BasicTable全展显示后,表格里定义的操作、弹窗均不能正常显示#7017 · Issue #7028 · jeecgboot/JeecgBoot · GitHub
v1.7.8
当前版本:v1.7.8 | 2024-07-08
集成依赖
springboot2版本
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-spring-boot-starter</artifactId>
<version>1.7.8</version>
</dependency>
springboot3版本
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-spring-boot3-starter-fastjson2</artifactId>
<version>1.7.8</version>
</dependency>
升级日志
功能稳固版本,修复一些已知BUG,同步升级了springboot3版本
修复issues
v1.7.52
当前版本:v1.7.52 | 2024-06-11
集成依赖
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-spring-boot-starter</artifactId>
<version>1.7.52</version>
</dependency>
升级日志
性能优化版本,开展Excel大数据导出性能优化、新增一系列新功能,优化界面操作习惯, 提升易用性。
性能优化
- 【Excel导出】excel大数据导出性能优化
- 【Excel导出】导出excel时间过长,超时导出失败问题
新功能
- 添加隐藏列或行功能
- 新增横向柱形图组件
- 放宽使用数量限制,满足中小项目需求
- 针对jeecgboot开源项目,不限制使用数量和并发
- 冻结弹窗支持颜色设置
- 动态坐标修改支持=::D1/E1格式,不局限于函数
- 导出支持配置是否开启另存为
- 单元格支持跟随横向分组扩展
- 配置单元格可以自动根据接口和参数得到数据
操作易用性优化
- 报表设计器界面进行系列优化
- 优化降低分组报表使用难度,支持批量设置分组,实现一键分组
- 分组配置项简化,降低使用难度
- 支持批量选择设置纵向分组
- 分组合计文字支持自定义
- 数据源树增加图标
- 新建报表字体太小
- 数据字典编辑框右上角关闭改成X
- 数据集配置界面优化
- 数据集列表-点击数据集名称展开列表
- 表达式界面微调
- 图表支持切换类型,比如把柱状图改为饼状图
- 图表不点击运行,图表的配置不保存还是老的
- 右键菜单美化
- =表达式输入框,按下esc快捷键恢复到原始值
- 所有的表达式,鼠标放到括号中,支持点击设置单元格参数(类excel操作)
- 取消套打则把套打图删除
- 函数编辑快捷选择单元格增加ESC键退出
- 图片下载加上loading
- 添加单元格三角标识(划过提示)
- 图表,配置分类属性和值属性,自动填充X轴和Y轴的名称/图表的标题
- 优化颜色选择器,不二次确认
- 查询条件区域样式优化
- 单元格表达式改为大写,表达式弹框展示优化
BUG修复
- 移除报表名称重复校验
- 嵌入式图片预览位置偏了,滚动时正常
- 上传的图片点击其他区域不能变成取消选中状态
- 单元格有多行打印时渲染的高度和预览高度不相等导致分页没按程序的走
- 平均值函数写错了
- 降低依赖中的jsqlparse版本,减少老jeecgboot集成问题。
- 并发线程安全问题 #2488
- 函数渲染countna(#{},#{})空值默认变成了countna(,),导致渲染出现问题
- 1级横向分组后方单元格不渲染
- 横向动态分组合计如何配置 #2509
- 打印出现多张纸 #2508
- 自动换行打印空白页 #2051
- =sum()等函数,按ctrl支持多选字段自动填充(类excel操作习惯)
- 折线图不显示分页数据? · Issue #2497
- 组合列配置超6列 · Issue #2527
- 动态合计无效 · Issue #2461
- 1.7.4版本导出excel问题 · Issue #2543
- 前台存在SSRF · Issue #6093
- 关于报表小计的问题 · Issue #2551
- 升级到1.7.x后页面打开报错,看打印sql多了一个order by · Issue #2561
- 日期范围框 默认值 天少个0 · Issue #2536
- 动态行动态列 用max min 第一行好用 第二行就不好用了 · Issue #2553
- MongoDB配置sql,不带条件可以解析,带条件解析错误 · Issue #2525
- 同时设置了报表参数查询和报表字段中的查询,报表字段的下拉多选未生效 · Issue #2569
- 如何控制查询栏查询条件之间空白行 · Issue #2575
- 报表钻取加载失败 · Issue #2577
- 关于框架同时引入 redisson 和 积木报表出现的问题,望指教; · Issue #2550
- 能否增加一个横向的柱形图组件 · Issue #2600
- 报表模版未设置自动换行,导出文件却自动换行 · Issue #2573
- 报表每次翻页都查询总数
- 折线图鼠标悬浮到数据节点时,显示重叠文字
- 合法url图片带着参数的话,下载失败
- 日期默认值,天少个0
- 同时设置了报表参数查询和报表字段中的查询,报表字段的下拉多选未生效
- 【issues/2568、issues/2588】超链接报表钻取参数传递不是期望值
- 横向分组,选多个字段的合计值,算合计值不对
- 某行单元格内容超过当前页并自动换行时导出pdf第一页为空
- 多数据源报表中使用=countnz(#{...})函数并没有统计行数
- 数据集字段参与表达式计算时报错
- PDF打印到第二页的时候,背景图片被第一页的文字覆盖
- 一级横向分组后方单元格不渲染
v1.7.4
当前版本:v1.7.4 | 2024-04-01
集成依赖
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-spring-boot-starter</artifactId>
<version>1.7.4</version>
</dependency>
升级日志
围绕使用体验进行了优化和亮点新功能升级、修复issue问题并重点解决老版JeecgBoot与积木报表兼容问题。
- 解决设置分页不起作用问题
- 解决老版JeecgBoot集成最新积木报表报错问题(排除依赖中jsqlparse高版本)
- 新功能,支持设置cell设置参与计算规则,支持负数不参与、空值不参与、全不参与
- 新功能,小数点支持批量设置
- 新功能,列表支持展示两个数据集的数据
- 新功能,支持批量设置单元格尺寸弹窗功能
- 新功能,导出pdf支持选择导出目录
- 新功能,导出pdf、excel、大数据excel,支持base64格式图片
- 新版右键菜单样式
- =表达式自动注入字段,不用手工输入,支持按住control多选(支持单元格函数和DB函数)
- 解决base64渲染慢的问题
- 优化数据集的SQ输入框加一个放大按钮
- 解决批量设置单元格,设置后,再次打开还是原来数值
- 解决主子报表,设置主子关联后,预览报暂无数据
- 修复导出图片报错处理
- 修复图表颜色设置改造后,导致部分图表渲染失败
- 查询条件label换行问题,改成超长省略显示
- 弹窗右上角加上关闭按钮,方便操作
- dbSum表达式适配支持#{}格式字段,降低使用难度
- 解决导出pdf base64格式的图片未按照配置的高宽
- 数据源安全模式下,有角色的用户还是可以使用数据源测试接口
- 解决中文提示出现乱码
- 解决主子表循环打印,主子表关联参数查询有问题
- 新增安全发布模式(prodsf),不允许任何用户和角色操作
- 新增统计非零的个数函数 =COUNTNZ()
- =DBSUM(#{ceshi_001.c})适配#{}字段格式
- 解决SUM、MAX、MIN统计函数混合使用问题 #2493
- 增加加载效果 · Issue #2440
- 解决1.7 版本主子表循环打印,主子表参数查询显示问题 · Issue #2435
- 新功能,支持批量修改格子高度 · Issue #2404
- 新功能,一个单元里面放多个数据源的字段,只会显示第一个,后面的数据源数据字段值不会显示 · Issue #2477
- 解决积木报表设计时绿色线因为浏览器的缩放比例调整而变得不准 · Issue #2401
- 解决sum 和 dbsum不能同时使用 · Issue #2409
- 解决Maximum call stack size exceeded #2484
- 解决动态分组下一行后方合计无效 #2461
- 优化右侧工具栏分隔符样式
- 优化图标样式
- 输入值弹窗,清空表达式值没效果
- 循环块内字段多值显示问题 #2336
- PDF打印到第二页的时候,背景图片被第一页的文字覆盖
- count函数统计非零单元格个数,空字符串不参与计算
- 图表设置单元格背景色后打印和导出PDF显示异常 #2354
- 自动换行打印空白页 #2051
v1.7.2
当前版本:v1.7.2 | 2024-03-07
集成依赖
- springboot2依赖
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-spring-boot-starter</artifactId>
<version>1.7.2-beta</version>
</dependency>
- springboot3依赖
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-spring-boot3-starter-fastjson2</artifactId>
<version>1.7.2-beta</version>
</dependency>
升级日志
v1.7.0 变革版本发布
当前版本:v1.7.0 | 2024-02-18
集成依赖
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-spring-boot-starter</artifactId>
<version>1.7.0</version>
</dependency>
::授权变更::
从v1.7.0+开始,积木报表做出重大变革,推出付费版本。免费版本会持续发布,不过功能会受到限制,以便于本项目更好的发展。
- 积木报表自2019年研发以来,一直坚持免费向用户提供服务。然而,随着项目的不断发展和运营成本的增加,目前面临着一些困难。为了保障项目的良性发展和持续运营,团队决定从1.7.0版本开始变更开源协议,并推出付费版本和免费版。
- 付费版本的推出将有助于筹集资金,用于软件的维护、更新和改进,以及提供更加稳定和优质的服务。同时,免费版仍将继续存在,但部分功能会受到一定的限制。如果用户不希望受到影响,可以选择继续使用1.7以下的版本,这些版本将遵循原来开源协议,并会进行一段时间的维护,以保障安全漏洞等级别问题。
- 这一变更旨在确保积木报表软件能够持续稳定地为用户提供服务,并为未来的发展奠定坚实的基础,团队希望用户能够理解并支持这一决定。
升级日志
#升级SQL
ALTER TABLE `jimu_report_share`
ADD UNIQUE INDEX `uniq_report_id`(`report_id`);
ALTER TABLE jimu_report_share
ADD COLUMN share_token varchar(50) NULL COMMENT '分享token' AFTER preview_lock_status,
ADD UNIQUE INDEX uniq_jrs_share_token(share_token);
ALTER TABLE `jimu_report`
ADD COLUMN `py_str` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL COMMENT 'py增强' AFTER `js_str`;
#新功能
- 缩放打印
- 支持批量、接口、定时导出PDF/EXCEL
- 格式化增加年/月/年月
- 支持隐藏 数据计算单元格
- 支持主子表循环打印
- 报表分享带临时令牌(更安全)
#issues
- 最新版本的搜索框搜索失效 · Issue #2255
- 配置了“多租户模式”=“tenant”,并且“数据源安全”=“false”后:访问报表提示“安全模式下,不允许使用平台数据源(请配置数据源)!” · Issue #2244
- Posgresql数据库, timestamp 字段 查询,提示timestamp without time zone >= character varying · Issue #2166
- 查询报表中日期范围和数据集求和同时存在时,查询报错,sql缺失and条件 · Issue #2258
- 积木报表API数据显示不出来 · Issue #881
- 【1.6.6版本】SQL中字段别名使用中文查询时会报错,无法解析中文 · Issue #2269
- API 数据返回非集合数据,处理时使用了JSONArray处理 · Issue #2261
- 报表条件表达式case无短路特性 · Issue #2265
- 积木报表API数据显示不出来 · Issue #881
- 函数不能和文字进行组合了 · Issue #2211
- 通过api解析查询到数据,分组后排序错乱,不是sql查询,1.5.2版本还没有问题,更新到最新版本后错乱。 · Issue #2203
- 官网在线体验,图表设置单元格背景色后打印和导出PDF显示异常 · Issue #2354
- 导入报表配置报错 · Issue #2333
- 自定义横向分组 日期排序错误,不能排序 · Issue #2355
- 删除线,下划线使用之后再点取消,导出的excel仍有两线 · Issue #2345
- 图表PDF导出内容异常 · Issue #2332
- DBSUM 加查询条件统计时报 SQL 语法错误,条件字段前缺少 and · Issue #2367
- 多租户模式下,报表钻取url参数没有tenantId · Issue #2288
- 重构分组合计计算逻辑,解决合计的系列问题
- 报表名称前后有空格 模糊搜索不显示
- 查询条件,选中后,点击不出现下拉项
- 查询框鼠标上下滚动,会出现闪动的情况
- 安全模式下存在 select * 的时候,判断拥有sql解析权限的角色,如果有可以走数据库
- 数据源测试连接 测试不了
- 年月选中未显示
- 【issues/2194】多租户模式,报表名称的唯一性校验逻辑问题
- [issue/#881] api报表增加字段映射功能
- 函数表达式 有空格时失效
- 日期函数支持小时显示
- 带背景导出图片错乱 #2379
- 带背景导出图片时报错 #2377
v1.6.6 版本发布
当前版本:v1.6.6 | 2023-12-11
集成依赖
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-spring-boot-starter</artifactId>
<version>1.6.6</version>
</dependency>
#升级日志
#issues
- 多租户 积木报表api接口取数据没带上tenantId · Issue #5581
- 1.6.3 - SQL解析失败:请注意,值可能存在SQL注入风险! · Issue #2198
- 提示SQL注入风险,提示不准确导致SQL无法保存 · Issue #2214
- 先小计再合计中使用AVERAGE()函数计算平均数计算有误 · Issue #2197
- 租户id获取不到 · Issue #2180
- 自定义函数参数中有单元格取值和自定义参数时,单元格参数获取为空 · Issue #1895
- 导出图表报错 NumberFormatException · Issue #2236
- 查询条件下拉框数据有重复值 · Issue #2234
- 升级底层依赖autopoi版本到1.4.7
v1.6.5 版本发布
当前版本:v1.6.5 | 2023-11-20
集成依赖
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-spring-boot-starter</artifactId>
<version>1.6.5</version>
</dependency>
#升级日志
#issues
- 低代码开发模式下,字典code查询提示不允许使用在线配置 · Issue #2053
- 表格禁用勾选后,点击全选还是会选中 · Issue #5466
- 报表钻取,参数传递不对。 · Issue #1974
- 报表钻取相同栏位值跳转参数错误 · Issue #1980
- 超链接出现的问题:报表钻取 · Issue #1440
- 报表钻取参数不传递 · Issue #1616
- 升级1.6.2 后老是提示 注意,值可能存在SQL注入风险 · Issue #2032
- 单元格上对数据集进行过滤,报错 · Issue #2060
- 分版之后导出Excel报空指针异常 · Issue #2081
- 合计项,报 表达式处理出错,单元格 · Issue #2063
- 通知无法接收 · Issue #5503
- 富文本显示问题 · Issue #2150
- 导入报表配置限制json文件
- 字典参数URL被多次调用,影响效率 · issue #2049
- 在使用compute()内支持任意运算符计算时,如果除法为0,则为空 · issues #2082
- SUM方法参数过长报错问题Method code too large · issues #2004
- 分组且合并了单元,打印翻页后渲染异常 · issues #2025
- 打印小纸张报表预留的右边距过大影响正常文本内容显示 · issues #2042
- 请自定义 JmReportTokenServiceI 的实现类,获取用户账号不允许为空! #2151