FineReport 8.0 知识图谱(MOC)
本笔记为 FineReport 8.0 知识体系的 Obsidian 总索引,覆盖安装部署、报表设计、参数查询、图表、填报、决策报表、移动端、权限安全、系统运维、集成开发、性能优化、公式函数等模块。各模块通过
[[]]双链连接,形成知识图谱。
模块导航
- 一、FineReport 基础与安装部署
- 二、数据连接
- 三、数据集与数据准备
- 四、报表设计核心
- 五、参数与查询
- 六、图表
- 七、填报
- 八、决策报表与可视化大屏
- 九、移动端
- 十、权限与安全
- 十一、系统管理与运维
- 十二、集成与二次开发
- 十三、性能优化
- 十四、公式与函数
- 十五、常见问题与最佳实践
一、FineReport 基础与安装部署
1.1 产品概述
- 定位:企业级 Web 报表工具,支持复杂报表、填报、大屏、移动端。
- 报表类型:
- 普通报表(.cpt):类 Excel 设计,支持扩展、分组、交叉。
- 聚合报表(.cpt):不规则报表,通过聚合块拼接。
- 决策报表(.frm):可视化大屏/驾驶舱,组件化布局。
- 架构:设计器(本地设计)+ 服务器(Web 应用)+ 数据库/数据源。
- 典型场景:管理驾驶舱、经营分析、数据填报、移动报表、大屏可视化。
1.2 安装与部署
- 环境要求:JDK 1.6+(建议 1.8)、Tomcat 6+、Windows/Linux。
- 部署方式:
- 独立部署:使用内置 Tomcat。
- 集成部署:将 Web 工程放入 Tomcat、WebLogic、WebSphere、JBoss 等。
- 目录结构:
reportlets:报表模板存放目录。resources:图片、样式等资源。logs:日志文件。WEB-INF/config:核心配置(datasources.xml、log.xml、server.xml)。
- 配置文件:
datasources.xml:数据源连接池配置。server.xml:服务器端口、内存、字符集。
- 服务管理:启动、停止、重启;Windows 服务注册;Linux 脚本。
- 升级与迁移:版本升级需备份模板、配置、数据库;迁移注意授权文件。
- 授权注册:导入 license 文件,激活模块。
1.3 设计器基础
- 界面:菜单栏、工具栏、模板面板、数据集面板、属性面板、日志面板。
- 文件类型:
.cpt(普通/聚合)、.frm(决策报表)。 - 预览方式:分页预览、填报预览、数据分析预览、移动端预览。
- 远程设计:连接远程服务器,直接编辑服务器模板。
- 模板加密:保护模板不被篡改。
二、数据连接
2.1 数据源类型
- 关系型数据库:MySQL、Oracle、SQL Server、DB2、PostgreSQL、SQLite、Access、Sybase、Informix、达梦、人大金仓、GBase。
- 多维数据库:SSAS、Essbase、SAP BW、Mondrian。
- 程序数据源:Java 自定义数据源。
- 文件数据源:Excel、文本、XML、JSON、远程文件。
- 大数据/NoSQL(部分需插件):Hive、Spark SQL、Impala、MongoDB、Redis。
2.2 连接管理
- 连接操作:新建、编辑、删除、测试。
- 连接池:最大连接数、超时时间、空闲回收。
- JDBC/ODBC:加载驱动,配置 URL、用户名、密码。
- 权限:数据连接可分配给特定用户/角色。
- 字符编码:解决中文乱码。
- 驱动管理:上传 JDBC 驱动 jar 包。
三、数据集与数据准备
3.1 数据集类型
- 数据库查询、存储过程、内置、文件、SAP、多维数据库、程序、关联、树数据集。
3.2 数据库查询
- SQL 编辑器:语法高亮、多行编辑。
- 多表关联:JOIN、子查询。
- 参数化查询:使用
where 字段 = '${参数}'。 - 动态 SQL:
${}:直接替换,存在 SQL 注入风险。#{}:预编译参数,安全防注入。
- 预览:查看数据集结果。
- SQL 优化:避免
SELECT *,建立索引,减少关联表。
3.3 存储过程数据集
- 调用数据库存储过程,传递输入参数,处理单/多结果集。
3.4 文件数据集
- Excel:支持 xls/xlsx,指定 sheet 和区域。
- 文本:分隔符解析。
- XML/JSON:解析结构化数据。
- 远程文件:通过 HTTP 获取文件,路径可参数化。
3.5 关联数据集
- 多数据集通过关联条件组合,支持内连接、左连接、右连接、全连接。
3.6 树数据集
- 构建父子层级,用于树控件、下拉树、组织架构展示。
3.7 程序数据集
- 实现 Java 接口,自定义数据读取逻辑,部署到服务器。
四、报表设计核心
4.1 报表设计基础
- 单元格命名(A1、B2)、行列操作、合并、边框、纸张与页面设置。
4.2 数据列与单元格扩展
- 扩展方向:不扩展、纵向扩展、横向扩展。
- 父格设置:左父格、上父格,控制扩展归属。
- 分组:普通分组、相邻连续分组、自定义分组、条件分组。
- 汇总:SUM、COUNT、AVG、MAX、MIN、VAR、STDEV。
- 累计:逐层累计、跨层累计、条件累计。
- 占比与排名:百分比、RANK。
- 层次坐标:
- 相对层次坐标:
A1[A2:1]表示取当前组内第一条。 - 绝对层次坐标:
A1[!0]表示取全部。 - 位移坐标:
A1[A2:-1]上一条。
- 相对层次坐标:
- 数据过滤、排序、自定义值显示。
4.3 单元格元素
- 文本、数据列、公式、富文本、图片、图表、子报表、二维码、条形码、斜线表头、控件。
4.4 单元格属性
- 字体、对齐、自动换行、缩进、边框背景、行高列宽、锁定、格式(数字/日期/货币/自定义)。
4.5 单元格形态
- 数据字典:内置、公式、SQL、自定义。
- 公式形态:动态显示内容。
- 金额大写:数字转中文大写。
- 条形码/二维码形态:生成条码、二维码。
- 自定义形态:Java 类扩展。
4.6 条件属性
- 条件类型:当前值、公式、行/列条件。
- 效果:字体颜色、背景色、行高列宽、新值替换、控件切换、可见性、分页控制、打印/导出控制。
- 优先级:从上到下依次匹配。
4.7 超级链接
- 类型:网络报表、网页、邮件、JavaScript、动态参数传递、下载、填报提交。
- 条件超链接:满足条件才显示链接。
4.8 分页与打印
- 分页设置:行分页、列分页、分页条件。
- 重复标题行/列、冻结行列、页面缩放。
- 页眉页脚、页码。
- 打印:区域、顺序、份数。
- 导出:PDF、Excel、Word、图片、HTML、CSV。
4.9 样式与主题
- 全局样式、预定义样式、样式继承、模板主题。
4.10 聚合报表设计
- 聚合块创建、大小位置调整,适合不规则报表。
五、参数与查询
5.1 参数基础
- 类型:模板参数、数据集参数、全局参数。
- 默认值、数据类型(字符串、数字、日期、布尔)。
5.2 参数面板
- 设计参数面板布局,控件绑定参数,查询按钮触发查询,参数联动。
5.3 参数控件类型
- 文本、数字、日期、下拉框、下拉复选框、单选框组、复选框组、树、下拉树、列表、按钮、文件、密码、标签、查询按钮、网页框。
5.4 控件属性
- 默认值、数据字典、是否允许为空、可见性、可用性。
- 事件:初始化后、值改变、点击、编辑前、编辑后。
5.5 参数传递
- URL 参数:
?参数名=值。 - 超级链接传参、JavaScript 传参、模板间传参、参数回传与联动。
5.6 参数高级应用
- 动态列、动态表名、动态排序、参数化 SQL、防注入、参数与数据字典联动。
六、图表
6.1 图表类型
- 柱形图、条形图、折线图、面积图、饼图、环形图、仪表盘、雷达图、散点图、气泡图、组合图、甘特图、漏斗图、热力地图、区域地图、点地图、GIS 地图(插件)、HTML5 图表。
6.2 图表数据配置
- 数据来源:数据集或单元格数据。
- 分类、系列、值设置,多系列,数据过滤、排序、汇总。
6.3 图表属性
- 标题、图例、数据标签、坐标轴、网格线、提示框、交互、颜色样式、背景边框。
6.4 图表交互
- 图表联动、钻取、超级链接、刷新、动态展示、自适应。
6.5 地图
- 内置地图、自定义地图、数据绑定、钻取、联动、配色。
七、填报
7.1 填报基础
- 填报与查看区别,填报模板设计,填报属性设置。
7.2 填报控件
- 文本、数字、日期、下拉框、下拉复选框、单选框组、复选框组、文件上传、图片上传、文本域、密码、按钮、列表、树。
7.3 数据提交
- 提交类型:智能提交、插入提交、更新提交、删除提交。
- 提交条件:满足条件才提交。
- 提交事件:提交前、提交后、提交失败。
- 多源填报:多个数据源同时写入。
- 多 Sheet 填报、批量填报。
7.4 数据校验
- 必填、长度、格式、自定义校验、提示信息。
7.5 填报交互
- 导入 Excel、批量导入、行式填报、填报暂存、数据回填、权限控制。
八、决策报表与可视化大屏
8.1 决策报表基础
- 概念:组件化报表,适合大屏。
- 布局:绝对布局、自适应布局。
8.2 决策报表组件
- 报表块、图表块、参数面板、控件、Tab 块、网页框、图片、文本、按钮。
- 组件拖拽、缩放、对齐、层级。
8.3 组件交互
- 参数联动、组件刷新、超级链接跳转、组件事件、报表块与图表块联动。
8.4 自适应与分辨率
- 屏幕分辨率适配、组件自适应、缩放模式、大屏尺寸设计、背景设置、动画效果。
8.5 决策报表预览
- 分页预览、填报预览、数据分析预览、移动端预览。
九、移动端
9.1 移动端概述
- 移动端 App、HTML5 移动端,与 PC 端差异。
9.2 移动端报表设计
- 移动端模板布局、手机重布局、控件适配、移动端图表、移动端填报。
9.3 移动端特有功能
- 扫码、定位、拍照上传、消息推送、批注、离线预览(视版本)、缓存。
9.4 移动端集成
- 微信集成、钉钉集成、App 集成、单点登录、移动端权限。
十、权限与安全
10.1 用户与组织
- 用户、角色、部门、岗位管理,导入导出,关联关系。
10.2 报表权限
- 目录权限、模板权限、工具栏权限、按钮权限、单元格权限。
- 权限粒度:查看、填报、修改、删除、导出、打印。
10.3 数据权限
- 行权限、列权限、数据连接权限、规则配置。
10.4 登录认证
- 内置认证、LDAP/AD、单点登录(SSO)、OAuth、验证码、登录页定制。
10.5 安全设置
- HTTPS、数据库密码加密、防 SQL 注入、水印、防下载/打印、模板加密、操作日志审计。
十一、系统管理与运维
11.1 平台管理
- 目录管理、报表挂载、节点管理、主题管理、外观设置、首页设置。
11.2 定时调度
- 任务创建、频率(简单重复、固定周期、Cron 表达式)。
- 输出格式:PDF、Excel、Word、图片、HTML、CSV。
- 推送方式:邮件、FTP、短信。
- 任务日志、监控、失败重试。
11.3 日志管理
- 访问日志、操作日志、错误日志、内存日志、日志级别设置、导出与清理。
11.4 备份与恢复
- 模板、配置、数据库备份,系统迁移,版本回滚。
11.5 性能监控
- 系统信息、内存、线程、连接池、会话监控。
11.6 注册与插件
- 注册管理、插件安装/卸载/更新、常用插件介绍。
十二、集成与二次开发
12.1 页面集成
- iframe 嵌入、URL 直接访问、参数传递、免登录访问、与 Java 项目集成。
12.2 JavaScript API
- 获取报表对象、刷新报表、获取/设置参数、提交填报、打印、导出。
12.3 单点登录集成
- SSO 原理、Token 认证、Cookie 认证、与 OA/ERP 集成。
12.4 自定义开发
- 自定义函数、控件、程序数据集、提交、数据源、决策报表组件、事件处理。
12.5 插件开发
- 插件工程搭建、配置、打包部署、生命周期、调试。
12.6 接口与 WebService
- RESTful 调用、WebService 集成、数据推送接收、跨系统数据交互。
十三、性能优化
13.1 报表层优化
- 数据集优化、减少数据量、分页查询、单元格扩展优化、公式优化、条件属性优化、图表优化、模板缓存、异步加载。
13.2 SQL 层优化
- SQL 语句优化、索引设计、避免全表扫描、减少关联表、参数注入与预编译、连接池配置。
13.3 服务器层优化
- JVM 参数(-Xms、-Xmx、-XX:MaxPermSize)、Tomcat 线程池、数据库连接池、内存监控、GC 配置。
13.4 集群与负载均衡
- Nginx 负载均衡、Session 共享(Redis)、文件同步、集群部署、高可用架构。
13.5 大数据量处理
- 设计策略、分页加载、数据缓存、异步加载、数据抽取与预处理。
相关:二、数据连接、十一、系统管理与运维
十四、公式与函数
14.1 公式基础
- 单元格公式、参数公式、条件公式、SQL 公式、语法与引用。
14.2 函数分类
- 数学与三角:SUM、ABS、ROUND、CEILING、FLOOR、MOD、POWER、SQRT、SIN、COS、TAN。
- 文本:CONCATENATE、LEFT、RIGHT、MID、LEN、TRIM、UPPER、LOWER、REPLACE、SPLIT、FORMAT。
- 日期时间:NOW、TODAY、DATE、YEAR、MONTH、DAY、HOUR、MINUTE、SECOND、DATEDIFF、DATEADD。
- 逻辑:IF、AND、OR、NOT、SWITCH、CASE。
- 数组:ARRAY、INDEXOF、ARRAYLEN。
- 报表:COUNT、SUM、AVG、MAX、MIN、VAR、STDEV、RANK、PERCENT。
- 数据库:SQL、SQLSELECT、SQLVALUE。
- JSON:JSONPARSE、JSONGET、JSONSET。
- 正则:REGEXP、REGEXPREPLACE。
- 加密:MD5、SHA、BASE64、ENCRYPT。
- 其他:UUID、EVAL、GETURLPARAM、GETCELLVALUE。
14.3 层次坐标函数
- 单元格引用、相对层次坐标、绝对层次坐标、跨层累计、条件汇总、位移引用。
- 应用:累计、占比、排名、同期比较。
14.4 常用公式示例
- 动态标题、动态日期、条件显示、金额大写、数据脱敏、动态链接。
十五、常见问题与最佳实践
15.1 常见错误与排查
- 数据连接失败、数据集预览无数据、模板无法预览、参数无效、填报提交失败、图表不显示、导出乱码、内存溢出、权限不生效。
15.2 调试与日志
- 设计器日志、服务器日志、调试模式、错误码分析、性能日志分析。
15.3 设计规范
- 模板/数据集/参数命名规范、颜色样式规范、报表布局规范、大屏设计规范、移动端设计规范。
15.4 最佳实践
- 复杂报表开发流程、填报类报表设计要点、可视化大屏设计要点、移动端设计要点、多系统集成方案、性能优化实践、安全加固实践、版本管理与发布流程。
使用说明(Obsidian 图谱构建)
- 创建主笔记:将本文件保存为
FineReport 8.0 知识图谱.md。 - 拆分模块:每个
## 模块标题下的内容可复制到独立笔记,文件名与[[]]中的链接保持一致(例如一、FineReport 基础与安装部署.md)。 - 建立双链:模块间已通过
[[]]链接,拆分后自动形成知识图谱。 - 添加标签:可根据需要为每个模块笔记添加 YAML frontmatter,如
tags: [FineReport, 报表]。 - 细化子节点:可进一步将每个模块下的
###小节拆分为独立笔记,使用[[模块名#小节标题|小节标题]]链接。