一种报表生成方法及系统的制作方法

文档序号:10489070阅读:328来源:国知局
一种报表生成方法及系统的制作方法【专利摘要】本发明公开一种报表生成方法及系统,该方法包括:根据用户的生成报表请求,获取对应的报表配置模板和数据源;通过动态生成的结构化查询语言SQL从所述数据源中确定目标数据集合,其中,所述动态生成的SQL是由所述用户输入的查询参数、用户在所述报表配置模板上配置的查询条件和标准SQL语句拼装组成的;根据预设的视图样式对所述目标数据集合进行可视化处理,生成视图形状的报表,用以解决现有技术生成报表的配置方法过于专业化,操作难度较大的问题。【专利说明】_种报表生成方法及系统
技术领域
[0001]本发明涉及计算机
技术领域
,尤其涉及一种报表生成方法及系统。【
背景技术
】[0002]报表是企业应用系统中不可缺少的一种数据展现方式,它可以为用户特别是企业中高层用户提供直观的数据视图(进行自动的统计计算、如求和、求平均、对分组进行小计与合计等),为用户制定商业计划和决策提供基础和依据。报表同时也是商业智能应用中实现数据可视化的方式之一。特别在当今大数据时代,企业需要对海量数据进行提取、分析、监控并挖掘出潜在的商业机遇,其中也特别需要对数据可视化呈现,这些都成为了当前重要的研究课题。因此一套灵活且功能强大的报表系统可以为企业(特别是大数据时代的互联网及移动互联网企业)带来生产力的巨大提升。[0003]现有技术中,以webfOCUS报表工具生成报表为例,首先将作为数据源的表映射为一个表字段级的映射文件,再采用拖拽映射文件中属性的方式形成Excel式的可视化的配置方式,但是这种配置方式的缺点是:在大数据时代现有的数据来源之间的关联性增强,数据来源的数据库类型多样化,现有的拖拽映射文件的方法无法完成一些数据库函数才能实现的复杂查询。现有技术这时还需要进一步借助工具规定的webfocus的工具语言进行编码,才能够生成匹配的报表样式。由于利用报表语言进行编码生成匹配的报表样式的过程专业化较强,导致这对于普通用户无疑具有较大的操作难度且操作较为繁琐。[0004]因此,亟需一种报表生成方法,用以解决现有技术生成报表的配置方法过于专业化,操作难度较大的问题。【
发明内容】[0005]本发明实施例提供一种报表生成方法及系统,用以解决现有技术生成报表的配置方法过于专业化,操作难度较大的问题。[0006]本发明方法包括一种报表生成方法,该方法包括:根据用户的生成报表请求,获取对应的报表配置模板和数据源;[0007]通过动态生成的结构化查询语言SQL从所述数据源中确定目标数据集合,其中,所述动态生成的SQL是由所述用户输入的查询参数、用户在所述报表配置模板上配置的查询条件和标准SQL语句拼装组成的;[0008]根据预设的视图样式对所述目标数据集合进行可视化处理,生成视图形状的报表。[0009]基于同样的发明构思,本发明实施例进一步地提供一种报表生成系统,该系统包括:[0010]获取单元,用于根据用户的生成报表请求,获取对应的报表配置模板和数据源;[0011]确定单元,用于通过动态生成的结构化查询语言SQL从所述数据源中确定目标数据集合,其中,所述动态生成的SQL是由所述用户输入的查询参数、用户在所述报表配置模板上配置的查询条件和标准SQL语句拼装组成的;[0012]生成单元,用于根据预设的视图样式对所述目标数据集合进行可视化处理,生成视图形状的报表。[0013]本发明实施例根据用户发出的报表生成指令,从数据库中获取数据源,继而通过SQL从所述数据源中获取目标数据集合,做好根据预设的报表模板对所述目标数据集合进行可视化处理,生成视图形状的报表。这一方法通过利用SQL语句替代了现有技术拖拽映射文件的方式,因为在SQL语句中可以结合使用数据库中的专有数据库函数,从而可以实现在较复杂的查询,而且这一过程并不需要使用报表工具的语言进行编码,达到了零代码开发生成报表的目的,可见这一方法对于普通的报表制作用户来说,容易掌握,而且操作简便。【附图说明】[0014]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0015]图1为本发明实施例提供一种报表工具架构示意图;[0016]图2为本发明实施例提供一种报表生成方法流程示意图;[0017]图3为本发明实施例提供一种报表配置界面交互图;[0018]图4为为本发明实施例提供一种报表模板配置界面交互图;[0019]图5为本发明实施例提供一种报表生成装置流程示意图。【具体实施方式】[0020]为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。[0021]报表工具是为用户提供报表开发和报表展示的平台,报表工具的原理是根据用户的需求从选定的数据源中获取数据并包装成用户需求的形式(web(网页)页面、EXCEUPDF或者图片)反馈给用户,使用户能够对数据进行计算分析并协助其工作的目的。本发明实施例提供的报表生成方法是基于新开发的报表工具,通过在新的报表工具上进行配置进而生成用户要生成的视图形状的报表。[0022]开发者通过报表工具实现多个配置页面,在配置页面表单中可以实现配置报表名称、数据源、SQL、查询条件和一些样式,在预览无误后保存,报表配置模板会以xml格式保存在报表系统中。当用户需要用到某个报表配置模板时,需要登录到另一个业务系统并进入到查询页面,输入一些查询参数,点击查询按钮,这时业务系统会给报表系统发送报表请求的url(包括用户输入的查询参数)。报表系统在接收到请求后会找到指定的报表配置,将查询参数与配置的查询条件匹配再与SQL拼装为完整的SQL,执行SQL查询数据并封装数据再结合配置的视图样式,组装生成视图形状的报表返回给业务系统,以便展示给用户。[0023]另外,通过本发明实施例生成的报表结果被保存于服务器端,这样做的目的是便于支持多人协同开发,另外服务器端存储上的报表可以被不同的用户引用,避免重复生成报表。[0024]在介绍本发明实施例的报表生成方法之前,预先介绍新开发的报表工具的系统架构,如图1所示,该架构主要包括:展示层、基础设施层、数据持久层。其中,基础设施层包括:参数配置、数据源配置、模板配置、报表配置、报表预览、异常处理。[0025]通过上述基础架构实现的报表工具可以由多个人机交互的界面图体现,其中,报表配置的交互图上面包含多个控件,主要用来实现配置报表名称、SQL语句、动态的WHERE条件、表头、合计、各字段类型样式和下钻等等。另外还包括,报表模板配置的交互图,针对图形和表格等形状的报表分别生成对应的模板,每个模板以插件的形式,例如JSP形式保存起来。[0026]基于上述报表工具,本发明实施例提供一种报表生成方法流程示意图,参见图2所示,具体地实现方法包括:[0027]步骤SlOl,根据用户的生成报表请求,获取对应的报表配置模板和数据源。[0028]步骤S102,通过动态生成的结构化查询语言SQL从所述数据源中确定目标数据集合,其中,所述动态生成的SQL是由所述用户输入的查询参数、用户在所述报表配置模板上配置的查询条件和标准SQL语句拼装组成的。[0029]步骤S103,根据预设的视图样式对所述目标数据集合进行可视化处理,生成视图形状的报表。[0030]在步骤SlOl中,用户的生成报表请求是用户在报表工具上进行操作,选择相应的新建报表的控件发出的指令,在报表请求中携带了数据源入口路径、需要用到的报表配置模板类型等。因此,根据用户的生成报表请求,从内存中获取要用到的报表配置模板和数据源。[0031]具体地,在接收到用户发出的新建报表指令后,该报表工具所在的服务器可以响应该新建报表指令,展示第一交互界面,如图3所示,其中,所述第一交互界面至少包含指示用户输入SQL查询参数的第一提示信息、指示用户输入所述新建报表所需的报表模板类型的第二提示信息、指示用户输入所述新建报表所需的数据源的第三提示信息。[0032]需要强调的是,用于指示用户输入报表所依据数据源的第一提示信息可以为包括文本输入框的提示信息以使得用户可以手动输入数据源,或者,包括关于各个数据源的下拉列表的提示信息以使得用户选择所需的数据源即可。同样的,用于指示用户输入该报表所需的布局形式的第二提示信息可以为包括文本输入框的提示信息以使得用户可以手动输入布局形式,或者,包括关于布局形式的下拉列表的提示信息以使得用户选择所需的布局形式即可。而用于指示用户输入SQL查询指令的第三提示信息可以为包括SQL查询语句编辑界面的提示信息以使得用户在该编辑界面中输入该SQL查询语句。图3中箭头所指的三个控件,指的是上述提到的三个提示信息,用户至少在数据源控件出选择出相应的表格的路径;同时根据客户的需求在模板中选择柱图,或者其它的形状的模板,另外,在SQL控件处,输入相应的查询语句。其中,图3中,在SQL下方还有查询条件的控件,该控件可以实现WHERE条件语句功能,用户可以根据需要自适应的添加或者删除。[0033]假设用户需要包含41)2、83、84和04数据的数据报表,该数据报表所需的数据存储在数据库中,包括表A、表B、表C,其中,表A包括AI、A2、A3、A4,表B包括BI、B2、B3、B4,表C包括(:1、02、03、04,在数据报表中需展现4132、83、84和04的信息,其结构化查询语言(StructuredQueryLanguage,SQL)语句可以写为:SelectAl,A2,B3,B4,C4FromA,B,CWhereAl=BlAndA1=C1,其中表A、表B、表C如下表中内容所示。[0034]表A:L0040」从表A、表B、表C可知,六1、81、(:1^2、83、84丄4分别存在于表4、8、(:中,故通过条仵语句WhereAl=BlAndAl=Cl将三个表中共同的信息串联得到关于Al42,8334,04的查询语句。结合这个例子,在图3提供的界面交互图中,可以在数据源出选择表A、表B、表C对应的路径,并在SQL中输入SelectAl,A2,B3,B4,C4FromA,B,C,在查询条件控件出可以配置Al=Bl、Al=Cl等条件语句,这样,系统在后台解析上述SQL语句和查询条件,通过解析所述用户输入的查询参数确定所述数据源中的字段,并根据所述查询条件确定所述字段对应的报表单元格的范围;根据所述报表单元格中的填充数据确定目标数据集合。如表A中包括的字段有学号、姓名、语文、数学;表B中包括的字段有学号、联系方式、家庭住址、生日;表C中包括的字段有学号、性别、旷课次数、体育成绩等。根据查询条件后台解析可以得知,从表A、表B、表C中找到学号、姓名、家庭住址、生日、体育成绩这五个字段对应的目标数据集合,即下表:[0042]另外,在查询条件控件中还可以进行参数替换的配置,替换所述报表配置模板中原始SQL语句中的字段;解析替换后的SQL,确定所述数据源中的字段;并根据所述查询条件确定所述字段对应的报表单元格的范围;根据所述报表单元格中的填充数据确定目标数据集合。[0043]例如,获取的报表配置页面中含有预设的SQL语句模板,因为要生成的报表是在原先报表生成的基础上部分字段的更新,所以此时可以对原先的SQL语句模板进行参数替换,例如原先的SQL语句模板如下,其中要替换的参数部分以#标注。[0044]select*[0045]fromAa[0046]leftjoinBbonb.id=a.id[0047]whereA?name='#student-name#';[0048]例如当用户在#标注内容输入〃张三〃,则SQL通过参数替换机制动态生成的完整SQL为:[0049]select*[0050]fromAa[0051]leftjoinBbonb.id=a.id[0052]whereA.name='张三';[0053]亦或是对数据表的替换,原先的SQL语句模板如下,其中要替换的参数部分以#标注。[0054]select*[0055]fromStable-name#a[0056]leftjoinBbonb.id=a.id[0057]whereA.name='张三';[0058]当用户输入的表名为〃C〃,则SQL动态生成为:[0059]select*[0060]fromCa[0061]leftjoinBbonb.id=a.id[0062]whereA.name='张三';[0063]可以理解的是,该交互界面中还可以展示其他信息,例如:用于指示执行该SQL查询语句的按钮、用于指示输入报表名称的提示信息、用于指示当前状态的提示信息(例如:编辑状态)等,这都是合理的。[0064]另外,由于业务需要,我们要做一些特殊查询,但是数据库本身并没有提供这种函数,因此我们需要自定义函数(一些数据库提供了UDF接口,可以自定义函数),例如我们需要做2个表中的字段中文模糊匹配的查询,我们就自定义了一个函数SMILARITY_SUITED,SQL如下:[0065]SELECTTl.*[0066]FROMTABLE_ATl[0067]LEFTJOINTABLE_BT2ONT2.ID=Tl.ID[0068]WHERESIMILARITY_SUITED(T1.NAME,T2.NAME);[0069]这样做的原因是传统的报表工具通过拖拽的方式选中的目标数据集,只能够使用该数据库指出的函数进行处理,并不支持一些特殊的查询,如果在传统的报表工具中要实现上述查询功能,则需要采用该报表工具的语言进行编码。所以本发明实施例通过在SQL语句加载需要用到的自定义函数,则可以完成相应的复杂的查询,以达到快速查询的目的,并方便用户操作。[0070]进一步地,确定与预设的视图样式对应的字段属性,所述字段属性至少包括几何大小、几何坐标、颜色参数信息、展示方向信息;[0071]获取用户输入的视图样式的字段属性值,根据所述字段属性值生成目标报表样式;将所述目标数据集合与所述目标报表样式组合生成视图形状的报表。[0072]具体地,例如图4所示的界面交互图,如果用户要生成的是柱状图,则可以通过该界面选择柱状图的视图样式,如柱状图的高度、宽度、颜色等,另外也可以选择该柱状图是水平布局,还是竖直布局等方向。同时,在该交互界面中,还可以包含其他对于最后柱状图形状的提示信息,如是否可以拖拽等,供用户选择。[0073]需要说明的是,所述视图样式至少包括网格报表、交叉报表、柱状图、折线图、饼图、散点图。对于不同形式的报表模板,均有相应的参数设置的配置项供用户选择,因此最后生成的视图形状的报表更加贴合用户的需要。[0074]本发明实施例中提供完的是完全表单配置的报表生成方式,可以配置复杂的SQL语句并提供动态查询功能,支持不同数据库的自有特殊函数,开发过程实现零代码开发。报表的装载显示采用基于第三方组件(jQgrid和Echarts)的JSP模板的方式,将SQL查询的数据与配置的显示样式直接组装到对应的模板中显示,性能优越。[0075]为了更加系统地描述上述报表生成的过程,本发明实施例进一步地提供如下步骤图进行阐述。[0076]步骤一,用户通过web页面登录系统,输入用户名和密码等口令进入系统。[0077]步骤二,通过报表配置模板输入SQL语句和查询指令,系统后台解析上述指令,得到目标数据集。[0078]步骤三,打开报表模板,根据报表模板中的配置项进行相应的配置,不需要配置的配置项就可以保留缺省值,然后的结合配置的报表样式和目标数据集生成最终的报表。[0079]步骤四,将上述生成的报表结果以保存到系统配置数据库中并加载到内存。[0080]基于相同的技术构思,本发明实施例还提供一种报表生成系统,该系统可执行上述方法实施例。本发明实施例提供的系统如图5所示,包括:获取单元501、确定单元502、生成单元503,其中:[0081]获取单元501,用于根据用户的生成报表请求,获取对应的报表配置模板和数据源;[0082]确定单元502,用于通过动态生成的结构化查询语言SQL从所述数据源中确定目标数据集合,其中,所述动态生成的SQL是由所述用户输入的查询参数、用户在所述报表配置模板上配置的查询条件和标准SQL语句拼装组成的;[0083]生成单元503,用于根据预设的视图样式对所述目标数据集合进行可视化处理,生成视图形状的报表。[0084]进一步地,所述确定单元502具体用于通过解析所述用户输入的查询参数确定所述数据源中的字段,并根据所述查询条件确定所述字段对应的报表单元格的范围;根据所述报表单元格中的填充数据确定目标数据集合。[0085]进一步地,所述查询条件还包括参数替换配置,所述确定单元502还用于:替换所述报表配置模板中原始SQL语句中的字段;解析替换后的SQL,确定所述数据源中的字段;并根据所述查询条件确定所述字段对应的报表单元格的范围;根据所述报表单元格中的填充数据确定目标数据集合。[0086]进一步地,所述生成单元503具体用于:确定与预设的视图样式对应的字段属性,所述字段属性至少包括几何大小、几何坐标、颜色参数信息、展示方向信息;[0087]获取用户输入的视图样式的字段属性值,根据所述字段属性值生成目标报表样式;[0088]将所述目标数据集合与所述目标报表样式组合生成视图形状的报表。[0089]其中,所述视图样式至少包括网格报表、交叉报表、柱状图、折线图、饼图、散点图。[0090]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0091]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。[0092]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。[0093]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。[0094]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。【主权项】1.一种报表生成方法,其特征在于,该方法包括:根据用户的生成报表请求,获取对应的报表配置模板和数据源;通过动态生成的结构化查询语言SQL从所述数据源中确定目标数据集合,其中,所述动态生成的SQL是由所述用户输入的查询参数、用户在所述报表配置模板上配置的查询条件和标准SQL语句拼装组成的;根据预设的视图样式对所述目标数据集合进行可视化处理,生成视图形状的报表。2.如权利要求1所述的方法,其特征在于,所述通过动态生成的SQL从所述数据源中确定目标数据集合,包括:通过解析所述用户输入的查询参数确定所述数据源中的字段,并根据所述查询条件确定所述字段对应的报表单元格的范围;根据所述报表单元格中的填充数据确定目标数据集合。3.如权利要求1所述的方法,其特征在于,所述查询条件包括参数替换配置,所述通过动态生成的SQL从所述数据源中确定目标数据集合,还包括:替换所述报表配置模板中原始SQL语句中的字段;解析替换后的SQL,确定所述数据源中的字段;并根据所述查询条件确定所述字段对应的报表单元格的范围;根据所述报表单元格中的填充数据确定目标数据集合。4.如权利要求1所述的方法,其特征在于,根据预设的视图样式对所述目标数据集合进行可视化处理,生成视图形状的报表,包括:确定与预设的视图样式对应的字段属性,所述字段属性至少包括几何大小、几何坐标、颜色参数信息、展示方向信息;获取用户输入的视图样式的字段属性值,根据所述字段属性值生成目标报表样式;将所述目标数据集合与所述目标报表样式组合生成视图形状的报表。5.如权利要求1~4任一项所述的方法,其特征在于,所述视图样式至少包括网格报表、交叉报表、柱状图、折线图、饼图、散点图。6.-种报表生成系统,其特征在于,该系统包括:获取单元,用于根据用户的生成报表请求,获取对应的报表配置模板和数据源;确定单元,用于通过动态生成的结构化查询语言SQL从所述数据源中确定目标数据集合,其中,所述动态生成的SQL是由所述用户输入的查询参数、用户在所述报表配置模板上配置的查询条件和标准SQL语句拼装组成的;生成单元,用于根据预设的视图样式对所述目标数据集合进行可视化处理,生成视图形状的报表。7.如权利要求6所述的系统,其特征在于,所述确定单元具体用于:通过解析所述用户输入的查询参数确定所述数据源中的字段,并根据所述查询条件确定所述字段对应的报表单元格的范围;根据所述报表单元格中的填充数据确定目标数据集合。8.如权利要求6所述的系统,其特征在于,所述查询条件还包括参数替换配置,所述确定单元还用于:替换所述报表配置模板中原始SQL语句中的字段;解析替换后的SQL,确定所述数据源中的字段;并根据所述查询条件确定所述字段对应的报表单元格的范围;根据所述报表单元格中的填充数据确定目标数据集合。9.如权利要求6所述的系统,其特征在于,所述生成单元具体用于:确定与预设的视图样式对应的字段属性,所述字段属性至少包括几何大小、几何坐标、颜色参数信息、展示方向信息;获取用户输入的视图样式的字段属性值,根据所述字段属性值生成目标报表样式;将所述目标数据集合与所述目标报表样式组合生成视图形状的报表。10.如权利要求6~9任一项所述的系统,其特征在于,所述视图样式至少包括网格报表、交叉报表、柱状图、折线图、饼图、散点图。【文档编号】G06F17/30GK105843945SQ201610217609【公开日】2016年8月10日【申请日】2016年4月8日【发明人】丁林,陈瑛绮【申请人】联动优势科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1