一种基于数据模型的动态报表生成方法和系统实现与流程

文档序号:17489402发布日期:2019-04-23 20:18阅读:168来源:国知局
本发明涉及报表处理的
技术领域
:,具体为一种基于数据模型的动态报表生成方法和系统实现。
背景技术
::随着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、把返回的结果集合根据字段查询字段方案定义和字段展现定义完成生成报表内容的渲染。优选的,包括以下步骤:步骤一:定义查询字段方案报表最终反映的是一组字段的组合,字段用于作为显示和查询条件用。因此先把参与到查询的字段进行属性和展现方式进行定义,字段方案基本定义包括: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、把返回的结果集合根据字段查询字段方案定义和字段展现定义完成生成报表内容的渲染。(三)有益效果与现有技术相比,本发明提供了一种基于数据模型的动态报表生成方法和系统实现,具备以下有益效果:该基于数据模型的动态报表生成方法和系统实现,通过在信息化系统中,日常报表通常按主题进行分类,每个主题在底层业务数据中可表现为一个或多个数据模型,一个数据模型通常可以分为一维模型和多维数据模型两种,每种数据模型可以被描述成数据库中的一张包含n列的宽表。只需对宽表中的字段和数据进行数据模型的定义,最后就能通过定义的组合快速生成和输出报表。通过配置方法减少重复代码的开发量,提供统一数据模型的复用性,提升报表的开发效能力,减少it人员在报表开发方面的投入的时间。附图说明图1为本发明提出的一种基于数据模型的动态报表生成方法和系统实现步骤流程步骤一示意图;图2为本发明提出的一种基于数据模型的动态报表生成方法和系统实现步骤流程步骤二示意图;图3为本发明提出的一种基于数据模型的动态报表生成方法和系统实现步骤流程步骤三示意图;图4为本发明提出的一种基于数据模型的动态报表生成方法和系统实现步骤流程步骤四示意图;图5为本发明提出的一种基于数据模型的动态报表生成方法和系统实现步骤流程步骤五示意图;图6为本发明提出的一种基于数据模型的动态报表生成方法和系统实现步骤流程步骤六示意图;图7为本发明提出的一种基于数据模型的动态报表生成方法和系统实现步骤流程步骤七示意图;图8为本发明提出的一种基于数据模型的动态报表生成方法和系统实现步骤流程步骤八示意图;图9为本发明提出的一种基于数据模型的动态报表生成方法和系统实现步骤流程总览示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参阅图1至图9,一种基于数据模型的动态报表生成方法和系统实现,包括步骤一:定义查询字段方案、步骤二:定义查询模型、步骤三:定义查询报表和步骤四:执行报表,可用于信息化系统中快速配置和生成报表。在信息化系统中,日常报表通常按主题进行分类,每个主题在底层业务数据中可表现为一个或多个数据模型,一个数据模型通常可以分为一维模型和多维数据模型两种,每种数据模型可被描述成数据库中的一张包含n列的宽表。只需对宽表中的字段和数据进行数据模型的定义,最后就能通过定义的组合快速生成和输出报表。通过配置方法减少重复代码开发量,提供统一数据模型的复用性,提升报表的开发效能力,减少it人员报表开发方面的投入的时间。优选的,所述步骤一:定义查询字段方案报表最终反映的是一组字段的组合,字段用于作为显示和查询条件用。因此先把参与到查询的字段进行属性和展现方式进行定义,字段方案基本定义包括:s1、字段名,描述的是数据库表字段的名称,如:title;s2、字段描述,描述的是字段对应的展现名字,如:标题;s3、字段表现方式,描述的是字段展现可以变现为文本类型、数字类型、时间类型、下拉框类型和树形五种方式;s4、字段内容,描述根据字段类型的变现方式对内容进行定义。查询字段方案作为查询条件时,需要对字段的表现方式和内容进行定义,内容配置包括静态和动态两种;静态配置:展现的内容通过界面进行配置不允许动态更新,见图一:一种基于数据模型的动态报表生成方法和系统实现步骤流程步骤一示意图;。动态配置:展现的内容是通过后台sql或dao动态获取,见图二:一种基于数据模型的动态报表生成方法和系统实现步骤流程步骤二示意图、图三:一种基于数据模型的动态报表生成方法和系统实现步骤流程步骤三示意图;优选的,所述步骤二:定义查询模型查询模型对一段可执行的sql语句返回结果中的字段信息进行定义,sql语句可以带特定的查询条件或不带查询条件。不带查询条件方式的sql定义:selectf1,f2,fnfromtable1带查询条件方式的sql定义:selectf1,f2,fnfromtable1wheref1=1通过执行sql语句,对结果返回的字段进行描述,针对返回中的每一个字段进行配置,配置字段对应查询类型、是否可以用于查询展现、是否作用于查询条件、是否能进行排序、字段的显示顺序的定义。如:图4的配置优选的,步骤三:定义查询报表;基于查询模型的基础上生成查询报表,一个查询模型可根据展现字段、查询条件的组合生成多个查询报表。定义查询报表过程包括:s1、选择模型,从模型的可展现列表的字段中勾选用于展现的字段,从模型的查询字段列表中勾选可用于查询条件的字段。如:图5:一种基于数据模型的动态报表生成方法和系统实现步骤流程步骤五示意图;s2、设计报表表头和进行字段设置,报表表头的设计通过基于web的excel编辑器来完成,可以字段把拖动到将自动填充到当前制定的单元格中,如:图6。并对字段指定统计函数信息,由报表引擎完成对字段汇总并输出;s3、针对字段的显示,提供js渲染的支持,通过js自定义函数中完成对字段页面展现的渲染,如:把字段内容为秒的数据转换成时分秒格式展现,如:图7:一种基于数据模型的动态报表生成方法和系统实现步骤流程步骤七示意图;优选的,步骤四:执行报表报表引擎根据报表模型和报表定义解析和执行报表。解析报表包括:生成报表查询条件、生成表头。执行报表包括:根据选择的查询条件动态生成查询对应的执行sql、执行sql、把返回的结果集合根据字段查询字段方案定义和字段展现定义完成生成报表内容的渲染,如:图8:一种基于数据模型的动态报表生成方法和系统实现步骤流程步骤八示意图。优选的,包括以下步骤:步骤一:定义查询字段方案报表最终反映的是一组字段的组合,字段用于作为显示和查询条件用。因此先把参与到查询的字段进行属性和展现方式进行定义,字段方案基本定义包括:s1、字段名,描述的是数据库表字段的名称,如:titles2、字段描述,描述的是字段对应的展现名字,如:标题s3、字段表现方式,描述的是字段展现可以变现为文本类型、数字类型、时间类型、下拉框类型和树形五种方式;s4、字段内容,描述根据字段类型的变现方式对内容进行定义;查询字段方案作为查询条件时,需要对字段的表现方式和内容进行定义,内容配置包括静态和动态两种;静态配置:展现的内容通过界面进行配置不允许动态更新;动态配置:展现的内容是通过后台sql或dao动态获取。步骤二:定义查询模型查询模型对一段可执行的sql语句返回结果中的字段信息进行定义,sql语句可以带特定的查询条件或不带查询条件。不带查询条件方式的sql定义:selectf1,f2,fnfromtable1带查询条件方式的sql定义:selectf1,f2,fnfromtable1wheref1=1通过执行sql语句,对结果返回的字段进行描述,针对返回中的每一个字段进行配置,配置字段对应查询类型、是否可以用于查询展现、是否作用于查询条件、是否能进行排序、字段的显示顺序的定义。如:图4的配置步骤三:定义查询报表基于查询模型的基础上生成查询报表,一个查询模型可根据展现字段、查询条件的组合生成多个查询报表。定义查询报表过程包括:s1、选择模型,从模型的可展现列表的字段中勾选用于展现的字段,从模型的查询字段列表中勾选可用于查询条件的字段。如:图5:一种基于数据模型的动态报表生成方法和系统实现步骤流程步骤五示意图;s2、设计报表表头和进行字段设置,报表表头的设计通过基于web的excel编辑器来完成,可以字段把拖动到将自动填充到当前制定的单元格中,如:图6。并对字段指定统计函数信息,由报表引擎完成对字段汇总并输出。s3、针对字段的显示,提供js渲染的支持,通过js自定义函数中完成对字段页面展现的渲染,如:把字段内容为秒的数据转换成时分秒格式展现。如:图7一种基于数据模型的动态报表生成方法和系统实现步骤流程步骤七示意图;步骤四:执行报表报表引擎根据报表模型和报表定义解析和执行报表。解析报表包括:生成报表查询条件、生成表头。执行报表包括:根据选择的查询条件动态生成查询对应的执行sql、执行sql、把返回的结果集合根据字段查询字段方案定义和字段展现定义完成生成报表内容的渲染。如:图8一种基于数据模型的动态报表生成方法和系统实现步骤流程步骤八示意图;需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1