一种快速实现交叉表的实现方法

文档序号:6340528阅读:885来源:国知局
专利名称:一种快速实现交叉表的实现方法
技术领域
本发明涉及一种计算机应用技术,具体地说是一种快速实现交叉表的实现方法。
背景技术
在ERP应用中,如何展示ERP中的数据是每个企业必须考虑与实现的一部分, 在企业报表中,类似《表_2》(如附图2所示)的报表展示方式,是企业报表中比较常 用的一种方式,但是基于计算机的程序处理中尤其是基于关系型数据库实现的数据统计 中,易于实现的是《表-1》(如附图1所示)的形式。现有技术中,为了实现《表-1》到《表_2》的数据交叉展示,交叉表需要循 环的方式确认需要交叉显示的部分数据。通常要先确定fiMM信息(办事处、姓名),再 确定迎MM信息(费用项目),确定完以后,再根据行列的标题信息,确定具体的金额数 据信息。如果是通过数据库的SQL方式,每个单元的数据需要单独的提取SQL,效率比 较低,对数据库的压力比较大。

发明内容
本发明的技术任务是针对上述现有技术的不足,提供一种快速实现交叉表的实 现方法。该方法解决了报表展示时的数据交叉显示问题,提高了类似数据表的显示速度 禾口效率。本发明的技术任务是按以下方式实现的一种快速实现交叉表的实现方法,其 特点是该方法基于内存数组处理,采用单向循环处理方式,对原数组数据进行数据处理。进一步的,该方法包括以下步骤第一步、对查询结果按照行标题进行排序(如果结果已经是排序的可以省略)。 如数组Al:((销售一部,张三,培训费,100.00),(销售一部,高宝,材料费, 200.00),(销售二部,李才,材料费,300.00),(销售二部,李四,邮杂费,400.00))。第二步、通过一个循环,找出需要显示的主列数组,如All:((销售一部, 张三),(销售一部,高宝),(销售二部,李才),(销售二部,李四)),并同时生成 一个动态离散辅助列数组,如 A12: ((,100.00,,100.00),(200.00,,,200.00), (300.00,,,300.00), (,,400.00,400.00), (500.00,100.00,400.00,1000.00))和 辅助列的表体数组,如A13:(材料费,培训费,邮杂费)。第三步、将主列数组、动态离散辅助列数组和辅助列的表体数组组合成需要 展示的结果数组,如A2:((销售一部,张三,,100.00,,100.00),(销售一部,高 宝,200.00,,,200.00),(销售二部,李才,300.00,,,300.00),(销售二部,李 四,,,400.00,400.00),(合计,,500.00,100.00,400.00,1000.00))。本发明的快速实现交叉表的实现方法与现有技术相比,在同一个循环中同时生成了新的行标题数组、列标题数组和动态离散辅助列数组,避免了传统方法中,先生产 行标题数组,再生成列标题数组,然后依据行列标题数组生成辅助列的方式,及传统方 法中,辅助列信息需要单独循环生成的缺陷,具有以下突出的有益效果(一)本方法直接对原始数据表进行处理,不影响原有的数据归集过程,可以方 便的进行集成和使用;(二)本技术完全基于内存操作,脱离基于数据库的SQL查询依赖,解决了在报 表展示时的数据交叉显示时的常见技术问题,并采用单向循环的处理方式,提高了类似 数据表的显示速度和效率,减少了不必要的系统开支。


附图1是现有技术基于计算机的程序处理中尤其是基于关系型数据库实现的数 据统计中,易于实现的是表格实例(《表-1》);附图2是现有技术中常用的企业报表实例(《表_2》)。附图3是本发明快速实现交叉表的实现方法的处理流程框图。
具体实施例方式参照说明书附图以具体实施例对本发明的一种快速实现交叉表的实现方法作以 下详细地说明。实施例如附图1、2、3所示,本发明的快速实现交叉表的实现方法包括以下步骤对查询结果按照行标题进行排序(如果结果已经是排序的可以省略)。即数组 Al:((销售一部,张三,培训费,100.00),(销售一部,高宝,材料费,200.00),(销 售二部,李才,材料费,300.00),(销售二部,李四,邮杂费,400.00))。处理过程如下由于Al数组是已经排序的数组,在循环中,依据当前行的行标题信息与上一行 的行标题信息比对可以依次得到新的行标题,同时对于新的列标题,一般数组的长度不 大,可以通过循环判断的方式,得到新的列标题并同时记录新的列标题的下标信息,这 样就可以同时依据新的列标题的下标信息与行标题,得到当前的费用项目金额的辅助列 数组。最后将新的行标题数组与动态离散辅助列数组合并成需要展示的结果数组A2 ((销售一部,张三,,100.00,,100.00),(销售一部,高宝,200.00,,,200.00), (销售二部,李才,300.00,,,300.00),(销售二部,李四,,,400.00,400.00),
(合计,,500.00,100.00,400.00,1000.00))。将原标题数组中的交叉位置中的信息扩充新的辅助标题数组后得到新的列标题 数组,这样对原有的结果交叉显示的处理就完成了。实施例在浪潮ERP-营销协同的产品中,自定义的统计查询功能,通过public void GetResult (ref ArrayList AData, ref ArrayList AColCaption)的方法得到结果,再应用 交叉表的处理方式后,通过简单的代码重构if(ColIsRow() ! =" 0" ){ColToRow(ref AData, refAColCaption) ; }就得到了新的展示结果。
权利要求
1.一种快速实现交叉表的实现方法,其特征在于该方法基于内存数组处理,采用 单向循环处理方式,对原数组数据进行数据处理。
2.根据权利要求1所述的快速实现交叉表的实现方法,其特征在于该方法包括以 下步骤第一步、对查询结果进行排序;第二步、通过一个循环,找出需要显示的行标题数组,并同时生成一个动态离散辅 助列数组和辅助列的标题数组;第三步、将主列数组、动态离散辅助列数组和辅助列的表体数组组合成需要展示的 结果数组。
全文摘要
本发明公开了一种快速实现交叉表的实现方法,属于计算机应用技术领域。该方法基于内存数组处理,采用单向循环处理方式,对原数组数据进行数据处理。与现有技术相比,本发明的快速实现交叉表的实现方法具有性能高、效率快、易于集成使用等特点,广泛应用于各种中式报表查询结果展示之中,具有很好的推广应用价值。
文档编号G06Q10/00GK102024210SQ20101061360
公开日2011年4月20日 申请日期2010年12月30日 优先权日2010年12月30日
发明者肖祝川 申请人:浪潮集团山东通用软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1