报表取数条件生成装置和方法

文档序号:6638122阅读:207来源:国知局
报表取数条件生成装置和方法
【专利摘要】本发明提供了一种报表取数条件生成装置,包括:数据结构存储单元,用于在前台部分以树型结构展示数据结构及其维度、度量成员和支持的拖拽功能,并将数据结构转换为该存储结构;映射区域生成单元,用于通过拖拽右侧相应的维度度量条件,建立取数条件的映射,生成映射取数区域;映射模型数据结构存储单元,用于生成映射区域后,在报表面板的后台,定义映射模型和映射区域模型,存储用户设置的映射信息。本发明还提供了一种报表取数条件生成方法。通过本发明的技术方案,可以在现有的条件生成方式基础上,充分利用单对象类型完成多对象类型的条件生成,建立多对象类型参与的条件生成的通用、统一生成思路。
【专利说明】报表取数条件生成装置和方法

【技术领域】
[0001] 本发明涉及数据处理【技术领域】,具体地,涉及一种报表取数条件生成装置和一种 报表取数条件生成方法。

【背景技术】
[0002] 针对目前现有的需求以及上文的立足点,本发明的技术方案提出了一种基于多维 分析理论的报表取数条件生成装置。它的特点是:
[0003] ⑴以用户自定义的多维分析模型(包含行列维度、度量)作为待选条件并以树形 结构展示,用户可以以拖拽的形式,将多维模型的维度与度量设置在表样的行头,列头从而 生成行列条件
[0004] ⑵通过对行列条件的布置将条件分成区域,并按照区域信息(维度,度量成生成 该区域的取数MDX语句用以在计算时通知计算单元。
[0005] 因此,需要一种新的条件生成技术,可以在现有的条件生成方式基础上,充分利用 单对象类型完成多对象类型的条件生成,建立多对象类型参与的条件生成的通用、统一生 成思路。


【发明内容】

[0006] 本发明正是基于上述问题,提出了一种新的条件生成技术,可以在现有的条件生 成方式基础上,充分利用单对象类型完成多对象类型的条件生成,建立多对象类型参与的 条件生成的通用、统一生成思路。
[0007] 有鉴于此,本发明提出了一种报表取数条件生成装置,包括:数据结构存储单元, 用于基于预先定义的多维分析取数模型即数据结构,在前台部分以树型结构展示数据结构 及其维度、度量成员和支持的拖拽功能,并将数据结构转换为该存储结构,用于展示树形结 构和存储动态区域;映射区域生成单元,用于将转换的存储结构应用于表样,通过拖拽右侧 相应的维度度量条件,建立取数条件的映射,生成映射取数区域;映射模型数据结构存储单 元,用于生成映射区域后,在报表面板的后台,定义映射模型和映射区域模型,存储用户设 置的映射信息。在该技术方案中,可以通过不同的设置方式,生成不同的取数条件,最终达 到通过多维分析模型取报表数据的目的。
[0008] 在上述技术方案中,优选地,所述映射区域生成单元通过拖拽右侧相应的维度度 量条件,建立取数条件的映射,生成映射取数区域的操作,进一步包括:⑴拖曳行条件到行 头;⑵拖曳列条件到列头;⑶点击生成映射区域。
[0009] 在上述技术方案中,优选地,所述映射区域生成单元,具体包括:交叉区域生成模 块,用于建立多个由行、列条件组成的交叉区域,遍历所有的指标单元格;MDX语句生成及 保存模块,用于当所有的指标单元格遍历完成之后,在每个映射区域中,保存行/列条件在 MDX查询中应该出现的位置,并生成MDX;区域计算模块,用于基于生成的MDX,对每个交叉 区域进行计算。在该技术方案中,基于多维技术来生成报表取数条件,而多维取数模型是用 户可自定义的,并且是基于业务的多维分析模型,而且在定义到表样时,也完全是基于业务 的且支持拖拽形式,而不必定义公式。
[0010] 在上述技术方案中,优选地,所述MDX语句生成及保存模块,还用于在生成MDX时, 根据MDX的位置,组装依次出现的维度成员或由多个维度成员组成的元组,将行列条件存 储的方式设为哈希表形式。
[0011] 在上述技术方案中,优选地,所述MDX语句生成及保存模块生成MDX的操作,进一 步包括:⑴循环行/列条件集合中的每一个行/列位置;⑵根据位置取到对应的成员集合; ⑶集合中是否多元素,如果是则拼写元组,如果不是则拼写维度成员。
[0012] 根据本发明的又一个方面,还提出了一种报表取数条件生成方法,包括:步骤 202:基于预先定义的多维分析取数模型即数据结构,在前台部分以树型结构展示数据结 构及其维度、度量成员和支持的拖拽功能,并将数据结构转换为该存储结构,用于展示树形 结构和存储动态区域;步骤204 :将转换的存储结构应用于表样,通过拖拽右侧相应的维度 度量条件,建立取数条件的映射,生成映射取数区域;步骤206 :生成映射区域后,在报表面 板的后台,定义映射模型和映射区域模型,存储用户设置的映射信息。在该技术方案中,基 于多维技术来生成报表取数条件,而多维取数模型是用户可自定义的,并且是基于业务的 多维分析模型,而且在定义到表样时,也完全是基于业务的且支持拖拽形式,而不必定义公 式。
[0013] 在上述技术方案中,优选地,所述步骤204通过拖拽右侧相应的维度度量条件,建 立取数条件的映射,生成映射取数区域的操作,进一步包括:⑴拖曳行条件到行头;⑵拖曳 列条件到列头;⑶点击生成映射区域。
[0014] 在上述技术方案中,优选地,所述步骤204,具体包括:步骤302 :建立多个由行、列 条件组成的交叉区域,遍历所有的指标单元格;步骤304 :当所有的指标单元格遍历完成之 后,在每个映射区域中,保存行/列条件在MDX查询中应该出现的位置,并生成MDX;步骤 306 :基于生成的MDX,对每个交叉区域进行计算。
[0015] 在上述技术方案中,优选地,所述步骤304,还包括:在生成MDX时,根据MDX的位 置,组装依次出现的维度成员或由多个维度成员组成的元组,将行列条件存储的方式设为 哈希表形式。
[0016] 在上述技术方案中,优选地,所述步骤304生成MDX的操作,进一步包括:⑴循环行 /列条件集合中的每一个行/列位置;⑵根据位置取到对应的成员集合;⑶集合中是否多元 素,如果是则拼写元组,如果不是则拼写维度成员。
[0017] 通过以上技术方案,可以在现有的条件生成方式基础上,充分利用单对象类型完 成多对象类型的条件生成,建立多对象类型参与的条件生成的通用、统一生成思路。

【专利附图】

【附图说明】
[0018] 图1示出了根据本发明的实施例的报表取数条件生成装置的框图;
[0019] 图2示出了根据本发明的实施例的报表取数条件生成方法的流程图;
[0020] 图3示出了根据本发明的实施例的映射区域生成单元的流程图;
[0021] 图4示出了根据本发明的实施例的基于用户在已经建立好多维分析取数模型的 详细流程图;
[0022] 图5示出了根据本发明的实施例的表样格式与多维取数条件映射设计器(取数设 计前)的工作界面截图;
[0023] 图6示出了根据本发明的实施例的生成取数条件映射区域的流程图;
[0024] 图7示出了根据本发明的实施例的表样格式与多维取数条件映射设计器(取数设 计后)的工作界面截图;
[0025] 图8示出了根据本发明的实施例的拖拽映射事件处理的流程图;
[0026] 图9示出了根据本发明的实施例的映射区域生成算法的流程图;
[0027] 图10示出了根据本发明的实施例的区域计算MDX生成过程的流程图。

【具体实施方式】
[0028] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实 施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施 例及实施例中的特征可以相互组合。
[0029] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可 以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开 的具体实施例的限制。
[0030] 图1示出了根据本发明的实施例的报表取数条件生成装置的框图。
[0031] 如图1所示,根据本发明的实施例的报表取数条件生成装置100,包括:数据结构 存储单元102,用于基于预先定义的多维分析取数模型即数据结构,在前台部分以树型结构 展示数据结构及其维度、度量成员和支持的拖拽功能,并将数据结构转换为该存储结构,用 于展示树形结构和存储动态区域;映射区域生成单元104,用于将转换的存储结构应用于 表样,通过拖拽右侧相应的维度度量条件,建立取数条件的映射,生成映射取数区域;映射 模型数据结构存储单元106,用于生成映射区域后,在报表面板的后台,定义映射模型和映 射区域模型,存储用户设置的映射信息。在该技术方案中,可以通过不同的设置方式,生成 不同的取数条件,最终达到通过多维分析模型取报表数据的目的。
[0032] 在上述技术方案中,优选地,映射区域生成单元104通过拖拽右侧相应的维度度 量条件,建立取数条件的映射,生成映射取数区域的操作,进一步包括:⑴拖曳行条件到行 头;⑵拖曳列条件到列头;⑶点击生成映射区域。
[0033] 在上述技术方案中,优选地,映射区域生成单元104,具体包括:交叉区域生成模 块1042,用于建立多个由行、列条件组成的交叉区域,遍历所有的指标单元格;MDX语句生 成及保存模块1044,用于当所有的指标单元格遍历完成之后,在每个映射区域中,保存行 /列条件在MDX查询中应该出现的位置,并生成MDX;区域计算模块1046,用于基于生成的 MDX,对每个交叉区域进行计算。在该技术方案中,基于多维技术来生成报表取数条件,而多 维取数模型是用户可自定义的,并且是基于业务的多维分析模型,而且在定义到表样时,也 完全是基于业务的且支持拖拽形式,而不必定义公式。
[0034] 在上述技术方案中,优选地,MDX语句生成及保存模块1044,还用于在生成MDX时, 根据MDX的位置,组装依次出现的维度成员或由多个维度成员组成的元组,将行列条件存 储的方式设为哈希表形式。
[0035] 在上述技术方案中,优选地,MDX语句生成及保存模块1044生成MDX的操作,进一 步包括:⑴循环行/列条件集合中的每一个行/列位置;⑵根据位置取到对应的成员集合; ⑶集合中是否多元素,如果是则拼写元组,如果不是则拼写维度成员。
[0036] 图2示出了根据本发明的实施例的报表取数条件生成方法的流程图。
[0037] 如图2所示,根据本发明的实施例的报表取数条件生成方法,包括:步骤202:基 于预先定义的多维分析取数模型即数据结构,在前台部分以树型结构展示数据结构及其维 度、度量成员和支持的拖拽功能,并将数据结构转换为该存储结构,用于展示树形结构和存 储动态区域;步骤204 :将转换的存储结构应用于表样,通过拖拽右侧相应的维度度量条 件,建立取数条件的映射,生成映射取数区域;步骤206 :生成映射区域后,在报表面板的后 台,定义映射模型和映射区域模型,存储用户设置的映射信息。在该技术方案中,基于多维 技术来生成报表取数条件,而多维取数模型是用户可自定义的,并且是基于业务的多维分 析模型,而且在定义到表样时,也完全是基于业务的且支持拖拽形式,而不必定义公式。
[0038] 在上述技术方案中,优选地,步骤204通过拖拽右侧相应的维度度量条件,建立取 数条件的映射,生成映射取数区域的操作,进一步包括:⑴拖曳行条件到行头;⑵拖曳列条 件到列头;⑶点击生成映射区域。
[0039] 在上述技术方案中,优选地,如图3所示,步骤204,具体包括:步骤302:建立多 个由行、列条件组成的交叉区域,遍历所有的指标单元格;步骤304:当所有的指标单元格 遍历完成之后,在每个映射区域中,保存行/列条件在MDX查询中应该出现的位置,并生成 MDX;步骤306 :基于生成的MDX,对每个交叉区域进行计算。
[0040] 在上述技术方案中,优选地,步骤304,还包括:在生成MDX时,根据MDX的位置,组 装依次出现的维度成员或由多个维度成员组成的元组,将行列条件存储的方式设为哈希表 形式。
[0041] 在上述技术方案中,优选地,步骤304生成MDX的操作,进一步包括:⑴循环行/列 条件集合中的每一个行/列位置;⑵根据位置取到对应的成员集合;⑶集合中是否多元素, 如果是则拼写元组,如果不是则拼写维度成员。
[0042] 本发明的技术方案,提供了一种基于多维分析理论的报表取数条件生成技术,适 用于用面向业务设计的多维分析模型中的维度和度量,通过不同的设置方式,生成不同的 取数条件,最终达到通过多维分析模型取报表数据的目的。
[0043] 随着企业的飞速发展,用户对于报表数据的采集方式,越来越趋向于面向业务的 数据抓取;在现有的很多报表产品中,都在使用公式进行报表制作,虽然简化了用户的操 作,但也随之也带来了很多问题,比如用户在某单元格定义了取数公式:A6 =F('B6')。
[0044] 单就A6来说,这种方法并不能直观的展示A6究竟取的是什么数据,如果需要了 解,那就必须要了解函数F(X)的含义及其写法规范,而对于表样的制作人员、以及那些关 心数据来源与业务含义的人来说,要把业务数据用公式的形式描述、解读公式含义需要一 个很长很晦涩的学习过程,并且我们要为每个取数单元格都设置类似这样的公式,工作量 非常大。
[0045] 因此,如果能够直观的设计表样与表间单元格的取数条件,使用户能够直接按照 业务需求去设计表样从而达到取数的目的。这是本发明的技术方案的立足点和待解决的问 题。
[0046] 本发明的技术方案是基于用户在已经建立好多维分析取数模型的基础上,如图4 所示。
[0047]如图4所示,本发明的技术方案中提到的取数条件生成装置位于图4中多维分析 条件应用于表样生成取数区域的部分,即多维分析条件应用于表样生成映射取数区域。为 了实现技术方案中所述目标,在前台部分以树型结构展示多维模型(数据结构)及其维度、 度量成员,并支持拖拽功能。用户将对应的单元格所要取数据的条件,通过拖拽右侧相应的 维度度量条件,建立起取数条件的映射,如图5所示。
[0048]建立取数条件的前提,是建立一个由行、列条件组成的交叉区域,由用户进行如图 6所示的操作。
[0049] 如图5和图6,譬如第一个指标单元格(行次3,D列),表样上的列描述是期末余 额,行描述则是货币资金,那么分别从右侧拖拽多维模型的行列条件(维度,度量条件), 指标单元格最终的取数条件是行条件与列条件的和,如此直到用户定义好所有的条件组合 方式(以行头,列头上的条件的和为准),当用户点击生成映射区域时,后台会自动合并可 以由一次MDX查询取出数据的、处在同一个方块区域的所有指标为一个取数区域,并生成 该区域的取数MDX,如图5中所示,D6,D7,D8单元格,他们的列条件相同,而行条件虽然条 件不同,但都来自于同一个维度:报表项目,所以可以合并为一个取数区域,是可以用一个 MDX语句进行一次性取数的。如图7,保存映射区域后实际上做了两件事:1.生成映射区域; 2.生成,并记录该映射区域的取数MDX语句。拖拽后的条件在表样上高亮显示。
[0050] 数据结构:多维模型展示在树结构上应用数据结构如下,将用户定义的多维模型, 转换为该存储结构,用作树形展示与动态区存储。
[0051] 维度的数据结构如下:
[0052]

【权利要求】
1. 一种报表取数条件生成装置,其特征在于,包括: 数据结构存储单元,用于基于预先定义的多维分析取数模型即数据结构,在前台部分 以树型结构展示数据结构及其维度、度量成员和支持的拖拽功能,并将数据结构转换为该 存储结构,用于展示树形结构和存储动态区域; 映射区域生成单元,用于将转换的存储结构应用于表样,通过拖拽右侧相应的维度度 量条件,建立取数条件的映射,生成映射取数区域; 映射模型数据结构存储单元,用于生成映射区域后,在报表面板的后台,定义映射模型 和映射区域模型,存储用户设置的映射信息。
2. 根据权利要求1所述的报表取数条件生成装置,其特征在于,所述映射区域生成单 元通过拖拽右侧相应的维度度量条件,建立取数条件的映射,生成映射取数区域的操作,进 一步包括: ⑴拖曳行条件到行头; ⑵拖曳列条件到列头; ⑶点击生成映射区域。
3. 根据权利要求1或2所述的报表取数条件生成装置,其特征在于,所述映射区域生成 单元,具体包括: 交叉区域生成模块,用于建立多个由行、列条件组成的交叉区域,遍历所有的指标单元 格; MDX语句生成及保存模块,用于当所有的指标单元格遍历完成之后,在每个映射区域 中,保存行/列条件在MDX查询中应该出现的位置,并生成MDX ; 区域计算模块,用于基于生成的MDX,对每个交叉区域进行计算。
4. 根据权利要求3所述的报表取数条件生成装置,其特征在于,所述MDX语句生成及保 存模块,还用于在生成MDX时,根据MDX的位置,组装依次出现的维度成员或由多个维度成 员组成的元组,将行列条件存储的方式设为哈希表形式。
5. 根据权利要求3所述的报表取数条件生成装置,其特征在于,所述MDX语句生成及保 存模块生成MDX的操作,进一步包括: ⑴循环行/列条件集合中的每一个行/列位置; ⑵根据位置取到对应的成员集合; ⑶集合中是否多元素,如果是则拼写元组,如果不是则拼写维度成员。
6. -种报表取数条件生成方法,其特征在于,包括: 步骤202 :基于预先定义的多维分析取数模型即数据结构,在前台部分以树型结构展 示数据结构及其维度、度量成员和支持的拖拽功能,并将数据结构转换为该存储结构,用于 展示树形结构和存储动态区域; 步骤204 :将转换的存储结构应用于表样,通过拖拽右侧相应的维度度量条件,建立取 数条件的映射,生成映射取数区域; 步骤206 :生成映射区域后,在报表面板的后台,定义映射模型和映射区域模型,存储 用户设置的映射信息。
7. 根据权利要求6所述的报表取数条件生成方法,其特征在于,所述步骤204通过拖拽 右侧相应的维度度量条件,建立取数条件的映射,生成映射取数区域的操作,进一步包括: ⑴拖曳行条件到行头; ⑵拖曳列条件到列头; ⑶点击生成映射区域。
8. 根据权利要求6或7所述的报表取数条件生成方法,其特征在于,所述步骤204,具 体包括: 步骤302 :建立多个由行、列条件组成的交叉区域,遍历所有的指标单元格; 步骤304 :当所有的指标单元格遍历完成之后,在每个映射区域中,保存行/列条件在 MDX查询中应该出现的位置,并生成MDX ; 步骤306 :基于生成的MDX,对每个交叉区域进行计算。
9. 根据权利要求8所述的报表取数条件生成方法,其特征在于,所述步骤304,还包括:在生成MDX时,根据MDX的位置,组装依次出现的维度成员或由多个维度成员组成的元组, 将行列条件存储的方式设为哈希表形式。
10. 根据权利要求8所述的报表取数条件生成方法,其特征在于,所述步骤304生成 MDX的操作,进一步包括: ⑴循环行/列条件集合中的每一个行/列位置; ⑵根据位置取到对应的成员集合; ⑶集合中是否多元素,如果是则拼写元组,如果不是则拼写维度成员。
【文档编号】G06F17/30GK104361137SQ201410757407
【公开日】2015年2月18日 申请日期:2014年12月10日 优先权日:2014年12月10日
【发明者】丛大勇 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1