[发明专利]一种复杂报表引擎方法及装置在审
申请号: | 202010858117.9 | 申请日: | 2020-08-24 |
公开(公告)号: | CN111737539A | 公开(公告)日: | 2020-10-02 |
发明(设计)人: | 查文宇;张达;巩亚辉;殷腾蛟 | 申请(专利权)人: | 成都四方伟业软件股份有限公司 |
主分类号: | G06F16/901 | 分类号: | G06F16/901;G06F40/174;G06F40/186 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 610041 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 复杂 报表 引擎 方法 装置 | ||
本发明公开了一种复杂报表引擎方法及装置,主要解决现有技术中存在的现有复杂报表引擎方法存在的没有统一维护且访问效率低,造成逻辑的分离及行过程经过多个阶段,推导耗时长的问题。该一种复杂报表引擎方法及装置是首先基于用户自行配置的报表模板,生成一颗或N棵初始状态的树,多个树之间可以有交叉;然后,依次从每棵树的根节点到叶子节点逐层加载数据,并根据数据条数复制树节点及分配值。之后,复制出来的节点会连同子节点一并复制,从而生成一颗新的树。最后,将同一个模板树节点扩展出来的具有同层级的节点通过链表统一维护。通过上述方案,本发明达到了内存开销小、推导快的目的。
技术领域
本发明涉及数据查询和引擎技术领域,具体地说,是涉及一种复杂报表引擎方法及装置。
背景技术
日常生活中人们通常用计算机记录各种数据,计算机上的报表的主要特点是数据动态化,格式多样化,并且实现报表数据和报表格式的完全分离,用户可以只修改数据,或者只修改格式。
针对复杂报表现有技术中的引擎方法是从查询结果数据为切入点,通过多层嵌套的散列表结构描述节点间关系,散列表的大小取决于字段值的数量,嵌套层级取决于父子格的层级深度。
上述复杂报表引擎方法存在一些问题:同层级同类型的字段通常会分布在多个散列表中,没有统一维护且访问效率低;散列表的嵌套结构决定了从上层到下层的快速访问特性,但从下层到上层需要单独的数据结构来实现,造成逻辑的分离; 当前方案的设计思路为先加载数据并完成单元格计算,再组成嵌套的散列表结构,最后完成推导,执行过程经过多个阶段,推导耗时长。
发明内容
本发明的目的在于提供一种复杂报表引擎方法及装置,以解决现有复杂报表引擎方法存在的没有统一维护且访问效率低,造成逻辑的分离及行过程经过多个阶段,推导耗时长的问题。
为了解决上述问题,本发明提供如下技术方案:
一种复杂报表引擎方法包括以下步骤:
S1、根据用户自行配置的报表模板,生成一棵或N棵初始状态的树;
S2、依次从步骤S1的每棵树根节点到叶子节点逐层加载数据;
S3、根据步骤S2中数据条数复制树节点及分配值,生成一棵新的树;
S4、重复步骤S2和S3至完成数据加载;
S5、将同一个模板树节点扩展出来的具有同层级的节点通过链表统一维护。
上述复杂报表引擎方法是基于改进后的B树算法,对复杂报表进行分层的、有父子格关系的推导,能够基于用于自定义的模板进行数据的加载和复制单元格,并推导产生具有层次和分组关系的复杂表格,过程中采用树形算法、惰性求值方法,使本发明具有推导速度快、内存开销低、公式使用灵活等优势,其中链表可以实现对拥有相同母单元格的所有单元格的快速访问;克服了现有基于嵌套式列表的复杂报表推算算法存在的问题。
进一步的,步骤S1中多棵树时树之间交叉或不交叉;树之间交叉时,一个节点最多拥有两个父节点。
进一步的,步骤S2中复制出来的节点会连同子节点一并复制,从而生成一棵新的树;新的树代表由模板单元格复制和新产生的单元格。
进一步的,步骤S1中的树为对称或非对称结构;树的初始结构是由用户自定义设计,可以是任意形态,其优势是没有模板形态的限制,用户配什么样式的模板都可以。
进一步的,步骤S2至S4中加载的数据是根据当前节点对应单元格的配置的具有固定顺序的单元格数据;便于存储和访问。
进一步的,固定顺序为升序、降序排列、自定义排序中任一种。
一种复杂报表引擎装置包括
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都四方伟业软件股份有限公司,未经成都四方伟业软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010858117.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:业务处理方法、装置、设备及系统
- 下一篇:一种多层复合板门及其生产工艺