报表引擎 - 研究润乾报表的实现
使用过很多公司的报表试用版本,个人觉得润乾报表 是一个非常灵活的产品,虽然目前的设计器还只能适用于开发人员:)
在试用润乾报表过程中,认真揣摩她的核心概念,发现自己也可以实现一个类似的报表引擎,所以自己也使用Delphi实现了一个显示报表的核心部分的报表引擎(还未添加填报功能),可以看看我以前写的《交叉表的报表设计》示例
实现报表引擎需要使用用到以下两个个核心技术和概念:
- 数学表达式引擎
- 报表扩展模型
准备重新实现一个.Net下的报表引擎,可以基于它之上进行表单设计、查询窗体、报表、处理数据分析
就像以上说的需要基于两个核心技术,所以会先实现一个表达式引擎。我在以前的文章Antlr实现表达式引擎的语法文件中写了使用Antlr实现的一个示例的主要语法文件。后期我会使用Antlr编写一个数学表达式计算引擎,到时会和大家分享。
网上还有其他可以参考的文章和资料,大家可以参考。例如:
- State of the Art Expression Evaluation
- An extensible math expression parser with plug-ins
- Implementing an Excel-like formula engine
- Flee - Fast Lightweight Expression Evaluator