Fanruan Suite — 帆软 FineReport 11.0 + FineBI 7.0 能力实现
Overview
本 Skill 让 WorkBuddy 在不安装帆软产品的情况下,产出与 FineReport 11.0(企业级报表)和 FineBI 7.0(自助式 BI)等价的分析成果。覆盖两大产品线:FineReport 报表能力(中国式复杂报表、决策报表/大屏、参数查询/填报、导出打印)与 FineBI 自助分析能力(数据准备/加工、自助探索分析、仪表板联动/钻取、快速计算、数据预警)。输出形态为 HTML+ECharts 交互式 Web 仪表板和 Excel(openpyxl) 中国式报表。
需求识别与产品线分流
接到需求后,先识别属于 FineReport 还是 FineBI 场景,再选择输出形态:
| 需求特征 | 产品线 | 输出形态 | 参考资源 |
|---|---|---|---|
| 中国式复杂报表 / 分组/交叉/主子/聚合 / 填报 / 导出 Excel | FineReport | Excel(.xlsx) | references/finereport-guide.md、scripts/generate_excel_report.py |
| 数据大屏 / 驾驶舱 / Dashboard / 图表分析 / 联动钻取 | FineReport | Web(HTML+ECharts) | references/finereport-guide.md、assets/report-dashboard-template.html |
| 自助分析 / 自助 BI / 探索分析 / 拖拽分析 / 同比环比 / 累计排名 | FineBI | Web(HTML+ECharts) | references/finebi-guide.md、assets/bi-dashboard-template.html |
| 仪表板 / 多组件联动 / Tab页签 / 层级钻取 / 数据预警 | FineBI | Web(HTML+ECharts) | references/finebi-guide.md、assets/bi-dashboard-template.html |
| 既要可视化又要数据文件 | 两者均可 | 混合:Web 展示 + Excel 下载 | 两个指南均需阅读 |
| 仅需方案/设计文档 | 两者均可 | 方案文档(能力地图输出) | 对应参考文档 |
关键词速查
FineReport 关键词:报表、表格、分组、交叉、主子、聚合、大屏、驾驶舱、填报、导出、打印、PDF、Excel
FineBI 关键词:自助分析、自助BI、探索分析、仪表板、Dashboard、维度、度量、同比、环比、累计、排名、占比、钻取、联动、预警
核心工作流
Step 1 澄清需求(必做,不要假设)
确认以下要素,缺失时向用户提问:
- 产品线:FineReport 报表场景还是 FineBI 自助分析场景?
- 报表/分析类型:分组/交叉/主子/聚合报表?还是探索分析/仪表板/大屏?
- 数据来源:用户提供 CSV/Excel/JSON,还是需要内置示例数据?
- 维度与指标:行分组字段、列维度、汇总指标及计算方式(求和/均值/占比/环比/同比/累计/排名)。
- 交互需求:是否需要参数查询、联动、钻取、Tab 页签?
- 输出形态:浏览器预览(HTML)、导出 Excel、打印、还是用于汇报?
Step 2 准备数据
- 将数据整理为结构化数据集(JS 数组 of object 或 Python list of dict),字段名清晰、类型正确。
- 涉及数值计算(合计、占比、环比、同比、累计、排名等)时,必须用代码计算(Python 或 JS),禁止口算。
- 数据量较大时,先做聚合再渲染,避免页面卡顿或文件过大。
- 无真实数据时,使用内置示例数据并明确标注「示例数据,可替换为真实数据」。
Step 3 构建产物
Web 形态(HTML+ECharts):
- FineReport 场景:复制
assets/report-dashboard-template.html到工作区为骨架,替换示例数据、图表与控件。参考references/finereport-guide.md的布局与交互模式。 - FineBI 场景:复制
assets/bi-dashboard-template.html到工作区为骨架,替换数据集、组件与联动逻辑。参考references/finebi-guide.md的自助分析模式。 - 图表选型与配置:参考
references/chart-and-component-reference.md的选型决策树和 ECharts 配置模板。 - 交付前必须用
present_files打开 HTML 预览验证渲染。
Excel 形态(openpyxl):
- 运行
scripts/generate_excel_report.py作为起点,改造为用户需要的报表结构。参考references/finereport-guide.md的分组/交叉/主子/填报实现详解。 - 在受管 venv 中安装 openpyxl(
pip install openpyxl),禁止污染全局环境。
混合形态:Web 页面内提供「导出 Excel」入口,由 openpyxl 生成 .xlsx 文件供下载。
Step 4 质量检查(交付前必检)
- [ ] 报表/分析类型与用户需求一致(分组/交叉/主子/聚合/探索分析/仪表板)
- [ ] 合计、小计、占比、环比、同比等数值已由代码计算并核验
- [ ] 主题适配:Web 页面背景与文字颜色匹配当前 IDE 主题(浅色/深色)
- [ ] 金融/股票类指标遵循中国惯例:涨红跌绿、货币 ¥
- [ ] 金额千分位、百分比 1 位小数、大金额用「万/亿」单位
- [ ] 参数控件可用,过滤结果正确,联动/钻取无死链
- [ ] Excel:表头合并正确、边框完整、数字格式、冻结窗格与打印设置合理
- [ ] 示例数据有「可替换」标注
- [ ] 生成的 HTML 单文件可独立打开预览,无外部依赖报错
FineReport 能力模块
模块 A:中国式复杂报表
- 分组报表:行分组 + 组内明细 + 小计行 + 总计行。Web 用
<table>+rowspan合并;Excel 用合并单元格 +SUM公式。 - 交叉报表:行维度 × 列维度双向扩展,交叉点为汇总值。先代码透视(JS
reduce或 Pythonpandas.pivot_table)再渲染。 - 主子报表:主子表通过主键关联。Web 用 Tab 或联动明细区;Excel 用多 sheet + 超链接跳转。
- 聚合/不规则报表:斜线表头(CSS transform)、多行表头(rowspan+colspan)、自由布局(CSS Grid)。
- 详见
references/finereport-guide.md第三章。
模块 B:决策报表与大屏
- 组件化布局:参数面板 + KPI 指标卡 + 图表区 + Tab 页签 + 明细表。
- 大屏风格(仅用户明确要求):深色渐变背景 + 发光描边 + 数字滚动 + 自动轮播。
- 图表选型:趋势→折线,占比→饼/环形,对比→柱/条形,排名→横向条形,分布→散点/热力,地域→地图。
- 交互:参数过滤重渲染、图表点击联动、钻取下钻。
- 详见
references/finereport-guide.md第四章。
模块 C:参数查询与填报
- 参数面板:日期范围、下拉选择、文本框、多选。触发方式:查询按钮或即时过滤。
- 联动:A 控件变化 → 重载 B 控件选项 → 刷新报表。
- 填报:Web 用表单 + JS 输入校验;Excel 用
DataValidation(整数/小数/序列/日期/自定义公式)做录入校验。 - 详见
references/finereport-guide.md第五、六章。
模块 D:导出打印与调度
- Web 导出:
window.print()+@media print、EChartsgetDataURL()导出 PNG、CSV 导出(含 BOM)、Excel 导出(openpyxl 或 SheetJS)。 - Excel 导出:
print_area、page_setup(A4/横向/缩放)、print_title_rows(每页重复表头)、页眉页脚。 - 定时调度:提示用户可将生成脚本配置为 WorkBuddy 定时任务(automation)。
- 详见
references/finereport-guide.md第七章。
FineBI 能力模块
模块 E:数据准备与加工(自助ETL)
- 数据集管理:JS 全局数据集变量,字段类型声明(维度/度量/日期)。
- 数据加工函数:
filterData(过滤)、groupBy(分组汇总)、addColumn(新增列)、sortData(排序)、pivot(交叉透视)。 - 快速计算:同比(YoY)、环比(MoM)、累计、排名、占比。
- 详见
references/finebi-guide.md第三章。
模块 F:自助分析与仪表板
- 组件化布局:KPI 卡 + 图表组件 + 表格组件 + 过滤组件,CSS Grid 12 列栅格。
- 联动机制:全局过滤器 → 事件驱动 → 所有注册组件刷新。核心是
LinkageState状态管理。 - 钻取机制:层级钻取(区域→省份→城市),面包屑导航,上钻/下钻。
- Tab 页签:多视图切换,每个 Tab 独立分析维度。
- 详见
references/finebi-guide.md第四章。
模块 G:数据可视化与智能推荐
- 智能图表推荐:根据维度数、度量数、字段类型自动推荐最佳图表类型。
- 调色板:帆软风格调色板 + 金融红涨绿跌 + 预警色系。
- 详见
references/chart-and-component-reference.md。
模块 H:数据预警与权限
- 条件预警:指标阈值检测 + 表格条件格式(超阈值标红)+ KPI 卡预警样式。
- 数据权限模拟:按角色过滤数据集(行权限),按字段控制可见性(列权限)。
- 详见
references/finebi-guide.md第五、七章。
通用规范(严格遵守)
1. 主题适配(强制)
Web 产物必须匹配当前 IDE 主题。用 CSS 变量定义色板(:root 浅色,[data-theme="dark"] 深色),主题切换时重建所有 ECharts 图表。ECharts 主题必须显式设置文本/轴线/网格颜色,禁用默认黑色。
2. 中国式数字习惯
- 金额默认 ¥ + 千分位;百分比 1 位小数;大金额用「万/亿」单位。
- 金融场景红涨绿跌(与欧美相反)。
3. 中文报表风格
表头居中加粗带底色、合并单元格表达层级、合计行突出(加粗/底纹)、数字右对齐。
4. 代码即事实
所有数值计算落地为代码并运行验证。不依赖口算。
5. 文件落盘
生成的 HTML/Excel 写入工作区并明确给出路径。Excel 用 openpyxl(在受管 venv 中安装)。
6. 示例数据标注
内置示例数据必须标注「示例数据,可替换为真实数据」,结构与真实场景一致。
Resources
references/
finereport-guide.md— FineReport 11.0 能力地图与实现指南:产品能力全景、能力→HTML/Excel 实现映射、中国式复杂报表详解(分组/交叉/主子/聚合)、决策报表与大屏设计、参数查询与联动、数据填报、导出打印、行业模板速查。finebi-guide.md— FineBI 7.0 能力地图与实现指南:产品能力全景、能力→HTML 实现映射、数据准备与自助ETL(filter/groupBy/pivot/快速计算)、自助分析与仪表板设计(联动机制/钻取/Tab/面包屑)、数据预警与条件格式、智能图表推荐、权限模拟。chart-and-component-reference.md— 图表与组件参考:图表选型决策树、ECharts 配置模板(折线/柱/饼/地图/热力/雷达)、调色板设计、交互模式(联动/钻取/Tab/数字滚动)、主题适配(CSS变量/切换/读取)、格式化函数(金额/百分比/日期)。
assets/
report-dashboard-template.html— FineReport 式报表/大屏起步模板:三段式布局(标题栏+参数面板+仪表板),含 KPI 指标卡、趋势折线图、品类饼图、区域柱状图、产品排名条形图、销售明细分组表(含小计/总计),内置示例数据,浅/深主题切换、打印导出、参数过滤联动。bi-dashboard-template.html— FineBI 式自助分析仪表板模板:全局过滤器栏、Tab 三页签(经营总览/区域分析/产品分析),含 KPI 卡(同比环比)、趋势折线、品类饼图联动、环比柱状图(红涨绿跌)、累计面积图、区域排名可钻取、区域x品类热力图、产品雷达图、预警表格(条件格式)、面包屑导航。内置示例数据与联动状态管理。
scripts/
generate_excel_report.py— Excel 报表生成脚本:分组报表(区域分组+小计+总计+SUM公式)、交叉报表(行×列透视)、填报模板(DataValidation校验),含样式(表头底色/边框/数字格式)、冻结窗格、自动筛选、打印设置(A4横向/每页重复表头/页眉页脚)。直接运行生成 .xlsx 文件。
使用模式
模式 1:FineReport 报表场景
用户:"帮我做一个销售分组报表,按区域分组,有明细和小计,能导出Excel"
→ 读取 references/finereport-guide.md
→ 运行 scripts/generate_excel_report.py 改造
→ 或复制 assets/report-dashboard-template.html 做 Web 版
→ 交付 .xlsx 或 .html 文件
模式 2:FineBI 自助分析场景
用户:"帮我做一个自助分析仪表板,能按区域钻取,有同比环比,多Tab页签"
→ 读取 references/finebi-guide.md
→ 复制 assets/bi-dashboard-template.html 到工作区改造
→ 参考 references/chart-and-component-reference.md 选型
→ 交付 .html 文件,present_files 预览
模式 3:数据大屏场景
用户:"做一个数据驾驶舱大屏,深色背景,有地图和滚动数字"
→ 读取 references/finereport-guide.md 第四章(大屏设计)
→ 参考 references/chart-and-component-reference.md(大屏特殊组件)
→ 基于 assets/report-dashboard-template.html 改造为大屏风格
→ 交付 .html 文件
模式 4:方案设计文档
用户:"我们需要设计一套报表体系,帮我出个方案"
→ 读取对应参考文档的能力地图章节
→ 输出报表类型选型建议、数据流设计、权限方案、实施路径
→ 交付 Markdown 或 HTML 文档
Scan to join WeChat group