首页> 中国专利> 一种生成多维度报表的方法

一种生成多维度报表的方法

摘要

本发明公开了一种生成多维度报表的方法,其包含以下步骤:设置多维度报表的结构,编辑表头内容;将所述报表中各单元与数据库字段进行绑定,并对所述数据库字段添加逻辑关系限定;在数据库中查询每个所述数据库字段对应的本体数据内容和关联的数据库字段对应的关联数据内容;基于所述表头结构、所述表头内容将查询到的所述本体数据内容和所述关联数据内容填充到对应的所述单元中,从而生成所述多维度报表。根据本发明所述方法生成的多维度报表可以灵活的展示多表数据,并对特定字段进行数据挖掘和层次化显示,同时还可以将用户操作模板化以多次利用,减少用户操作步骤,提高了自定义报表的易用性、实用性。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-12-21

    授权

    授权

  • 2015-12-23

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20140505

    实质审查的生效

  • 2015-11-25

    公开

    公开

说明书

技术领域

本发明涉及计算机软件开发领域,具体说涉及一种生成多维度报表的方法。

背景技术

报表可以帮助企业访问、格式化数据,并把数据信息以安全可靠的方式呈现 给使用者。利用计算机处理数据和界面设计的功能来生成、展示报表,其主要特 点是数据动态化,格式多样化,并且实现报表数据和报表格式的完全分离。

然而对于现有的报表生成工具,在生成报表时,受限于数据库的库表结构, 无法灵活设置填充到报表单元的数据内容,一般只能简单罗列一张或多张源表的 数据内容,不能灵活展示多表数据。

并且大多报表生成工具在对数据内容进行筛选、排序、聚集等设置时,只提 供了让用户自己输入数据库查询语句的方法,而实现这些功能所对应的数据库查 询语句比一般查询语句更为复杂,对于非专业用户是难以掌握的,使得软件的易 用性大大降低。

同时,对于数据内容存在层级关系的字段,例如部门名称字段,可能其中某 些部门是另一部门的子部门,用户需要按照部门的层级依次填充报表单元,形成 总分结构,这需要对单一字段进行数据挖掘,然后分级展示到多个报表单元中。 现有报表工具并未支持对单一字段中的层级关系的挖掘和对应展示。

因此,针对上述问题,需要一种新的报表生成方法以更灵活的挖掘并展示数 据内容。

发明内容

针对现有报表生成工具生成的报表不能够灵活的挖掘并展示数据内容的问 题,本发明提供了一种生成多维度报表的方法,所述方法包含以下步骤:

步骤一,设置待生成的多维度报表的结构,编辑所述报表的表头内容;

步骤二,将所述报表中各单元与数据库字段进行绑定,并对所述数据库字段 添加逻辑关系限定,用以关联包含相应逻辑连接的数据库字段从而增加该单元的 数据维度;

步骤三,在数据库中查询每个所述数据库字段对应的本体数据内容和关联的 数据库字段对应的关联数据内容;

步骤四,基于所述报表的结构、所述表头内容将所述本体数据内容和所述关 联数据内容填充到对应的单元中,从而生成多维度报表。

根据本发明的一个实施例,在所述步骤二中,对多个所述数据库字段添加相 互逻根据本发明的一个实施例,在所述步骤二中,添加逻辑关系限定后的数据库 字段包括父子关系挖掘字段,所述父子关系挖掘字段包括标识字段、内容字段、 父标识字段、子标识字段。

根据本发明的一个实施例,通过限定所述父子关系挖掘字段的挖掘深度来确 定基于父系或子系逻辑关系的关联的数据库字段的维度。

根据本发明的一个实施例,在数据库中查询父子关系挖掘字段所对应的本体 数据内容并基于所述挖掘深度查询父子关系挖掘字段所对应的相应维度的附加 数据内容,并将所述本体数据内容和所述附加数据内容填充到对应的单元中。

根据本发明的一个实施例,所述步骤二还包括对所述单元添加数据筛选条件 设置和/或数据展现设置,所述数据展现设置包括升/降序排列设置、单元格聚集 设置;所述数据展现设置还包括数据挖掘设置,用于确定所述单元对所述本体数 据内容或所述附加数据内容的数据展现方式。

根据本发明的一个实施例,利用条件限定语句添加所述逻辑关系限定、所述 数据筛选条件设置,且基于所述逻辑关系限定、所述数据筛选条件设置完成所述 步骤三。

根据本发明的一个实施例,所述方法还包含步骤五,此步骤包含:

根据所述内容升/降序排列设置排序所述单元内的数据;

根据所述单元格聚集设置查找指定过聚集的单元,遍历所述单元包含的所有 单元格,将相邻的同值单元格合并;

根据所述数据挖掘设置层次化显示所述本体数据内容和所述附加数据内容, 反映数据内容之间的逻辑关系。

根据本发明的一个实施例,所述方法还包含步骤六,基于所述报表的生成过 程中的操作流程信息建立自定义的报表操作流程模板并存储所述报表操作流程 模板。

根据本发明的一个实施例,所述操作流程信息包含所述表头内容、所述报表 的结构、所述数据筛选条件设置、所述数据展现设置、绑定在所述单元上的数据 库字段或父子关系挖掘字段、添加在所述数据库字段上的逻辑关系限定。

与现有技术相比,本发明具有如下优点:

1、根据本发明所述方法生成的多维度报表可以灵活的展示多表数据;

2、根据本发明所述方法生成的多维度报表可以对特定字段进行数据挖掘和 层次化显示,具有较强的数据展现能力;

3、根据本发明所述方法将用户操作模板化以多次利用,减少用户操作步 骤,提高了自定义报表的易用性、实用性。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明 书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可 通过在说明书、权利要求书以及附图中所特别指出的步骤来实现和获得。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明 的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:

图1是根据本发明一实施例生成报表的流程图;

图2是根据本发明一实施例的表头设置软件效果截图;

图3是根据本发明一实施例的合并、拆分单元格的软件效果截图;

图4是根据本发明一实施例的绑定数据库字段的软件效果截图;

图5是根据本发明一实施例的绑定父子关系挖掘字段到的软件效果截图;

图6是根据本发明一实施例的数据展现设置的软件效果截图;

图7是根据本发明一实施例的数据筛选条件设置的软件效果截图;

图8是根据本发明一实施例生成的多维度报表效果截图;

图9是根据本发明一实施例的报表操作流程模板加载、删除、保存的软件效 果截图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如 何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据 以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施 例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之 内。

另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计 算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况 下,可以以不同于此处的顺序执行所示出或描述的步骤。

根据本发明的一个实施例生成报表的流程就是对报表的不同单元绑定对应 的数据库字段和父子关系挖掘字段,并利用条件语句添加逻辑关系限定和数据 筛选条件设置以链接多表和数据筛选,以及对表头的内容自定义。根据这些设 定生成出相应的数据库查询语句来执行,获取返回的数据结果并填充到报表 中,再对报表进行升降序和单元格聚集操作,实现最终报表的生成。

图1是根据本发明一实施例生成多维度报表的流程图。如图1所示,首先进 行步骤S120,设置待生成的多维度报表的结构,编辑报表的表头内容。此步骤 包括单元格的合并与拆分,构建所需的报表表头等。

然后进行步骤S131,将报表中各单元与数据库字段进行绑定。根据本发明 一实施例,在此步骤中可以多表字段绑定,即绑定到报表单元的数据库字段所 对应的数据内容可以来自多个不同的源表。字段绑定通过选定要绑定到的报表 单元,然后再选择要绑定的数据所对应的源表和数据库字段来实现。

在步骤S132中,对数据库字段添加逻辑关系限定,用来关联包含相应逻辑 连接的数据库字段从而增加该单元的数据维度,通过关联包含相应逻辑连接的 数据库字段可以达到将多个源表的数据在同一单元内关联展现的目的。同时, 在步骤S132中,对不同数据库字段添加相互逻辑关系限定,逻辑关系限定的添 加通过条件限定语句来实现,用以确定各数据库字段对应的数据内容之间的逻辑 关系。使展现在报表内的不同的源表可以相互关联,从而更加灵活的展示数据 内容。

添加逻辑关系限定后的数据库字段包括父子关系挖掘字段。父子关系挖掘 字段包括标识字段、内容字段、父标识字段和子标识字段。其中,内容字段为 与本体数据内容对应的数据库字段,父标识字段、子标识字段为反映父子关系 的字段,标识字段为父子关系挖掘字段的标识字段。

对于对应数据内容存在父子关系的数据库字段,通过指定内容字段获取本 体数据内容,通过指定反映父子关系的两个字段,以及标识字段,来获取此字 段中不同数据间的父子关系。通过父子关系字段来得到绑定字段所对应的数据 内容间的层次关系,再通过标识字段将父子关系与绑定字段每行数据一一对 应。

在步骤S141中,将单元与父子关系挖掘字段进行绑定。然后在步骤S142中 通过限定父子关系挖掘字段的挖掘深度来确定基于父系或子系逻辑关系的附加 数据库字段的维度。挖掘深度,即获取绑定字段的几级父/子对象。

在步骤S133中,对报表单元进行数据筛选条件设置。数据筛选条件的设置 如步骤S132中的逻辑关系限定的添加一样,都是通过条件语句来实现。

在步骤S150中,对报表单元添加数据展现设置,数据展现设置包括升/降序 排列设置、单元格聚集设置。

在步骤S160中,基于数据筛选条件设置在数据库中查询每个数据库字段对 应的本体数据内容和关联的数据库字段对应的关联数据内容;

在步骤S170中,基于表头结构、表头内容将查询到的本体数据内容和关联 数据内容填充到对应的单元中,从而生成多维度报表。

在此情况下,报表单元内不止有本体数据内容,还包含与本体数据内容有 一定逻辑联系的关联数据内容,从而达到在同一单元内展现多源表数据内容的 目的,并且由于关联数据内容是本体数据内容基于一定逻辑关系的延生,基于 此,报表的数据挖掘能力得到体现。通过改变添加到数据库字段上的逻辑关系 限定,最终将包含不同逻辑联系的关联数据内容填充到报表单元中,从而达到 有目的的数据挖掘的功能。

针对绑定了父子关系挖掘字段的单元,首先在步骤S160中,在数据库中查 询每个父子关系挖掘字段所对应的本体数据内容并基于挖掘深度查询每个父子 关系挖掘字段所对应的相应维度的附加数据内容;然后在步骤170中,将所述本 体数据内容和所述附加数据内容填充到对应的所述单元中。

根据本发明一实施例,对于已填充数据内容的单元还要根据数据展现设置 对单元内数据进行数据展现。首先在步骤S181中,根据所述内容升/降序排列设 置排序所述单元内的数据;然后在步骤S182中,根据所述单元格聚集设置查找 指定过聚集的单元,遍历所述单元包含的所有单元格,将相邻的同值单元格合 并。

系统在完成数据展现步骤后在步骤S190中生成报表。生成的报表可以在步 骤S191中打印输出。

根据本发明所述的方法,无需通过输入数据库查询语句来实现多表字段的 绑定以及数据内容的筛选、排序、聚集的设置。对于报表的每个单元,可以指 定其内容显示的升序/降序,以及是否将相同值的单元格合并成一个单元格;可以 对特定数据内容进行值的限定以过滤数据;可以自行设置表头行列大小及内容, 并可以进行单元格的合并与拆分。

同时,在步骤S150中,数据展现设置还包括数据挖掘设置,用于确定单元 对本体数据内容或附加数据内容的数据展现方式。通过数据展现设置可以较为灵 活地设置包含多表数据的报表的展现方式,对特定字段进行数据挖掘和层次化显 示,从而更好的实现数据展现功能。

针对针对绑定了父子关系挖掘字段的单元,数据挖掘设置用于确定报表单元 对父子关系挖掘字段对应的本体数据内容或附加数据内容的数据展现方式。基于 数据挖掘设置,单元以多个列来层次化显示父子关系挖掘字段对应的数据内容, 反映数据内容之间的父子关系。

根据本发明一实施例,系统可以基于报表的生成过程中的操作流程信息建 立自定义的报表操作流程模板并存储所述报表操作流程模板。报表操作流程信 息包含表头内容、报表的结构、数据筛选条件设置、数据展现设置、绑定在不 同单元上的数据库字段或父子关系挖掘字段、添加在数据库字段上的逻辑关系 限定。系统将这些信息重新组合以生成对应的报表操作流程模板并存储到相应 的数据库中,实现持久化,以便多次使用,从而简化用户的操作步骤。

因此在本实施例中在开始步骤S120之前,还要先进行步骤S110,判断是新 建报表操作流程模板还是使用已保存的报表操作流程模板,如果判断的结果是 新建报告模板,则进行步骤S120,如果判断的结果是使用已保存的报表操作流 程模板,则调用报表操作流程模板,并在接下来的报表生成过程中通过读取报 表操作流程模板来完成或者跳过某些步骤,从而简化报表的生成过程。

接下来通过多个软件效果截图来详细说明本发明一实施例的具体实施过程 以及实施效果。以生成不同级别地质类型的含油气性信息报表为例,首先如图2 所示编辑报表的表头内容并如图3所示设置报表结构。结构设置是单元格的合并 与拆分,选中多个单元格后可以进行合并,选中占多行或多列的单元格后可以 进行拆分。

然后对不同的单元绑定不同的数据库字段。在本实施例中,绑定字段的数据 结构包括下面几个部分:字段绑定于报表的第几列,字段信息,是否对查询结果 进行排序,是否对查询结果进行聚集,排序的优先级别。对不同的列绑定不同数 据库字段的操作将新建一个绑定字段的数据结构的对象,并填充字段绑定于报表 的第几列以及字段信息。

如图4所示,在本实施例中,绑定数据库字段的过程是先选定报表的某一 列,然后选取需要绑定的数据库源表,最后选择数据库字段,完成列和数据库 字段的对应绑定,此操作会将已绑定的数据库字段信息存储到对应的数据结构 中。

接下来如图5所示绑定父子关系挖掘字段。绑定父子关系挖掘字段需要指定 4个字段,前2个字段(父标识字段、子标识字段)为反映父子关系的字段,后 两个字段(标识字段、内容字段)为绑定字段的标识字段及绑定字段本身。通过 父子关系字段来得到绑定字段所含内容间的层次关系,再通过标识字段将父子 关系与绑定字段每行数据一一对应。

例如,设定父子关系的两个字段为父ID、ID,设定标识字段及内容字段为 ID、NAME。这样根据父ID、ID就可以得到不同ID之间的父子层次关系,然后 根据ID、NAME两个字段将ID与NAME对应上,就可以得到不同NAME间的 父子层次关系。

在本实施例中,父子关系挖掘字段需要指定4个字段来源于两个表,一个表 专门记录父子关系,包含父标识字段和子标识字段,这个表包含了所有标识字 段间的父子关系;另一个表专门记录数据,包含标识字段和内容字段。这样根 据父标识字段、子标识字段就可以得到不同标识字段之间的父子层次关系,然 后根据标识字段和内容字段两个字段将标识字段和内容字段对应上,就可以得 到不同内容字段间的父子层次关系。

在本实施例中,父子关系挖掘字段的数据结构包括下面几个部分:字段绑定 于报表的第几列,挖掘深度,父标识字段、子标识字段、标识字段和内容字 段,父标识字段、子标识字段、标识字段和内容字段在数据库中所有的数据记 录,是否对查询结果进行排序,是否对查询结果进行聚集,排序的优先级别。 绑定父子关系挖掘字段的操作将新建一个父子关系挖掘字段的数据结构的对 象,并填充以下几部分信息:字段绑定于报表的第几列,父标识字段、子标识 字段、标识字段和内容字段。指定4个字段后,再给出挖掘深度,即获取已绑定 数据库字段的几级父亲。在本实施例中,默认0为绑定字段字段本身,1为绑定 字段的一级父对象,2为父对象的父对象,以此类推。此操作将补充挖掘深度到 之前建立的父子关系挖掘字段数据结构对象中。

接下来如图6所示对已绑定的数据库字段和父子关系挖掘字段进行数据展示 设置。其包含升/降序设置和聚集设置。升/降序设置是按照列的数据对报表进行 排序,升/降序设置包含优先级设置,即多个列同时采用升/降序时,按列的优先 级高低依次比较来决定顺序。聚集设置是指在生成报表后,报表每列中相邻的 单元格如果内容相同,则将其合并成一个单元格。此操作会将升/降序和聚集信 息存储到对应的绑定字段或父子关系挖掘字段数据结构中。

如图7所示通过条件限定语句进行数据筛选条件设置和/或对数据库字段添 加逻辑关系限定。在本实施例中,条件语句采用“where”语句。“where”语句限定 条件设置包含2种,第一种为包含两个字段的限定语句“where表A.字段1=表B. 字段2”,通过指定表A、字段1、表B、字段2构建语句。第二种为包含一个字 段的限定语句“where表A字段1判断符判断值”,过指定表A、字段1、判断符、 判断值构建语句。

“where”限定条件数据结构包含以下几个部分:左侧字段信息,右侧字段信息, 判断符,判断值。对于第一种操作,会将所选的两个字段填充到左侧字段信息, 右侧字段信息中;对于第二种操作,会将所选的字段填充到左侧字段信息中,将 判断符(=,>,<,>=,<=)及判断值填充进去。

以上设置完成后,最后进行生成报表。系统首先将表头内容和报表结构存 储到表头数据的数据结构中,表头数据的数据结构包含以下几个部分:行,列, 行大小,列大小,内容。在创建报表时,用户面直接向表格中输入表头内容,这 些内容及所在行列,所占行列数都会存储到表头内容数据结构中。然后在数据库 中查询父标识字段、子标识字段、标识字段和内容字段对应的数据,并填充到 表示父子关系挖掘字段的数据结构的数据内容部分。

接下来,系统会构建生成报表的结构化查询语言(StructuredQueryLanguage, 简称SQL)语句,语句的“select”部分包括每个绑定字段的字段名称及所属表名 称,及每个父子关系挖掘字段的标识字段名称及所属表名称,格式为“表名.字段 名”;“from”部分为它们所对应的数据库表;“where”部分为“where”限定条件数据 结构中所含的语句,多条限定语句通过“and”来连接。

在本实施例中,假设绑定字段包含两个对象,第一个对象字段信息为表A、 字段1,升/降序信息为升序,是否聚集为是,升降序优先级为0;第二个对象字 段信息为表B、字段2,升/降序信息为降序,是否聚集为否,升降序优先级为1;

并假设父子关系挖掘字段包含一个对象,挖掘深度为2,父标识字段为表C、 字段3,子标识字段为表D、字段4,标识字段为表E、字段5,内容字段为表F、 字段6,升/降序信息为升序,是否聚集为是,升降序优先级为2;

还假设“where”限定条件包含两个对象,第一个对象左字段为表G、字段7, 右字段为表H、字段8;第二个对象左字段为表I、字段9,判别符为>=,判别值 为100。

那么生成的SQL语句为select表A.字段1,表B.字段2,表E.字段5from表 A,表B,表Ewhere表G.字段7=表H.字段8and表I.字段9>=100。

系统在数据库中执行生成的查询语句并返回结果集,逐条读取结果记录, 然后填充到绑定字段所对应的列中。对于父子关系挖掘字段,得到标识字段的 结果记录的值(把这个记录值赋值给变量value)后,根据挖掘深度(假设值为n), 在父标识字段、子标识字段中,需要进行n次遍历来查找到此值的n级父对象的 标识值。其具体的实现方法为:在子标识字段中寻找值为value的行,得到其行 号(假设行号为a),然后获取父标识字段中行号为a的行的记录值,并将此记 录值赋值给value,此时value的值便是一级父对象的标识值。接下来以这个新 value重复执行上述操作,进行n次操作后便得到了n级父对象的标识值。然后在 标识字段、内容字段中,根据n级父对象标识值,得到标识值所对应的内容字段 的值,将这个值填充到报表中绑定父子关系挖掘字段所对应的列里。

例如由上述语句中得到的表E.字段5所对应的查询结果,求取其2级父对象 的内容。

其过程为:在建立SQL语句之前,先在数据库中查询到父子关系挖掘字段包 含的4个字段对应的数据,并将数据填充到表示父子关系挖掘字段的数据结构的 数据内容部分中。即在上面的例子中,预先用一条语句:"select表C.字段3,表 D.字段4,表E.字段5,表F.字段6from表C,表D,表E,表F"对数据库进行查询,并 将结果数据填充到父子关系挖掘字段数据结构对象中,将这4个字段在数据库中 所对应的所有记录存储起来。然后利用这些存储的数据,进行计算得到2级父对 象的内容。

对于上述SQL语句的查询结果中,表E.字段5所对应的一条查询结果记录 (记其值为ID1),先在表示父子关系的表C.字段3,表D.字段4记录中,寻找 ID1对应的2级父对象的标识字段,方法为在表D.字段4记录中寻找值为ID1的 记录,假如第m个记录的值为ID1,然后在表C.字段3中获取第m个记录的值 (记其值为ID2),则表示ID1的1级父对象的ID为ID2;然后在表D.字段4 记录中寻找值为ID2的记录,例如第n个记录的值为ID2,然后在表C.字段3中 获取第n个记录的值(记其值为ID3),则ID1的2级父对象的标识字段为ID3。

最后再找出标识字段为ID3的对象的内容值,则得到了ID1的2级父对象的 内容值。具体操作为在表示标识和内容关系的表E.字段5,表F.字段6记录中, 寻表E.字段5记录中值为ID3的记录,假如第k个记录的值为ID3,然后在表F. 字段6中获取第k个记录的值,例如为"xxx",则这条查询结果记录所对应的2级 父对象的内容值为"xxx"。

接下来,系统按照绑定字段和父子关系挖掘字段中所含的升/降序信息及排 序优先级,对报表数据部分进行排序。两行之间的先后顺序的决定方法为按优 先级高低,依次比较指定过升降序的列的值,然后进行行与行的对换。聚集的 实现方法为对指定过聚集的列,遍历它的行,并将相邻的同值单元格合并。至 此,如图8所示,最终的报表已经生成完毕并显示出来。

如图9所示,用户定义的报表可以存为模板以便今后使用。模板存储分为2 种情况,第一种为已经生成报表之后,此时将表头内容及报表结构、绑定字段、 父子关系挖掘字段、‘where’限定条件对应的四种数据结构中的数据(不包括父子 关系挖掘字段中存储字段所含有的数据部分,此部分每次生成报表时临时计算) 存入数据库。第二种为未生成报表,此时首先将用户所填充的报表表头内容和 报表结构存储到表头数据的数据结构中,然后执行第一种情况下的步骤。

虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发 明而采用的实施方式,并非用以限定本发明。本发明所述方法还可有其他多种 实施例,在不背离本发明实质的情况下,熟悉本领域的技术人员当可根据本发 明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权 利要求的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号