公开/公告号CN102929850A
专利类型发明专利
公开/公告日2013-02-13
原文格式PDF
申请/专利权人 用友软件股份有限公司;
申请/专利号CN201210372006.2
申请日2012-09-28
分类号G06F17/22(20060101);G06F9/445(20060101);
代理机构北京友联知识产权代理事务所(普通合伙);
代理人尚志峰;汪海屏
地址 100094 北京市海淀区北清路68号用友软件园
入库时间 2024-02-19 17:47:45
法律状态公告日
法律状态信息
法律状态
2015-10-21
授权
授权
2015-10-14
著录事项变更 IPC(主分类):G06F17/22 变更前: 变更后: 申请日:20120928
著录事项变更
2013-03-20
实质审查的生效 IPC(主分类):G06F17/22 申请日:20120928
实质审查的生效
2013-02-13
公开
公开
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种报表数据处理装 置和一种报表数据处理方法。
背景技术
在分析报表领域中,通常一个单元格展现一个数据内容,该单元格存 储的也是产生该数据内容的数值或公式等。
但在很多情况下,报表中并不仅仅需要显示出来的数据,有很多应用 需要用到不可见的数据。比如,报表通常会显示编码、名称、数量、金额 类的字段信息,但不会把数据库级的主键信息显示给用户,而在报表前台 应用当中,需要根据主键进行公式依赖计算(通过主键带入业务实体的其 它属性)、数据联查或钻取、唯一性匹配等等,这就要求主键信息既被加 载出来可被引用,又不能显示出来。
一般说来,报表的数据加载不是一个孤立的问题,一张报表内有多个 数据区域,一个区域内有多个单元格。在设计态下,报表有一个如何嵌入 数据模型、格式信息和数据处理过程的抽象描述,之后对其进行存储,到 了浏览态时则需要根据规则动态扩展相关的区域和单元格,并加载相关的 数据。所以,该技术领域需要从单元格内和整表(单元格间)两个角度来 考虑相关方案。
在相关技术中,通常采用的方案是隐藏字段法:比如同一行数据中, 报表要求产品名称,但行数据还需要引用产品主键和产品编码,那么就把 这三个字段拖入表格,然后将主键和编码字段所在列隐藏起来。
这种做法首先存在一个加载效率的问题,因为这三个字段处于一种同 等的地位,在报表浏览时被同时加载,但此时尚不确定该主键和编码字段 是否被用到——比如用户是要在点击“产品名称”的单元格后,才按照产 品主键进行联查,那么在用户进行类似操作之前,则实际上并不需要这些 数据;尤其是对于一张分析表可能有上千个单元格甚至更多,而单元级信 息的加载效率至关重要,大量“无用”数据信息的加载,显然不利于用户 的使用体验。
其次,当某数据处理必须作用于指定的单元格,但又依赖于非该单元 格的数据时,将会给单元格的扩展带来运算不一致性。比如,准备对存货 名称字段分组时,由于不能保证名称字段的唯一性,我们希望分组依据是 存货主键,而存货主键隐藏在另一个单元格中,这时我们无论对主键和名 称字段进行联合分组还是二级分组,都不能达到所需要的统计意图——实 际上我们只是要按照主键字段分组,但组内显示内容为名称。
因此,需要一种新的报表数据处理技术,可以对单元格中的数据进行 分步加载,从而既能够满足用户的浏览需求,又能够对表格数据进行高效 加载、动态扩展。
发明内容
本发明正是基于上述问题,提出了一种新的报表数据处理技术,可以 对单元格中的数据进行分步加载,从而既能够满足用户的浏览需求,又能 够对表格数据进行高效加载、动态扩展。
有鉴于此,本发明提出了一种报表数据处理装置,包括:信息存储单 元,用于在报表的单元格中存储主信息和辅助信息,其中,所述辅助信息 包括第一加载信息和第二加载信息;初始化加载单元,用于在所述报表被 浏览时,加载所述单元格中的所述主信息和所述第一加载信息,其中,所 述主信息用于显示在所述单元格中,且所述主信息和/或所述第一加载信 息用于其他单元格的加载;懒加载单元,用于根据接收到的指定触发动 作,对所述第二加载信息进行懒加载。
在该技术方案中,主信息是用于显示的信息,辅助信息是不需要显示 的信息,但辅助信息中的第一加载信息可能被用于其他单元格的主信息等 的加载(如具体字段表达式的计算),也需要与主信息一并加载,而第二 加载信息由于只有在用户启用某些功能或执行某些操作时才可能被用到, 因而并不需要一开始就加载出来,因此,可以进行懒加载,即等到需要时 再加载。因此,在对报表进行初始加载时,仅加载了必须的信息,而对于 非必要的信息,则等到需要时才进行加载,从而尽可能地加快了报表的加 载速度。
在上述技术方案中,优选地,还包括:扩展显示单元,用于对所述单 元格进行扩展显示。
在该技术方案中,需要根据预设的数据模型的显示要求和数据结果, 对单元格进行扩展,从而将对报表的抽象描述转换为显示的单元格变化。 而这也体现了对于报表数据的处理过程与单纯的表格工具(如Microsoft Excel)的处理过程的区别,根据单元格中的数据进行扩展的过程显然是 更为繁琐、完全不同的。
在上述任一技术方案中,优选地,还包括:缓存单元,用于对加载后 的所述第二加载信息进行缓存,使得当需要使用该信息时,直接从缓存中 进行调用。
在该技术方案中,首次对第二加载信息进行加载时,需要根据其对应 的字段表达式等进行公式计算,而通过对得到的计算结果进行缓存,从而 当之后需要使用到该第二加载信息时,直接从缓存中调用该计算结果即 可,而无需重复计算。
在上述任一技术方案中,优选地,还包括:设置单元,用于根据接收 到的设置命令,将所述单元格中的数据设置为所述主信息和所述辅助信 息。
在该技术方案中,根据实际需要,可以对单元格中的数据进行设置, 从而划分哪些为主信息、哪些为辅助信息(包括进一步地对第一加载信息 和第二加载信息进行区分)。
在上述任一技术方案中,优选地,还包括:检测单元,用于在完成对 所述单元格的设置后,对所述报表中的所有单元格内的主信息和/或辅助 信息中包含的字段表达式进行循环依赖性判断,若存在循环依赖性,则对 相关单元格中的主信息和/或辅助信息进行重新设置。
在该技术方案中,通过对循环依赖性的检测,从而避免循环依赖导致 无法进行数据加载。
根据本发明的又一方面,还提出了一种报表数据处理方法,包括:步 骤202,在报表的单元格中存储主信息和辅助信息,其中,所述辅助信息 包括第一加载信息和第二加载信息;步骤204,在所述报表被浏览时,加 载所述单元格中的所述主信息和所述第一加载信息,其中,所述主信息用 于显示在所述单元格中,且所述主信息和/或所述第一加载信息用于其他 单元格的加载;步骤206,根据接收到的指定触发动作,对所述第二加载 信息进行懒加载。
在该技术方案中,主信息是用于显示的信息,辅助信息是不需要显示 的信息,但辅助信息中的第一加载信息可能被用于其他单元格的主信息等 的加载(如具体字段表达式的计算),也需要与主信息一并加载,而第二 加载信息由于只有在用户启用某些功能或执行某些操作时才可能被用到, 因而并不需要一开始就加载出来,因此,可以进行懒加载,即等到需要时 再加载。因此,在对报表进行初始加载时,仅加载了必须的信息,而对于 非必要的信息,则等到需要时才进行加载,从而尽可能地加快了报表的加 载速度。
在上述技术方案中,优选地,所述步骤204还包括:对所述单元格进 行扩展显示。
在该技术方案中,需要根据预设的数据模型的显示要求和数据结果, 对单元格进行扩展,从而将对报表的抽象描述转换为显示的单元格变化。 而这也体现了对于报表数据的处理过程与单纯的表格工具(如Microsoft Excel)的处理过程的区别,根据单元格中的数据进行扩展的过程显然是 更为繁琐、完全不同的。
在上述任一技术方案中,优选地,所述步骤206还包括:对加载后的 所述第二加载信息进行缓存,使得当需要使用该信息时,直接从缓存中进 行调用。
在该技术方案中,首次对第二加载信息进行加载时,需要根据其对应 的字段表达式等进行公式计算,而通过对得到的计算结果进行缓存,从而 当之后需要使用到该第二加载信息时,直接从缓存中调用该计算结果即 可,而无需重复计算。
在上述任一技术方案中,优选地,所述步骤202包括:根据接收到的 设置命令,将所述单元格中的数据设置为所述主信息和所述辅助信息。
在该技术方案中,根据实际需要,可以对单元格中的数据进行设置, 从而划分哪些为主信息、哪些为辅助信息(包括进一步地对第一加载信息 和第二加载信息进行区分)。
在上述任一技术方案中,优选地,所述步骤202还包括:在完成对所 述单元格的设置后,对所述报表中的所有单元格内的主信息和/或辅助信 息中包含的字段表达式进行循环依赖性判断,若存在循环依赖性,则对相 关单元格中的主信息和/或辅助信息进行重新设置。
在该技术方案中,通过对循环依赖性的检测,从而避免循环依赖导致 无法进行数据加载。
通过以上技术方案,可以对单元格中的数据进行分步加载,从而既能 够满足用户的浏览需求,又能够对表格数据进行高效加载、动态扩展。
附图说明
图1示出了根据本发明的实施例的报表数据处理装置的框图;
图2示出了根据本发明的实施例的报表数据处理方法的流程图;
图3示出了根据本发明的实施例的聚合信息处理的具体流程图;
图4示出了根据本发明的实施例的聚合信息的存储数据结构示意图;
图5至图8示出了根据本发明的实施例的报表设计及显示的示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附 图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不 冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是, 本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明 的保护范围并不受下面公开的具体实施例的限制。
图1示出了根据本发明的实施例的报表数据处理装置的框图。
如图1所示,根据本发明的实施例的报表数据处理装置100,包括: 信息存储单元102,用于在报表的单元格中存储主信息和辅助信息,其 中,所述辅助信息包括第一加载信息和第二加载信息;初始化加载单元 104,用于在所述报表被浏览时,加载所述单元格中的所述主信息和所述 第一加载信息,其中,所述主信息用于显示在所述单元格中,且所述主信 息和/或所述第一加载信息用于其他单元格的加载;懒加载单元106,用于 根据接收到的指定触发动作,对所述第二加载信息进行懒加载。
在该技术方案中,主信息是用于显示的信息,辅助信息是不需要显示 的信息,但辅助信息中的第一加载信息可能被用于其他单元格的主信息等 的加载(如具体字段表达式的计算),也需要与主信息一并加载,而第二 加载信息由于只有在用户启用某些功能或执行某些操作时才可能被用到, 因而并不需要一开始就加载出来,因此,可以进行懒加载,即等到需要时 再加载。因此,在对报表进行初始加载时,仅加载了必须的信息,而对于 非必要的信息,则等到需要时才进行加载,从而尽可能地加快了报表的加 载速度。
在上述技术方案中,优选地,还包括:扩展显示单元108,用于对所 述单元格进行扩展显示。
在该技术方案中,需要根据预设的数据模型的显示要求和数据结果, 对单元格进行扩展,从而将对报表的抽象描述转换为显示的单元格变化。 而这也体现了对于报表数据的处理过程与单纯的表格工具(如Microsoft Excel)的处理过程的区别,根据单元格中的数据进行扩展的过程显然是 更为繁琐、完全不同的。
在上述任一技术方案中,优选地,还包括:缓存单元110,用于对加 载后的所述第二加载信息进行缓存,使得当需要使用该信息时,直接从缓 存中进行调用。
在该技术方案中,首次对第二加载信息进行加载时,需要根据其对应 的字段表达式等进行公式计算,而通过对得到的计算结果进行缓存,从而 当之后需要使用到该第二加载信息时,直接从缓存中调用该计算结果即 可,而无需重复计算。
在上述任一技术方案中,优选地,还包括:设置单元112,用于根据 接收到的设置命令,将所述单元格中的数据设置为所述主信息和所述辅助 信息。
在该技术方案中,根据实际需要,可以对单元格中的数据进行设置, 从而划分哪些为主信息、哪些为辅助信息(包括进一步地对第一加载信息 和第二加载信息进行区分)。
在上述任一技术方案中,优选地,还包括:检测单元114,用于在完 成对所述单元格的设置后,对所述报表中的所有单元格内的主信息和/或 辅助信息中包含的字段表达式进行循环依赖性判断,若存在循环依赖性, 则对相关单元格中的主信息和/或辅助信息进行重新设置。
在该技术方案中,通过对循环依赖性的检测,从而避免循环依赖导致 无法进行数据加载。
图2示出了根据本发明的实施例的报表数据处理方法的流程图。
如图2所示,根据本发明的实施例的报表数据处理方法,包括:步骤 202,在报表的单元格中存储主信息和辅助信息,其中,所述辅助信息包 括第一加载信息和第二加载信息;步骤204,在所述报表被浏览时,加载 所述单元格中的所述主信息和所述第一加载信息,其中,所述主信息用于 显示在所述单元格中,且所述主信息和/或所述第一加载信息用于其他单 元格的加载;步骤206,根据接收到的指定触发动作,对所述第二加载信 息进行懒加载。
在该技术方案中,主信息是用于显示的信息,辅助信息是不需要显示 的信息,但辅助信息中的第一加载信息可能被用于其他单元格的主信息等 的加载(如具体字段表达式的计算),也需要与主信息一并加载,而第二 加载信息由于只有在用户启用某些功能或执行某些操作时才可能被用到, 因而并不需要一开始就加载出来,因此,可以进行懒加载,即等到需要时 再加载。因此,在对报表进行初始加载时,仅加载了必须的信息,而对于 非必要的信息,则等到需要时才进行加载,从而尽可能地加快了报表的加 载速度。
在上述技术方案中,优选地,所述步骤204还包括:对所述单元格进 行扩展显示。
在该技术方案中,需要根据预设的数据模型的显示要求和数据结果, 对单元格进行扩展,从而将对报表的抽象描述转换为显示的单元格变化。 而这也体现了对于报表数据的处理过程与单纯的表格工具(如Microsoft Excel)的处理过程的区别,根据单元格中的数据进行扩展的过程显然是 更为繁琐、完全不同的。
在上述任一技术方案中,优选地,所述步骤206还包括:对加载后的 所述第二加载信息进行缓存,使得当需要使用该信息时,直接从缓存中进 行调用。
在该技术方案中,首次对第二加载信息进行加载时,需要根据其对应 的字段表达式等进行公式计算,而通过对得到的计算结果进行缓存,从而 当之后需要使用到该第二加载信息时,直接从缓存中调用该计算结果即 可,而无需重复计算。
在上述任一技术方案中,优选地,所述步骤202包括:根据接收到的 设置命令,将所述单元格中的数据设置为所述主信息和所述辅助信息。
在该技术方案中,根据实际需要,可以对单元格中的数据进行设置, 从而划分哪些为主信息、哪些为辅助信息(包括进一步地对第一加载信息 和第二加载信息进行区分)。
在上述任一技术方案中,优选地,所述步骤202还包括:在完成对所 述单元格的设置后,对所述报表中的所有单元格内的主信息和/或辅助信 息中包含的字段表达式进行循环依赖性判断,若存在循环依赖性,则对相 关单元格中的主信息和/或辅助信息进行重新设置。
在该技术方案中,通过对循环依赖性的检测,从而避免循环依赖导致 无法进行数据加载。
图3示出了根据本发明的实施例的聚合信息处理的具体流程图。
如图3所示,根据本发明的实施例的聚合信息处理的具体流程如下:
在设计态下:
1)在报表设计器中,比如在图5所示的报表设计界面中,可以定义 某单元格为聚合信息单元。
2)指定该聚合信息单元的主信息(待显示字段表达式)、常规加载 的辅助信息(字段表达式、对象)、懒加载的辅助信息(字段表达式、对 象)等。
具体地,可以将聚合信息单元中的数据成为聚合信息,那么聚合信息 的存储数据结构如图4所示,采用大对象或者XML等方式都容易将该数 据结构持久化到数据库或文件中。其中,具体的设置界面如图6所示,从 而得到如图7所示的聚合信息单元。
3)设计完成后,执行保存。其中,在保存前期会执行校验,确认多 个单元格的聚合信息中的表达式之间是否存在循环依赖性,若存在,则需 要进行重新设定,直至检测结果为不存在。
在浏览态下:
1)加载报表的所有格式信息以及聚合信息单元中的主信息和常规加 载的辅助信息,并对其进行解析。当含有聚合信息单元的报表执行浏览 时,聚合信息单元只加载出主信息(用于显示)和常规加载的辅助信息, 这时其它依赖于该单元格的主信息或常规加载的辅助信息的单元格中的公 式(字段表达式)也可以计算出结果。
2)对聚合信息单元及其所处区域(包含多个单元格)进行扩展,结 合预先设置的格式信息显示出主信息,比如将[部门名称]扩展为实际查出 的10个具体名称。
具体地,这里的“扩展”是指报表中的一片区域(由单元格组成), 根据该区域需要展现的数据模型的显示要求和数据结果,从抽象描述变为 实际展现的一个过程。如表1和表2所示,2行3列的区域将用于展现部 门编码、名称及数量的数据信息,设计态时的抽象描述仅用如表1所示的 [编码]、[名称]、[数量]表示,浏览态实际查出数据后,该区域则扩展成了 表2所示的样子,实际上每个单元格也扩展到了多行一列的状态。
表1
表2
3)完成相应字段表达式的计算。
4)当报表执行后续的特定分析处理(比如在单元格上进行钻取、联 查、浮动提示等)时,通过将懒加载的辅助信息读入,应用于相关分析处 理,并将得到的处理数据存入缓存中,以备之后需要用到该数据时,直接 从缓存中调用即可。具体如图8所示,当初始化加载时,仅对主信息和常 规加载的辅助信息进行加载,而当需要使用具体的某些功能的时候,才对 懒加载的辅助信息进行加载。
以上结合附图详细说明了本发明的技术方案,考虑到相关技术中,对 于单元格中的信息,在初始化时就全部进行加载,使得加载速度过慢,影 响用户的使用体验,因此,本发明提供了一种报表数据处理装置和一种报 表数据处理方法,可以对单元格中的数据进行分步加载,从而既能够满足 用户的浏览需求,又能够对表格数据进行高效加载、动态扩展。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于 本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精 神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明 的保护范围之内。
机译: 报表数据管理服务器,报表数据管理程序和报表数据管理设备
机译: 报表数据管理服务器,报表数据管理程序和报表数据管理设备
机译: 自动制作增值税报表的方法,自动确定增值税报表的形式的方法,自动制作成增值税报表的销售部分的方法,自动制作成增值税报表的购买部分的方法