一种基于数据模型的动态报表生成方法和系统实现技术方案

技术编号:20944294 阅读:30 留言:0更新日期:2019-04-24 02:19
本发明专利技术公开了一种基于数据模型的动态报表生成方法和系统实现,包括步骤一:定义查询字段方案、步骤二:定义查询模型、步骤三:定义查询报表和步骤四:执行报表,可用于信息化系统中快速配置和生成报表。在信息化系统中,日常报表通常按主题进行分类,每个主题在底层业务数据中可表现为一个或多个数据模型,一个数据模型通常可以分为一维模型和多维数据模型两种,每种数据模型可被描述成数据库中的一张包含N列的宽表。只需对宽表中的字段和数据进行数据模型的定义,最后就能通过定义的组合快速生成和输出报表。通过配置方法减少重复代码开发量,提供统一数据模型的复用性,提升报表的开发效能力,减少IT人员报表开发方面的投入的时间。

A Dynamic Report Generation Method and System Implementation Based on Data Model

The invention discloses a method and system realization of dynamic report generation based on data model, which includes steps 1: defining query field scheme, step 2: defining query model, step 3: defining query report and step 4: executing report, which can be used for rapid configuration and generating report in information system. In information systems, daily reports are usually classified according to topics. Each topic can be represented as one or more data models in the underlying business data. A data model can be divided into one-dimensional model and multi-dimensional data model. Each data model can be described as a wide table containing N columns in the database. Only by defining the field and data in the wide table, the report can be generated and output quickly through the combination of definitions. Configuration method reduces the amount of duplicate code development, provides reusability of unified data model, improves the efficiency of report development, and reduces the investment time of IT personnel in report development.

【技术实现步骤摘要】
一种基于数据模型的动态报表生成方法和系统实现
本专利技术涉及报表处理的
,具体为一种基于数据模型的动态报表生成方法和系统实现。
技术介绍
随着IT技术发展,针对各类信息业务系统的开发越来越多,企业数据也会变的越来越复杂,为了满足企业管理的要求,针对企业数据的分析维度越来越多,报表也是作为反映经营分析的一种重要的手段,针对同一个分析模型,由于报表的观察角度不一样往往需要生成多个展现报表,导致需要开发人员针对针对性的进行大量的报表开发,开发效率低,代码可服用性差,不便于后期维护。报表是企业应用软件系统中不可或缺的一部分。过计算机自动或辅助生成各种业务报表,可以实现业务的规范化管理,建立新的自动化业务工作流程和业务模式,极大地提高工作效率以及加速各行业的信息化进程。在中国专利CN101308490中公开的一种动态报表生成方法及平台采用一种根据业务特征定义的数据集模型来组织数据、基于数据集模型的数据绑定以及报表结构的变换规则配置,并通过报表生成引擎自动生成报表实例,形成一种生成报表的方法。利用本专利技术提供的动态报表生成方法及平台,使得用户可以根据不同数据的特征采用不同的展现方式,使用者无需专业的计算机知识即可方便地根据业务需要定制和生成报表,并且提高了工作效率,加强了报表的表达能力和系统的可扩展性。解决了传统工具在设置报表数据时直接依赖于底层的数据库模式,需要采用手动编写SQL语句或数据表辅助视图的方式来从数据库中指定数据,例如MSAccess中的内置报表功能,因此增大了报表制作的难度,需要专门的数据库管理员参与。其次,部分行业对报表格式要求较为特殊,需要在生成报表时根据数据的具体特征动态生成不同的报表格式,例如,针对不同类型的记录,表格的每行都具有不同数量的列。传统工具如水晶报表和润乾报表没有考虑这种报表结构需要动态调整的情况的问题。但是该专利技术:“一种动态报表生成方法及平台”中并没有解决关于配置方法减少重复代码开发量,提供统一数据模型的复用性,提升报表的开发效能力,优化深度不够,缺乏优化体系,和减少IT人员报表开发方面的投入的时间的有效解决方针和解决方法。在中国专利CN105138501B中公开的一种可配置的动态报表生成方法及系统报表数据展示方法,能够以批量的可配置的方式自动化的展示报表统计数据,使用可配置的报表,提高统计分析报表的开发效率,减少重复代码的开发量,提高了代码复用性,提高报表数据分析效果;通过6个步骤进行分析和建立模板来提高开发率;步骤1,建立报表模板;步骤2,建立报表配置表和报表条件表,根据业务逻辑对报表配置表和报表条件表进行配置;步骤3,解析所述报表条件表,建立报表展示区域,自动生成查询页面;步骤3,接收用户在查询页面输入的查询条件,结合报表配置表和报表条件表生成查询语句;步骤5,在指定的数据库上执行查询语句,获得结果数据集;步骤6,根据获得的结果数据集和步骤1中建立的报表模板生成临时excel文件,保存在指定目录上;该专利技术有效的解决了开发人员针对要展示的数据重复开发代码,开发效率低,代码复用率低,报表数据分析的效果不佳的问题;但是该专利技术未对信息化系统中的日常报表按主题进行分类,在优化上略显不足,无法真正做到提升报表的开发效能力,节省IT人员报表开发方面的投入的时间。故本专利技术针对上述不足,进行有条理的优化,优化程度高,效率显著,在信息化系统中,日常报表通常按主题进行分类,每个主题在底层业务数据中可表现为一个或多个数据模型,一个数据模型通常可以分为一维模型和多维数据模型两种,每种数据模型可被描述成数据库中的一张包含N列的宽表。只需对宽表中的字段和数据进行数据模型的定义,最后就能通过定义的组合快速生成和输出报表。通过配置方法减少重复代码开发量,提供统一数据模型的复用性,提升报表的开发效能力,减少IT人员报表开发方面的投入的时间。
技术实现思路
(一)解决的技术问题针本专利技术所要解决的技术问题是提供一种对数据模型的定义方法并提供基于数据数据模型生成动态报表的方法及系统,实现通过对查询输出字段的配置的方法实现数据模型的配置、报表的配置以及展现的方法。(二)技术方案为实现上述目的,本专利技术提供如下技术方案:一种基于数据模型的动态报表生成方法和系统实现,包括步骤一:定义查询字段方案、步骤二:定义查询模型、步骤三:定义查询报表和步骤四:执行报表,可用于信息化系统中快速配置和生成报表。在信息化系统中,日常报表通常按主题进行分类,每个主题在底层业务数据中可表现为一个或多个数据模型,一个数据模型通常可以分为一维模型和多维数据模型两种,每种数据模型可被描述成数据库中的一张包含N列的宽表。只需对宽表中的字段和数据进行数据模型的定义,最后就能通过定义的组合快速生成和输出报表。通过配置方法减少重复代码开发量,提供统一数据模型的复用性,提升报表的开发效能力,减少IT人员报表开发方面的投入的时间。优选的,所述步骤一:定义查询字段方案报表最终反映的是一组字段的组合,字段用于作为显示和查询条件用。因此先把参与到查询的字段进行属性和展现方式进行定义,字段方案基本定义包括:S1、字段名,描述的是数据库表字段的名称;S2、字段描述,描述的是字段对应的展现名字;S3、字段表现方式,描述的是字段展现可以变现为文本类型、数字类型、时间类型、下拉框类型和树形五种方式;S4、字段内容,描述根据字段类型的变现方式对内容进行定义。查询字段方案作为查询条件时,需要对字段的表现方式和内容进行定义,内容配置包括静态和动态两种。静态配置:展现的内容通过界面进行配置不允许动态更新。动态配置:展现的内容是通过后台SQL或DAO动态获取。优选的,所述步骤二:定义查询模型查询模型对一段可执行的SQL语句返回结果中的字段信息进行定义,SQL语句可以带特定的查询条件或不带查询条件。不带查询条件方式的SQL定义:selectf1,f2,fnfromtable1带查询条件方式的SQL定义:selectf1,f2,fnfromtable1wheref1=1通过执行SQL语句,对结果返回的字段进行描述,针对返回中的每一个字段进行配置,配置字段对应查询类型、是否可以用于查询展现、是否作用于查询条件、是否能进行排序、字段的显示顺序的定义。如:图4的配置优选的,步骤三:定义查询报表基于查询模型的基础上生成查询报表,一个查询模型可根据展现字段、查询条件的组合生成多个查询报表。定义查询报表过程包括:S1、选择模型,从模型的可展现列表的字段中勾选用于展现的字段,从模型的查询字段列表中勾选可用于查询条件的字段;S2、设计报表表头和进行字段设置,报表表头的设计通过基于WEB的Excel编辑器来完成,可以字段把拖动到将自动填充到当前制定的单元格中,如:图6。并对字段指定统计函数信息,由报表引擎完成对字段汇总并输出;S3、针对字段的显示,提供JS渲染的支持,通过JS自定义函数中完成对字段页面展现的渲染,如:把字段内容为秒的数据转换成时分秒格式展现。优选的,步骤四:执行报表。报表引擎根据报表模型和报表定义解析和执行报表。解析报表包括:生成报表查询条件、生成表头。执行报表包括:根据选择的查询条件动态生成查询对应的执行SQL、执行SQL、把返回的结果集合根据字段查询字段方案定义和字段展现定义本文档来自技高网
...

【技术保护点】
1.一种基于数据模型的动态报表生成方法和系统实现,包括步骤一:定义查询字段方案、步骤二:定义查询模型、步骤三:定义查询报表和步骤四:执行报表,其特征在于:此方法是通过SQL查询的返回结果中的字段信息和内容信息进行定义后,通过字段的组合来生成报表的一种实现方法,对数据模型的定义,数据模型的定义包括字段展现和查询的定义,展现定义包含字段的显示名称、字段是否用于展现、字段的展现顺序、字段的排序方式,查询定义包括:查询展现的方式和内容进行定义,报表是由数据模型配置生成,通过配置指定报表对应的数据类型,通过设定报表的展现方式,通过设定报表内容的展现格式,完成报表的解析和生成。

【技术特征摘要】
1.一种基于数据模型的动态报表生成方法和系统实现,包括步骤一:定义查询字段方案、步骤二:定义查询模型、步骤三:定义查询报表和步骤四:执行报表,其特征在于:此方法是通过SQL查询的返回结果中的字段信息和内容信息进行定义后,通过字段的组合来生成报表的一种实现方法,对数据模型的定义,数据模型的定义包括字段展现和查询的定义,展现定义包含字段的显示名称、字段是否用于展现、字段的展现顺序、字段的排序方式,查询定义包括:查询展现的方式和内容进行定义,报表是由数据模型配置生成,通过配置指定报表对应的数据类型,通过设定报表的展现方式,通过设定报表内容的展现格式,完成报表的解析和生成。2.根据权利要求1所述的一种基于数据模型的动态报表生成方法和系统实现,其特征在于:所述步骤一:定义查询字段方案;报表最终反映的是一组字段的组合,字段用于作为显示和查询条件用,因此先把参与到查询的字段进行属性和展现方式进行定义,字段方案基本定义包括:S1、字段名,描述的是数据库表字段的名称;S2、字段描述,描述的是字段对应的展现名字;S3、字段表现方式,描述的是字段展现可以变现为文本类型、数字类型、时间类型、下拉框类型和树形五种方式;S4、字段内容,描述根据字段类型的变现方式对内容进行定义;查询字段方案作为查询条件时,需要对字段的表现方式和内容进行定义,内容配置包括静态和动态两种;静态配置:展现的内容通过界面进行配置不允许动态更新;动态配置:展现的内容是通过后台SQL或DAO动态获取。3.根据权利要求1所述的一种基于数据模型的动态报表生成方法和系统实现,其特征在于:所述步骤二:定义查询模型,查询模型对一段可执行的SQL语句返回结果中的字段信息进行定义,SQL语句可以带特定的查询条件或不带查询条件;不带查询条件方式的SQL定义:selectf1,f2,fnfromtable1带查询条件方式的SQL定义:selectf1,f2,fnfromtable1wheref1=1通过执行SQL语句,对结果返回的字段进行描述,针对返回中的每一个字段进行配置,配置字段对应查询类型、是否可以用于查询展现、是否作用于查询条件、是否能进行排序、字段的显示顺序的定义。4.根据权利要求1所述的一种基于数据模型的动态报表生成方法和系统实现,其特征在于:步骤三:定义查询报表;基于查询模型的基础上生成查询报表,一个查询模型可根据展现字段、查询条件的组合生成多个查询报表;定义查询报表过程包括:S1、选择模型,从模型的可展现列表的字段中勾选用于展现的字段,从模型的查询字段列表中勾选可用于查询条件的字段;S2、设计报表表头和进行字段设置,报表表头的设计通过基于WEB的Excel编辑器来完成,可以字段把拖动到将自动填充到当前制定的单元格中,如:图6。并对字段指定统计函数信息,由报表引擎完成对字段汇总并输出;S3、针对字段的显示...

【专利技术属性】
技术研发人员:汤湛成刘杰张志青
申请(专利权)人:广州云趣信息科技有限公司
类型:发明
国别省市:广东,44

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

1