报表引擎
报表引擎起源于流行的工作流引擎的原理、报表格式的定义、报表内容的各种算法,产生报表引擎的思想。
它主要是引用工作流引擎的流程运转原理,在原始数据的基础上,定义报表的格式、报表的算法,根据定义的算法自动执行计算,并输出计算后的结果,再根据定义的报表格式显示报表的内容。
基本信息
- 中文名
报表引擎
- 外文名
The report engine
- 运行方式
自动运行
- 行业
计算机
概述
报表引擎起源于流行的工作流引擎的原理、报表格式的定义、报表内容的各种算法,产生报表引擎的思想。
它主要是引用工作流引擎的流程运转原理,在原始数据的基础上,定义报表的格式、报表的算法,根据定义的算法自动执行计算,并输出计算后的结果,再根据定义的报表格式显示报表的内容。
报表引擎根据定义的报表主题及它的算法,在人工或日程安排的触发下,自动运行。报表引擎根据报表主题,从数据库的原始数据的基础上,提取原始的数据,依据定义的报表算法,进行自动计算;在提取报表主题及算法运算的过程中,报表引擎依据定义各种参数,实现所需的运算。
报表引擎输出的数据信息,经报表解释接口实现它的解释,并生成相应的报表展示给用户。
用户也可以根据实际需求,随时调整报表主题及算法的定义语言,再重新运行报表引擎时,报表引擎立即根据定义后的内容进行处理,产生经过改变后的报表数据。这样,报表引擎可以跟随用户的需求变化,而所需求的维护量非常少,也非常简单,灵活。
对于报表的输出格式,在报表引擎的输出接口中,定义要求的报表格式;当用户打印报表时,报表引擎根据定义的格式打印所需的报表;同时,如果用户需要改变报表的样式时,可以非常即时、灵活的重新定义,以满足用户的各种需求。
结构
报表引擎从整体上划分为:报表请求部分、格式定义部分、引擎定义部分、引擎运行部分、策略引擎部分、引擎监控部分、引擎输出部分,下面对各个部分进行简单的介绍。
报表引擎的总体结构分为七个部分进行介绍,每一部分都是独立运行的一个模块。它们之间经过相互协调工作,共同完成整个报表从定义、请求、执行、监控、分派、显示功能。
整个报表引擎的核心的部分是报表引擎运行器、策略引擎器以及报表生成器。其它几是报表引擎的辅助部分,协调报表引擎的运作。
(1)报表请求器:主要是实现对报表请求参数的封装,实现统一的入口。并负责对请求及响应的集中控制、分配。
(2)报表格式定义器:在这一部分中,主要的功能是实现报表的输出格式的定义、报表栏位中输出的格式(包括字体、颜色、框线、显示样式等),输出的内容(主要是从输出的对象、输出对象的比较简单的计算、页头、分组、页尾等)。
(3)引擎定义器:主要是指当报表引擎运行时,它的每个算法、算法执行次序、是否循环或分解、引用的外部应用接口、路由等信息。算法包括从数据库中读取原始的数据信息、对各种参数进行的计算的算法,算法的形式参数、实际参数、数据类型。
(4)引擎运行器:这也是报表引擎中比较重要的部分,这一部分的性能影响到整个报表引擎的性能。它根据在报表引擎定义部分定义的报表主题、各种算法、次序等信息,进行计算,并返回计算后的结果。对于分布式的报表引擎,路由信息比较重要;当定义了路由信息之后,引擎运行到该处后,将定义在路由表中的引擎起动,并从相应的步骤处开始运行,并返回运行的结果。
(5)策略引擎器:主要是针对用户的定义的算法,根据所需的参数进行计算,并生成计算后的结果返回给调用者。这也是报表引擎比较重要的部分。它也可以适用于业务系统,在策略引擎的协同下,满足业务需求的变动要求,灵活配置业务处理中的业务逻辑。这一部分,对整个引擎的性能也是有巨大的影响,包括从数据库中提取数据信息、各种信息的计算。
(6)引擎监控器:这一部分是辅助功能,主要是监控报表引擎的运行过程,如有些地方需求用户处理的,引擎会等待着用户的处理后,再执行后一个算法。也可以监控引擎在运行过程中的出错信息,以便对引擎的错误进行跟踪;这些错误有可能是系统的、引擎本身的、算法定义的错误等。在监视中,可以查看已在运行的报表,也可以对运行的报表进行暂停、中止、恢复、保存、载入等操作。
(7)引擎输出器:主要是根据报表格式定义的内容,以及引擎运行部分运行的结果,生成输出界面,以比较直观的形式展示给用户浏览。在生成的输出界面中,应该支持常用的几种:HTML,EXCEL,WORD等。