# 金蝶云星空报表类型全景与选型

金蝶云星空提供了多种报表开发方式，选错类型会导致开发成本成倍增加。本文件帮助判断业务需求适合哪种报表。

## 报表类型总览

| 类型 | 开发方式 | 适用场景 | 复杂度 | 典型用途 |
|---|---|---|---|---|
| 直接SQL账表 | BOS 账表 + 取数 SQL（只读 SELECT） | 数据来自业务表、列表/汇总展示、按条件查询 | ★☆☆ | 销售汇总、库存查询、应收应付明细、自定义统计表 |
| 单据报表 | 基于单据模板自动生成 | 单据/序时簿的列表展示，无复杂取数 | ★☆☆ | 单据列表、序时簿、基础资料列表 |
| 动态表单报表 | BOS 动态表单 + 报表插件（C#） | 复杂交互、图表、下钻、自定义布局、按钮操作 | ★★★ | 仪表盘、分析报表、带图表的管理驾驶舱 |
| RDL报表（RDLC） | 报表设计器 + 数据集 | 复杂打印/分页/分组/汇总布局 | ★★☆ | 正式打印单据、财务报表、多级分组报表 |
| 即时报表 | 临时查询功能 | 快速验证 SQL、临时查看数据 | ☆☆☆ | 数据验证、临时统计 |
| 简易报表 | 简单配置 | 极简字段展示 | ☆☆☆ | 简单列表 |

## 选型决策

### 优先选「直接SQL账表」的场景
- 数据来源是标准业务表（采购、销售、库存、财务、HR 等模块的单据/基础资料）
- 需要灵活取数：多表 JOIN、聚合、条件过滤
- 展示形式是列表或汇总，不需要图表
- 需要按组织/权限控制取数范围
- 需求变化快，希望快速交付

### 优先选「动态表单报表」的场景
- 需要图表（柱状、折线、饼图）
- 需要下钻（点击行 → 打开明细/另一张报表）
- 需要自定义交互（按钮、刷新、参数联动）
- 需要复杂布局或混合展示
- 需要编写 C# 插件做取数增强（AbstractReportPlugIn）

### 优先选「RDL报表」的场景
- 需要正式打印格式（套打、固定纸张、分页）
- 需要复杂分组、小计/合计、多级汇总
- 需要导出为 PDF/Excel 的正式文档
- 数据量较大且需要分页呈现

### 优先选「单据报表」的场景
- 就是标准单据的列表/序时簿，无额外取数逻辑
- 只需要调整字段显示、排序、过滤
- 需要和单据联查、权限天然继承

### 优先选「即时报表」的场景
- 临时验证 SQL 或数据
- 给顾问/管理员快速查数
- 不是正式交付物

## 关键判断问题（选型时必问）

1. 数据来源是标准业务表，还是需要插件处理（如跨系统、内存计算）？
2. 需要图表/下钻/交互吗？
3. 需要正式打印格式吗？
4. 数据量大吗？需要分页/性能优化吗？
5. 是否需要按用户/组织控制能看到的数据？

## 组合建议

- 直接SQL账表 + 账表表单插件：可在账表上增加双击下钻、按钮、事件处理（通过 C# 表单插件实现）
- 动态表单 + 报表插件：最灵活，取数完全由代码控制，可做任意复杂逻辑
- RDL + 存储过程/视图：复杂打印报表的常见组合

## 常见误区

- ❌ 需要图表却选了直接SQL账表 → 只能改动态表单
- ❌ 需要正式打印却选了直接SQL账表 → 打印格式受限，应选 RDL
- ❌ 复杂取数（跨单据、内存计算）却选了直接SQL账表 → SQL 写死或性能差，应考虑插件
- ❌ 简单列表却选了动态表单 → 开发成本过高
