帆软FineReport报表开发小记
·
一、基础认知
1. 产品简介
FineReport 是企业级低代码报表工具,支持报表制作、数据填报、数据可视化大屏,兼容 MySQL、Oracle、SQLServer、PostgreSQL 等主流数据库,适配 PC 端、移动端、大屏多终端展示。
2. 两大核心模板
- 普通报表
基于 Excel 表格布局,依靠单元格扩展,适用于明细报表、汇总报表、交叉统计报表。 - 决策报表
自由画布布局,组件化拖拽,适用于数据大屏、管理驾驶舱、综合分析看板。
3. 核心机制
单元格扩展是帆软开发核心,分为:
- 向下扩展:展示列表明细数据
- 向右扩展:动态生成维度列(年月、分类)
- 父子单元格:控制数据遍历范围,是解决数据错位的关键
二、标准开发流程
- 需求梳理:确定查询条件、展示字段、汇总规则、导出、权限、终端适配
- 数据准备:配置数据连接、编写 SQL、创建数据集
- 模板设计:页面布局、字段绑定、扩展与父格设置
- 参数配置:查询控件、参数传参、联动筛选
- 样式优化:格式美化、条件格式、排版统一
- 高级功能:超链接、钻取、JS 事件、图表、填报
- 测试发布:分页测试、大数据量验证、移动端适配、平台发布
三、数据源与数据集
1. 数据集分类
- 服务器数据集:全局共享,统一维护,适合公共业务报表
- 模板数据集:仅当前模板生效,适合个性化临时报表
2. SQL 编写规范
- 禁止
select *,按需指定字段,减少数据库压力 - 大表必须加时间、范围筛选条件,配合索引
- 多表关联优先使用联表查询,减少多层子查询
3. 参数SQL写法
- 字符串条件:
where name = '${name}' - 数字条件:
where id = ${id} - 日期条件:
where create_time between '${startDate}' and '${endDate}'
四、单元格与常用公式
1. 数据绑定
直接拖拽数据集字段至单元格,支持自定义单元格元素:文本、数据、公式、图表。
2. 高频通用公式
// 空值处理
IF(ISNULL(A1),"--",A1)
// 数值保留2位小数
ROUND(金额,2)
// 日期格式化
DATEFORMAT(日期,"yyyy-MM-dd")
// 求和汇总
SUM(A1[A1:B1])
// 条件文本
IF(数量>100,"异常","正常")
五、参数面板与控件开发
1. 常用控件
文本框、日期选择器、日期区间、下拉单选/多选、树形控件、部门选择器。
2. 开发要点
- 参数名、控件名统一英文命名,杜绝中文参数
- 下拉框绑定数据集/数据字典,实现动态选项
- 配置「参数为空查询全部」,提升使用体验
- 复杂场景使用控件联动、级联筛选
3. 两种过滤方式
- 前置过滤(推荐):SQL where 条件传参,性能最优
- 后置过滤:模板内单元格条件过滤,适合轻量报表
六、样式与条件属性
1. 统一样式规范
- 表头:加粗、居中、固定背景色
- 内容:文本左对齐、数字居中/右对齐
- 统一字体、字号、完整边框,保证报表整洁
2. 条件属性常用场景
- 数据预警:负数标红、超标数据高亮
- 动态显示:根据权限/参数动态隐藏行列
- 格式控制:千分位、百分比、自定义颜色
七、高级功能
1. 图表可视化
柱状图、折线图、饼图、环形图、地图、雷达图,支持维度分组、指标计算、预警线、图例自定义。
2. 钻取与超链接
- 单元格超链接:跳转外部地址、跳转子报表、携带主键参数
- 层级钻取:汇总报表 → 明细报表,实现数据穿透查询
3. 自定义JS
常用场景:
- 默认日期赋值(本月、上月、本年)
- 自定义导出、打印按钮事件
- 前端数据校验、弹窗提示
4. 填报报表
开启填报模式,设置单元格可编辑、数据校验、提交按钮,实现业务数据线上录入与入库。
八、报表性能优化
- SQL 优化:合理加索引、限制查询范围、简化复杂SQL
- 数据集优化:复用公共数据集,删除无用冗余数据
- 模板优化:合理设置父格、减少多层合并单元格
- 大数据方案:开启分页、异步查询、数据集缓存
- 资源管控:关闭无用条件属性、减少复杂渲染组件
九、常见问题与解决方案
-
数据重复、错乱
原因:父子格未绑定、多数据集混用
解决:手动指定父格,拆分独立数据区域 -
预览无数据
原因:参数未传值、SQL语法错误、数据连接异常
解决:单独执行SQL测试、核对参数格式 -
分页错乱
解决:固定分页行、避免大范围合并单元格 -
移动端排版错乱
解决:决策报表使用自适应容器,减少固定宽高
十、开发规范
- 命名规范:数据集、参数、控件使用简洁英文命名
- 注释规范:复杂公式、自定义SQL、JS脚本增加注释
- 复用规范:公共字典、通用样式、常用数据集统一复用
- 安全规范:禁止硬编码账号密码,合理配置数据权限
- 版本规范:模板修改前备份,便于问题回滚
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)