一种动态报表生成方法及平台技术

技术编号:2822663 阅读:208 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种动态报表生成方法及平台,用一种根据业务特征定义的数据集模型来组织数据、提取数据模型定义、基于数据集模型的数据绑定以及报表结构的变换规则配置,并通过报表生成引擎自动生成报表实例,形成一种生成报表的方法。通过数据项之间的导出关系和扩展关系来组织数据项,并在数据绑定时通过路径表达式来指定需要绑定到报表模板中的数据项属性。对报表结构在生成时可能发生的变化进行定义,并由报表生成引擎根据结构变换规则对报表结构进行调整,只需要通过添加新的结构变换规则,即可为数据增加新的展示方式,无需重新编码,提高了系统的可扩展性。从而使得用户可以根据不同数据的特征采用不同的展现方式,提高了报表的表达能力。

【技术实现步骤摘要】

本专利技术属于数据处理麵域,涉及一种报表生成方法及平台,具体涉及一种动态报表生成 方法及平台。
技术介绍
报表是企业应用软件系统中不可或缺的一部分。过计算机自动或辅助生成各种业务报表, 可以实现业务的规范化管理,建立新的自动化业务工作流程和业务模式,极大地提髙工作效 率以及加速各行业的信息化进程。在当前的报表生成领域,生成报表的技术方案可分为三类第一类是釆用硬编码的方式 实现报表的生成。在该方式下,报表生成的需求还没有被独立出来,而是作为信息系统的一 部分,报表生成一般是由项目人员编写代码实现的。该方式有很明显的缺点针对每种不同 的系统和应用,都需要重新编写代码;即使在同一个系统中,当需求发生变化时,为获得新 的报表,也需要系统开发人员重新对报表生成系统进行设计。第二类报表生成方案是釆用静 态的电子表格类软件。最典型的实例如Microsoft的Excel电子表格软件。这类软件提供了 丰富的格式编辑功能,但是只能通过手动填写报表数据。对于大数据量的动态报表的生成, 仍需要通过其提供的报表开发组件进行二次开发。第三类报表生成方案是釆用通用的报表生 成工具,用于解决动态报表的生成。动态报表的特点是这类报表的数据量比较大,报表的数 据经常需要变动,报表的格式无法在开发阶段完全确定。生成这类报表需要用户单独对报表 的数据源和报表格式进行定义,然后在由计算机对报表进行批量的数据填充,导出最终的报 表实例。该类方案中的代表是Business Object公司的水晶报表软件和国内润乾公司的润乾 报表软件。伹是,当前领域内的报表生成工具仍存在很多问题。首先,传统工具在设置报表数据时 直接依赖于底层的数据库模式,需要采用手动编写SQL语句或数据表辅助视图的方式来从数 据库中指定数据,例如MS Access中的内置报表功能,因此增大了报表制作的难度,需要 专门的数据库管理员参与。其次,部分行业对报表格式要求较为特殊,需要在生成报表时根 据数据的具体特征动态生成不同的报表格式,例如,针对不同类型的记录,表格的每行都具 有不同数量的列。传统工具如水晶报表和润乾报表没有考虑这种报表结构需要动态调整的情 况,需要开发人员专门编码实现。 专利技术内 容本专利技术提供了一种动态报表生成方法及平台,用一种根据业务特征定义的数据集模型来 组织数据、基于数据集模型的数据绑定以及报表结构的变换规则配置,并通过报表生成引擎 自动生成报表实例,形成一种生成报表的方法。利用本专利技术提供的动态报表生成方法及平台, 使得用户可以根据不同数据的特征采用不同的展现方式,使用者无需专业的计算机知识即可 方便地根据业务需要定制和生成报表,并且提高了工作效率,加强了报表的表达能力和系统 的可扩展性。本专利技术一种动态报表生成方法,包括以下步骤步骤1:针对业务活动中的每种在生成报表时需要用到的业务实体类型,在数据集丰莫型 设计模块的数据项类型定义单元中定义一种数据项类型和该数据项类型的属性;并在数据项关系定义单元中基于对应的数据项类型之间的关联定义导出关系与扩展关系;步骤2:正确性验证单元对由数据项类型及其相互关系组成的数据集模型进行正确性验 证,如果验证通过的话,则生成数据集模型文件,转到步骤3,反之转到步骤1,重新定义 数据项和它们之间的关系;步骤3:通过报表模版编辑模块的模板结构编辑单元对模板中的静态数据内容进行布局排版和格式编辑;对模板中需要进行动态填充数据的部分,数据绑定设置单元解析数据集模 型文件生成数据绑定项,以路径表达式的形式为模板绑定数据,生成报表模板文件;步骤4:结构变换配置单元对模板结构的格式变换规则进行配置,并生成结构变换配置文件;步骤5:模板预览单元通过将目标数据填充到报表模板文件后,在结构变换配置文件的 作用下预览模板填充数据后的显示效果,如果满足格式要求则转到步骤6进行报表生成,否 则转到步骤3重新编辑、绑定模板步骤6:将需要生成报表的目标数据组织为符合数据集模型文件的数据集;模板解析单 元调用表达式解析单元对报表纟莫板文件进行解析,得到t莫板运行时结构后由表单生成单元生成表单页骨架;在表达式解析单元作用下将数据集中的数据填充到表单页骨架中,生成报表 实例;步骤7:表单生成单元调用结构变换单元根据结构变换配置文件中的结构变换规则动态调整报表结构;处理完毕后,将报表实例输出为报表实例文件。所述步骤3中,数据集模型文件解析后生成的每个数据绑定项都是一个数据项类型。所有数据项类型通过相互之间的导出关系组织为一个可视化的树状结构,该树状结构以数据集 模型中的某一数据项类型为根,并以由该数据项类型导出的其他数据项类型为中间节点和叶 子节点。所述步骤3中,路径表达式根据被选中的数据绑定项在树状结构中的位置动态生成,根6据路径表达式对数据集l莫型中的一个数据项类型进行指定。所述步骤4中,格式变换规则包括变换条件、变换目标和变换方式。变换条件是一个包 含算术运算与布尔运算的数学表达式,并可以包含路径表达式作为其中的变量。变换方式是 指对变换目标进行外观变换或动态合并、替换。所述步骤6中,表达式解析单元对表达式进行解析的过程是建立在符合数据集模型的数 据集基础之上,并以Java反射调用接口实现。表达式解析单元对反射调用进行了缓冲,避 免了多次重复的反射调用,提高了解析的效率。一种动态报表生成平台,包括如下模块数据集模型设计模块包括数据项类型定义单元、数据项关系定义单元和正确性验证单元; 其中上述数据项类型定义单元,针对业务活动中的每种在生成报表时需要用到的业务实体类 型,用于定义一种数据项类型和该数据项类型的属性;上述数据项关系定义单元,基于对应的数据项类型之间的关联用于定义导出关系与扩展 关系;上述正确性验证单元,用于对由数据项类型及其相互关系组成的数据集模型进行正确性 验证,如果验证通过的话,则生成数据集模型文件;反之重新定义数据项和它们之间的关系;报表模版编辑模块包括模板结构编辑单元、数据绑定设置单元、结构变换配置单元和模 板预览单元;其中上述模板结构编辑单元,用于对模板中的静态数据内容进行布局排版和格式编辑; 上述数据绑定设置单元,用于对模板中需要进行动态填充数据的部分,解析数据集模型 文件生成数据绑定项,以路径表达式的形式为模板绑定数据,生成报表模板文件;上述结构变换配置单元,用于对模板结构的变换规则进行配置,并生成结构变换配置文件;上述模板预览单元,通过将目标数据填充到报表模板文件后,用于在结构变换配置文件 的作用下预览模板填充数据后的显示效果,如果满足格式要求则进行报表生成,否则重新编 辑绑定模板;报表生成引擎包括数据映射单元、模板解析单元、表单生成单元、表达式解析单元和结 构变换单元;其中上述数据映射单元,用于将需要生成报表的目标数据组织为符合数据集模型文件的数据集;上述模板解析单元,用于调用表达式解析单元对报表模板文件进行解析,得到模板运行 时结构;上述表单生成单元,用于生成单元生成表单页骨架,并调用表达试解析单元对表单页骨架进行数据填充;上述表达式解析单元,用于根据路径表达试从数据集中提取数据,并记录各表达试对应 的数据项;上述结构变换单元,被表单生成单元调用,用于根据结构变换配置文件中的结构变换规 则动态调整报表结构;处理完毕本文档来自技高网...

【技术保护点】
一种动态报表生成方法,其特征在于,包括以下步骤:步骤一:针对业务活动中的每种在生成报表时需要用到的业务实体类型,在数据集模型设计模块的数据项类型定义单元中定义一种数据项类型和该数据项类型的属性;并在数据项关系定义单元中基于对应的数据项类型之间的关联定义导出关系与扩展关系;步骤二:正确性验证单元对由数据项类型及其相互关系组成的数据集模型进行正确性验证,如果验证通过的话,则生成数据集模型文件,转到步骤三,反之转到步骤一,重新定义数据项和它们之间的关系;步骤三:通过报表模版编辑模块的模板结构编辑单元对模板中的静态数据内容进行布局排版和格式编辑;对模板中需要进行动态填充数据的部分,数据绑定设置单元解析数据集模型文件生成数据绑定项,以路径表达式的形式为模板绑定数据,生成报表模板文件;步骤四:结构变换配置单元对模板结构的格式变换规则进行配置,并生成结构变换配置文件;步骤五:模板预览单元通过将目标数据填充到报表模板文件后,在结构变换配置文件的作用下预览模板填充数据后的显示效果,如果满足格式要求则转到步骤六进行报表生成,否则转到步骤三重新编辑、绑定模板;步骤六:将需要生成报表的目标数据组织为符合数据集模型文件的数据集;模板解析单元调用表达式解析单元对报表模板文件进行解析,得到模板运行时结构后由表单生成单元生成表单页骨架;在表达式解析单元作用下将数据集中的数据填充到表单页骨架中,生成报表实例;步骤七:表单生成单元调用结构变换单元根据结构变换配置文件中的结构变换规则动态调整报表结构;处理完毕后,将报表实例输出为报表实例文件。...

【技术特征摘要】

【专利技术属性】
技术研发人员:韩一李先军李重文
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1