报表引擎 -架构描述
介绍
本文档是报表平台的技术架构描述,文中会描述主要的设计思路和设计决策。
架构目标和约束
报表平台作为独立的公共服务产品,可以简单的集成到各产品的报表应用
可维护性和可扩展性
- 扩展运算与分页独立实现,代码更易于维护
- 扩充表达式可以提高报表的运算能力
- 在此报表引擎上可以构建多维分析应用
可用性
- 能适用于上万条记录的报表数据量
- 适用于Web页面显示
易用性
- 针对技术人员,提供类似Excel编辑设计器
- 对多维分析提供专用设计器
- 其他情况下,需要再行开发设计器
实现约束
- 采用XXX实现
- 使用与XXX相同的表达式引擎和类似的表达式语法
- 采用XXX作为显示组件
架构表现
文档描述了系统的主要模型,包括:
用例模型从外部系统的角度描述了系统的行为。
用例模型
- 应用用例:描述用户如何与系统交互以实现预期的功能
用例 |
描述 |
基本要求 |
设计报表 |
报表设计人员通过这个用例设计一张报表 |
通过提供的报表设计器进行报表定义 |
浏览报表 |
使用者通过此用例查看报表数据 |
查看前有些报表需要输入参数 |
预览打印报表 |
使用者通过此用例以分页方式查看报表,并可以打印报表 |
|
填报 |
使用者通过此用例进行业务数据的输入 |
对于上报可能需要自动汇总功能 |
多维分析 |
数据分析人员通过此用例可以从多维度分析数据 |
专有的多维报表设计器,查看报表时提供交互功能 |
- 基础结构用例:描述应用用例的每一步如何添加诸如可用性、可靠性、性能、容错性等质量属性
- 扩展用例
分析模型
架构性重要分析元素
包 |
描述 |
基本要求 |
扩展运算引擎 |
对设计的报表通过模型扩展并进行运算,生成完整的最终报表 |
需要注意扩展和运算的效率 |
分页引擎 |
把最终报表通过分页引擎和分页规则生成多页报表 |
|
数据源 |
提供给报表的数据来源 |
外部定义数据源程序集,实现特定接口 |
表达式引擎 |
实现报表运算中定义的表达式 |
可以扩充表达式增加报表的运算能力 |
报表元数据 |
报表的定义描述文件 |
报表文件以XML方式存储 |
设计器 |
对报表提供统一的表格式设计器,对多维分析提供专有设计器 |
使用ViewGrid控件 |
打印预览 |
以分页方式浏览数据 |
实现轻量级预览控件,减少系统资源 |
架构性重要用例实现
设计模型
设计元素
部署结构
组件结构
更多内容:
报表引擎设计.pdf
欢迎转载,转载请注明:转载自周金根 [ http://zhoujg.cnblogs.com/ ]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架