一种报表生成方法及装置与流程

文档序号:12363699阅读:206来源:国知局
一种报表生成方法及装置与流程

本发明涉及网络技术领域,特别涉及一种报表生成方法及装置。



背景技术:

报表是系统管理的一项基本业务需求,通过报表,用户可以以安全、可靠、可视化的方式访问数据,并能够将数据导出为各种格式的文件,方便管理、展示和汇报。

报表内容一般由两部分组成,一部分是来源于数据源的结构化的原始数据,是用户最关心的内容,也是报表的核心部分。其中,数据源可以是数据库或文本文件等。另一部分是用于定义报表展示样式的报表模板,它以一个单独的文件存在或以元数据的方式存在。报表模板与数据结合之后可以输出多种格式的文件,图1所示为上述报表形成过程的一个示意图。这种数据与模板分离的结构可以保证报表数据动态化、样式多样化的特性。

现有技术中,报表的生成过程是这样的:开发人员根据用户需求并结合系统中的数据源设计报表模板的内容,然后将报表模板文件交付给用户使用,用户根据获得的报表模板和数据源生成报表。用户如果想要修改报表的内容,一般需要由开发人员根据用户的需求对模板进行修改。这种报表生成方式对于适用面较广的基础业务报表是可行的,但是随着用户数量的增加和业务扩张,不同的用户对于报表需求的差异会越来越大,将造成开发人员的工作量急剧增加,报表生成的周期不断延长。



技术实现要素:

本发明实施例的目的在于提供了一种报表生成方法及装置,以缩短报表的生成周期。

为了达到上述目的,本发明公开了一种报表生成方法,所述方法包括:

确定第一业务对应的第一报表模板;其中,所述第一报表模板为根据第一业务对应的第一元数据接口以及用户的选择操作预先生成的,所述第一元数据接口中包括至少一个可选类;

解析所述第一报表模板,获得所述第一报表模板包含的目标可选类;

从数据源中获得所述目标可选类对应的业务数据;

根据所述业务数据和所述第一报表模板,生成所述第一业务对应的业务报表。

为了达到上述目的,本发明公开了一种报表生成装置,所述装置包括:

确定单元,用于确定第一业务对应的第一报表模板;其中,所述第一报表模板为根据第一业务对应的第一元数据接口以及用户的选择操作预先生成的,所述第一元数据接口中包括至少一个可选类;

解析单元,用于解析所述第一报表模板,获得所述第一报表模板包含的目标可选类;

获得单元,用于从数据源中获得所述目标可选类对应的业务数据;

生成单元,用于根据所述业务数据和所述第一报表模板,生成所述第一业务对应的业务报表。

由上述技术方案可见,本发明实施例中,确定第一业务对应的第一报表模板,解析第一报表模板,获得第一报表模板包含的目标可选类,然后从数据源中获得目标可选类对应的业务数据,根据获得的业务数据和第一报表模板,生成第一业务对应的业务报表。其中,第一报表模板为根据第一业务对应的第一元数据接口以及用户的选择操作预先生成的,第一元数据接口中包括至少一个可选类。

也就是说,本发明实施例中,第一报表模板是根据第一业务对应的第一元数据接口以及用户的选择操作预先生成的,在需要生成报表时,根据第一业务确定对应的第一报表模板,进而生成报表。现有技术是开发人员根据用户需要设计报表模板,而本发明实施例是根据用户对第一业务对应的第一元数据接口的选择操作生成报表模板,进而生成报表。可以理解的是,开发人员是有限的,相比于机器本身根据用户的选择生成报表模板来说,由开发人员根据用户的需要修改并生成报表模板显示是更费时的,报表模板的交付周期更长,对应的报表的生成周期也会更长。因此,应用本发明实施例的报表生成方法,能够缩短报表的生成周期。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为报表形成过程的一种原理示意图;

图2为本发明实施例提供的报表生成方法的一种流程示意图;

图3为各个模块之间交互的一种原理示意图;

图4为设备业务的报表模板的一个例子;

图5为为动态参数设置界面示意图;

图6为采用本发明实施例提供的报表生成方法所生成的报表的一个例子;

图7为本发明实施例提供的报表生成方法的另一种流程示意图;

图8为本发明实施例提供的报表生成装置的一种结构示意图;

图9为本发明实施例提供的报表生成装置的另一种结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种报表生成方法及装置,能够缩短报表的生成周期。本发明实施例可以应用于管理服务器,也可以应用于终端设备,本发明对此不做限定。

下面通过具体实施例,对本发明进行详细说明。

图2为本发明实施例提供的报表生成方法的一种流程示意图。当本实施例应用于管理服务器时,管理服务器可以包括元数据接口管理模块、核心管理模块和交互接口模块。当本实施例应用于终端设备时,终端设备可以包括元数据接口管理模块、核心管理模块和交互接口模块。图3为各个模块之间交互的原理示意图。

其中,数据源,用于提供各个业务的原始数据,并接收元数据管理模块发送的通过数据源接口传入的过滤信息,并返回业务数据。根据行业不同,业务可以包括不同种类。对于网管系统,业务可以包括无线业务、告警业务、性能业务和资源业务等。对于人口管理系统,业务可以包括人员基本情况、迁移流动状况、人口素质情况、就业和社会保障状况、婚姻生育状况等。本发明对业务种类不做具体限定。

元数据管理模块,用于向各个业务提供对应的元数据接口,并向核心管理模块注册各个元数据接口包含的可选类;在生成报表的过程中,还用于将数据源接口返回的业务数据提供给核心管理模块,以使核心管理模块根据业务数据生成业务报表。

核心管理模块,主要提供报表模板管理功能和数据填充功能,即用于根据用户的选择操作生成报表模板,并解析报表模板;通过元数据管理模块向数据源接口传入过滤信息,并收集数据源接口通过元数据管理模块返回的业务数据,将业务数据填充至报表模板,生成业务报表。此外,核心管理模块还用于为元数据管理模块提供元数据注册接口,为交互接口模块提供元数据接口以及报表模板查看接口。

交互接口模块,用于为用户提供报表模板设计界面和报表呈现界面,并将收集的用户的选择操作提供给核心管理模块。

具体的,该方法包括如下步骤:

步骤S201:确定第一业务对应的第一报表模板。其中,第一报表模板为根据第一业务对应的第一元数据接口以及用户的选择操作预先生成的,第一元数据接口中包括至少一个可选类。

具体的,根据用户选择的第一业务,确定第一业务对应的第一报表模板。当用户想要生成第一业务对应的业务报表时,可以在交互接口模块向用户呈现的业务选择页面中选择业务种类。例如,用户选择了告警业务,认为用户需要生成告警业务报表。那么,交互接口模块将用户选择的第一业务的标识发送至核心管理模块,核心管理模块根据标识确定第一报表模板。

需要说明的是,第一报表模板可以以文件的形式存储在文件系统中,也可以元数据的方式存储。本发明对此不做具体限定。

第一元数据接口是预先设置好并注册到核心管理模块中的。用户在生成第一报表模板时,可以通过交互接口模块与核心管理模块进行交互,并使核心管理模块根据用户对第一元数据接口中的可选类的选择操作生成第一报表模板。

第一元数据接口中的可选类是根据第一业务中的可选数据列及其过滤条件和可选图表等的数据结构生成的。也就是说,每一个数据列及其过滤条件和每一个图表都对应一个可选类。在设计报表模板时,用户可以通过交互接口模块选择自己需要的数据列、设置过滤条件、选择图表。交互接口模块通过用户的选择操作确定目标可选类,并将目标可选类发送给核心管理模块,以使核心管理模块根据目标可选类生成用户需要的报表模板。

需要说明的是,为了能从数据源中获取业务数据,第一元数据接口中还可以包括数据源接口。在生成报表模板时,数据源接口是不需要用户选择的。核心管理模块可以直接将数据源接口绑定至报表模板的指定位置。

步骤S202:解析所述第一报表模板,获得所述第一报表模板包含的目标可选类。

具体的,核心管理模块可以用于执行解析第一报表模板的操作。

图4为设备业务的报表模板的一个例子。可以看出,该报表模板中的目标可选类包括:数据列包括设备标签、IP地址、状态和类型;图表为设备状态统计图。

步骤S203:从数据源中获得所述目标可选类对应的业务数据。

在本实施例的一种具体实现方式中,从数据源中获得所述目标可选类对应的业务数据,可以包括:从第一报表模板中获得数据源接口,调用数据源接口,从数据源中获得所述目标可选类对应的业务数据。

更具体的,调用数据源接口,从数据源中获得所述目标可选类对应的业务数据,可以包括如下实现方式:

步骤1:检测所述目标可选类是否需要用户输入参数,如果需要,则执行步骤2,如果不需要,则执行步骤3。

步骤2:通过交互接口模块获取用户输入的目标可选类对应的参数,根据所述参数,生成过滤信息。

其中,过滤信息包括目标数据列以及每个目标数据列对应的目标行。

需要说明的是,在选择数据列的过滤条件时,如果用户选择了需要输入动态参数的过滤条件,那么需要用户进一步输入参数。这时,核心管理模块可以通过交互接口模块向用户展示参数设置界面。当接收到用户输入的参数时,交互接口模块将用户输入的参数返回给核心管理模块。核心管理模块根据用户输入的参数,生成过滤信息。

例如,原始数据中存在“时间”数据列,该列包含的可选条件为:最近一周、最近一天、最近一小时和自定义时间。当用户选择“自定义时间”作为过滤条件时,认为用户选择了需要用户动态输入的过滤条件。这时,可以向用户弹出参数设置界面,提示用户设置具体的过滤时间。图5为动态参数设置界面示意图,该图中,用户可以输入“查询起始时间”和“查询终止时间”。

步骤3:根据所述目标可选类,生成过滤信息。

步骤4:调用所述数据源接口,将所述过滤信息发送至数据源。

步骤5:获取所述数据源返回的所述过滤信息对应的业务数据。

在实际应用中,核心管理模块在解析出第一报表模板中的目标可选类之后,根据目标可选类可以生成过滤信息,并将过滤信息交付给元数据管理模块。元数据管理模块可以通过调用数据源接口,将过滤信息发送给数据源,以使数据源返回目标可选类对应的业务数据。

例如,对于图4所示的报表模板,目标可选类包括:数据列=设备标签、IP地址、状态和类型;过滤条件为;状态=未知+正常,类型=路由器+PC(persional computer,个人电脑);图表为设备状态统计图。数据源接口从上述目标可选类中获取的过滤信息包括:满足“设备标签=所有,IP地址=所有,状态=未知+正常,类型=路由器+PC”条件的数据列,设备状态统计图需要的“状态=所有”的数据列。数据源根据上述过滤信息从原始数据中筛选出满足过滤信息的数据列(即业务数据),并通过数据源接口发送给元数据管理模块。元数据管理模块将业务数据发送至核心管理模块。

步骤S204:根据所述业务数据和所述第一报表模板,生成所述第一业务对应的业务报表。

具体的,核心管理模块接收元数据管理模块发送的业务数据,并将业务数据填充值第一报表模板,生成第一业务对应的业务报表。为了让用户能够查看到该业务报表,核心管理模块还可以通过交互接口模块将业务报表呈现给用户,以供用户查看。

图6为采用本发明实施例提供的报表生成方法所生成的报表的一个例子。其中,图中上部显示了饼状的设备状态统计图,下部显示了报表模板中数据列的具体内容。

由上述内容可知,本实施例中,第一报表模板是根据第一业务对应的第一元数据接口以及用户的选择操作预先生成的,在需要生成报表时,根据第一业务确定对应的第一报表模板,进而生成报表。现有技术是开发人员根据用户需要设计报表模板,而本实施例是根据用户对第一业务对应的第一元数据接口的选择操作生成报表模板,进而生成报表。可以理解的是,开发人员是有限的,相比于机器本身根据用户的选择生成报表模板来说,由开发人员根据用户的需要修改并生成报表模板显示是更费时的,报表模板的交付周期更长,对应的报表的生成周期也会更长。因此,应用本实施例的报表生成方法,能够缩短报表的生成周期。

在本申请的另一具体实现方式中,图2所示实施例中的第一报表模板可以采用图7所示流程示意图的方式生成:

步骤S701:获得所述第一业务对应的第一元数据接口。

具体的,获得所述第一业务对应的第一元数据接口,可以包括:根据用户的选择操作,从元数据接口库中获得第一业务对应的第一元数据接口。

在实际应用中,在生成报表模板时,核心管理模块可以通过交互接口模块向用户呈现可供选择的各个业务的元数据接口的标识,根据用户选择的元数据接口的标识,确定该标识对应的第一元数据接口。核心管理模块还要解析元数据接口中的数据结构,将解析结果可选类(数据列及其过滤条件、图表)返回给交互接口,以供用户选择。

例如,图4左侧的下拉列表中分别展示了可选的数据列、分析图表和过滤条件,其中,过滤条件用于过滤用户选择的数据列中的具体内容。即,用户选择数据列,决定了报表中展示哪些纵向的列,过滤条件决定了所展示的纵向的列中显示哪些横向的具体内容。又如,用户可以从图4的“设备标签”“IP地址”“状态”“类型”数据列中选择“设备标签”“状态”和“类型”。之后,用户可以设置针对这两个数据列的过滤条件,例如,设置“状态”=未知+正常,“类型”=PC。

步骤S702:根据用户的选择操作,从所述第一元数据接口中确定目标可选类。

需要说明的是,用户可以在交互接口模块呈现的设计界面中进行拖、点、选操作。在确定过滤条件时,可以根据用户选择的某一列的值等于、大于或小于预设值,也可以根据用户输入的参数设置动态过滤条件。

步骤S703:根据所述目标可选类以及所述第一元数据接口,生成所述第一业务对应的第一报表模板。

具体的,在确定目标可选类之后,可以将目标可选类以及第一元数据接口中的数据源接口写入预设的空白报表模板中,生成第一业务对应的第一报表模板。其中,目标可选类包括用户选择的数据列及其过滤条件、图表等。

在本实施例的另一实现方式中,为了减少报表模板生成过程缺陷bug的产生,在图7所示的步骤S703之前,即根据所述目标可选类以及所述第一元数据接口,生成所述第一业务对应的第一报表模板之前,还可以包括:

判断所述目标可选类是否合法,如果是,则返回执行所述根据所述目标可选类以及所述第一元数据接口,生成所述第一业务对应的第一报表模板的步骤。

具体的,判断目标可选类是否合法,可以包括:将目标可选类的标识ID与元数据接口中包含的可选类的ID进行匹配,如果均能匹配上,则确定目标可选类合法。

值得指出的一点是,第一报表模板中保存了报表模板展示所必须的可选类、参数、图表样式等信息,也保存了填充数据时所必须的数据源接口信息。

由上述内容可见,由于用于生成报表模板的元数据接口是预先生成的,用户无需具备结构化查询语言SQL开发技能或其他编程语言开发技能,只需根据自己的需求对元数据接口中的可选类进行拖拽,即可完成报表模板的生成,因此能够使报表模板生成过程变得简单、高效。

更进一步的,现有技术中,开发人员采用SQL或其他编程语言生成报表模板后,需要上传到应用系统,由于每个开发人员对报表模板的修改可能都不同,这很容易导致应用系统的报表模板中出现信息错误、各种bug等。而本实施例中,元数据接口是预先生成的,普通用户通过选择元数据接口中的可选类生成报表模板,能够尽可能避免报表模板中出现信息错误和bug的情况。同时,现有技术中,在开发人员的软件中报表模板的预览效果可能会与应用系统实际展示时的效果不同,而本实施例中生成的报表模板所见即所得。

在本实施例的另一实现方式中,元数据接口可以预先生成。图7所示实施例中的第一元数据接口可以采用如下方式生成:

步骤1:根据所述第一业务的类型信息,生成所述第一业务的可选类和数据源接口。

其中,类型信息可以包括第一业务包含的数据列的ID、标题Title、字段属性等。可选类包括可选数据列、每个数据列可以生成的过滤条件和图表等。例如,对于图4中的数据列“类型”,除了可以根据该数据列的ID、标题title、字段数据等生成该数据列的可选类之外,还可以根据该数据列的具体内容(路由器、PC、交换机或电话)生成过滤条件,即“类型”可以等于路由器、PC、交换机、电话中的一个或多个。数据列“类型”对应可以生成设备类型统计图,该图可以有柱状、饼状和条状图等图形类型。

步骤2:根据所述可选类和数据源接口以及预设的元数据接口属性,生成所述第一元数据接口。

其中,元数据接口属性可以由开发人员预先设置好并保存在管理服务器或终端设备上。

在实际应用中,元数据接口属性可以由以下字段实现:

compnentId业务ID

typeId元数据接口类型

name元数据接口名称

desc元数据接口描述

providerClassName数据源接口的实现

inputParaUrl自定义的参数输入页面,用于查看报表时个性化定义执行参数输入页面

columns元数据接口包含的可用于设计的可选数据列

paras元数据接口包含的可用于设计的可选参数

charts元数据接口包含的可用于设计的可选图表

上述元数据接口属性中设置了表示层展示给用户的基本设计元素。但为了保证报表可以正常展示,还需要调用数据源接口提供业务数据来填充报表内容。数据源接口的实现即元数据接口属性中定义的providerClassName的值。在用户生成报表时,数据源接口根据核心管理模块传入的过滤条件从数据源获得业务数据,并返回给核心管理模块进行报表数据填充,进而将报表结果返回给表示层,展示给用户。

在实际应用中,典型的数据源接口可以由CustomReportJRAbstractBeanDataSourceProvider接口实现,同时实现generateData(Map<String,List<DesignFilterModel>>filters)方法,generateData方法在执行时会接收到核心管理模块传入的过滤条件,generateData方法内需要根据过滤条件从数据源获取业务数据,并将业务数据返回给核心管理模块。

在生成元数据接口之后,可以将元数据接口属性中的元数据接口名称写入元数据管理模块指定的配置文件中。在元数据管理模块启动时,会扫描所有业务的配置文件,将配置文件中定义的元数据接口注册到核心管理模块中。

图8为本发明实施例提供的报表生成装置的一种结构示意图,与图2所示方法实施例相对应,所述装置包括确定单元801、解析单元802、获得单元803、生成单元804。

其中,确定单元801,用于确定第一业务对应的第一报表模板;其中,所述第一报表模板为根据第一业务对应的第一元数据接口以及用户的选择操作预先生成的,所述第一元数据接口中包括至少一个可选类;

解析单元802,用于解析所述第一报表模板,获得所述第一报表模板包含的目标可选类;

获得单元803,用于从数据源中获得所述目标可选类对应的业务数据;

生成单元804,用于根据所述业务数据和所述第一报表模板,生成所述第一业务对应的业务报表。

在图8所示实施例中,所述获得单元803,可以包括:

第二获得子单元(图中未示出),用于从所述第一报表模板中获得数据源接口;

第三获得子单元(图中未示出),用于调用所述数据源接口,从数据源中获得所述目标可选类对应的业务数据。

在图8所示实施例中,所述第三获得子单元,具体可以用于:

检测所述目标可选类是否需要用户输入参数;

如果需要,则通过交互接口模块获取用户输入的目标可选类对应的参数,根据所述参数,生成过滤信息;

如果不需要,则根据所述目标可选类,生成过滤信息;

调用所述数据源接口,将所述过滤信息发送至数据源;

获取所述数据源返回的所述过滤信息对应的业务数据。

在本发明的另一实施例中,在图8所示实施例的基础上还可以包括:报表模板生成单元800,如图9所示。图9所示实施例与图7所示方法实施例相对应。

所述报表模板生成单元800,用于生成所述第一报表模板;

所述报表模板生成单元,具体包括:第一获得子单元、确定子单元和第一生成子单元;(图中未示出)

其中,第一获得子单元,用于获得所述第一业务对应的第一元数据接口;

确定子单元,用于根据用户的选择操作,从所述第一元数据接口中确定目标可选类;

第一生成子单元,用于根据所述目标可选类以及所述第一元数据接口,生成所述第一业务对应的第一报表模板。

在图9所示实施例中还可以包括:第一判断子单元(图中未示出);

所述第一判断子单元,用于在所述根据所述目标可选类以及所述第一元数据接口,生成所述第一业务对应的第一报表模板之前,判断所述目标可选类是否合法,如果是,则返回执行所述第一生成子单元。

在图9所示实施例中,还可以包括:元数据接口生成单元(图中未示出);

所述元数据接口生成单元,用于采用以下方式生成所述第一元数据接口:

根据所述第一业务的类型信息,生成所述第一业务的可选类和数据源接口;根据所述可选类和数据源接口以及预设的元数据接口属性,生成所述第一元数据接口。

由于上述装置实施例是基于方法实施例得到的,与该方法具有相同的技术效果,因此装置实施例的技术效果在此不再赘述。

对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本领域普通技术人员可以理解,上述实施方式中的全部或部分步骤是能够通过程序指令相关的硬件来完成的,所述的程序可以存储于计算机可读取存储介质中。这里所称存储介质,是指ROM/RAM、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1