《一种快速实现交叉表的实现方法.pdf》由会员分享,可在线阅读,更多相关《一种快速实现交叉表的实现方法.pdf(5页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102024210 A (43)申请公布日 2011.04.20 CN 102024210 A *CN102024210A* (21)申请号 201010613606.4 (22)申请日 2010.12.30 G06Q 10/00(2006.01) (71)申请人 浪潮集团山东通用软件有限公司 地址 250101 山东省济南市高新区舜雅路 1036 号 (72)发明人 肖祝川 (54) 发明名称 一种快速实现交叉表的实现方法 (57) 摘要 本发明公开了一种快速实现交叉表的实现方 法, 属于计算机应用技术领域。 该方法基于内存数 组处理, 采用单向循环处理方式, 对原。
2、数组数据进 行数据处理。 与现有技术相比, 本发明的快速实现 交叉表的实现方法具有性能高、 效率快、 易于集成 使用等特点, 广泛应用于各种中式报表查询结果 展示之中, 具有很好的推广应用价值。 (51)Int.Cl. (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 说明书 2 页 附图 1 页 CN 102024224 A1/1 页 2 1. 一种快速实现交叉表的实现方法,其特征在于 :该方法基于内存数组处理,采用 单向循环处理方式,对原数组数据进行数据处理。 2. 根据权利要求 1 所述的快速实现交叉表的实现方法,其特征在于 :该方法包括以 下步骤 : 第一。
3、步、对查询结果进行排序 ; 第二步、通过一个循环,找出需要显示的行标题数组,并同时生成一个动态离散辅 助列数组和辅助列的标题数组 ; 第三步、将主列数组、动态离散辅助列数组和辅助列的表体数组组合成需要展示的 结果数组。 权 利 要 求 书 CN 102024210 A CN 102024224 A1/2 页 3 一种快速实现交叉表的实现方法 技术领域 0001 本发明涉及一种计算机应用技术,具体地说是一种快速实现交叉表的实现方 法。 背景技术 0002 在 ERP 应用中,如何展示 ERP 中的数据是每个企业必须考虑与实现的一部分, 在企业报表中,类似 表 -2 ( 如附图 2 所示 ) 的报。
4、表展示方式,是企业报表中比较常 用的一种方式,但是基于计算机的程序处理中尤其是基于关系型数据库实现的数据统计 中,易于实现的是 表 -1 ( 如附图 1 所示 ) 的形式。 0003 现有技术中,为了实现 表 -1 到 表 -2 的数据交叉展示,交叉表需要循 环的方式确认需要交叉显示的部分数据。 通常要先确定行标题信息(办事处、姓名),再 确定列标题信息 ( 费用项目 ),确定完以后,再根据行列的标题信息,确定具体的金额数 据信息。 如果是通过数据库的 SQL 方式,每个单元的数据需要单独的提取 SQL,效率比 较低,对数据库的压力比较大。 发明内容 0004 本发明的技术任务是针对上述现有技。
5、术的不足,提供一种快速实现交叉表的实 现方法。 该方法解决了报表展示时的数据交叉显示问题,提高了类似数据表的显示速度 和效率。 0005 本发明的技术任务是按以下方式实现的 :一种快速实现交叉表的实现方法,其 特点是 :该方法基于内存数组处理,采用单向循环处理方式,对原数组数据进行数据处 理。 0006 进一步的,该方法包括以下步骤 : 0007 第一步、对查询结果按照行标题进行排序 ( 如果结果已经是排序的可以省略 )。 如数组 A1 :( 销售一部,张三,培训费,100.00), ( 销售一部,高宝,材料费, 200.00),( 销售二部,李才,材料费,300.00),( 销售二部,李四,。
6、邮杂费,400.00)。 0008 第二步、通过一个循环,找出需要显示的主列数组,如 A11 :( 销售一部, 张三 ), ( 销售一部,高宝 ), ( 销售二部,李才 ), ( 销售二部,李四 ),并同时生成 一个动态离散辅助列数组,如 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 :( 材料费,培训费,邮杂费 )。 0009 第三步、将主列数组、动态离散辅助列数组和辅助列的表体数组组合成需要 。
7、展示的结果数组,如 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)。 0010 本发明的快速实现交叉表的实现方法与现有技术相比,在同一个循环中同时生 说 明 书 CN 102024210 A CN 102024224 A2/2 页 4 成了新的行标题数组、列标题数组和动态离散辅助列数组,避免了传统方法中,先生产 行标题数组,再生成列标题数组,然后依据行列标题。
8、数组生成辅助列的方式,及传统方 法中,辅助列信息需要单独循环生成的缺陷,具有以下突出的有益效果 : 0011 ( 一 ) 本方法直接对原始数据表进行处理,不影响原有的数据归集过程,可以方 便的进行集成和使用 ; 0012 (二)本技术完全基于内存操作,脱离基于数据库的SQL查询依赖,解决了在报 表展示时的数据交叉显示时的常见技术问题,并采用单向循环的处理方式,提高了类似 数据表的显示速度和效率,减少了不必要的系统开支。 附图说明 0013 附图 1 是现有技术基于计算机的程序处理中尤其是基于关系型数据库实现的数 据统计中,易于实现的是表格实例 ( 表 -1 ) ; 0014 附图 2 是现有技。
9、术中常用的企业报表实例 ( 表 -2 )。 0015 附图 3 是本发明快速实现交叉表的实现方法的处理流程框图。 具体实施方式 0016 参照说明书附图以具体实施例对本发明的一种快速实现交叉表的实现方法作以 下详细地说明。 0017 实施例 : 0018 如附图 1、2、3 所示,本发明的快速实现交叉表的实现方法包括以下步骤 : 0019 对查询结果按照行标题进行排序 ( 如果结果已经是排序的可以省略 )。 即数组 A1 :( 销售一部,张三,培训费,100.00),( 销售一部,高宝,材料费,200.00),( 销 售二部,李才,材料费,300.00),( 销售二部,李四,邮杂费,400.0。
10、0)。 0020 处理过程如下 : 0021 由于 A1 数组是已经排序的数组,在循环中,依据当前行的行标题信息与上一行 的行标题信息比对可以依次得到新的行标题,同时对于新的列标题,一般数组的长度不 大,可以通过循环判断的方式,得到新的列标题并同时记录新的列标题的下标信息,这 样就可以同时依据新的列标题的下标信息与行标题,得到当前的费用项目金额的辅助列 数组。 最后将新的行标题数组与动态离散辅助列数组合并成需要展示的结果数组 A2 : ( 销售一部,张三,100.00,100.00), ( 销售一部,高宝,200.00,200.00), ( 销售二部,李才,300.00,300.00), ( 。
11、销售二部,李四,400.00,400.00), ( 合计,500.00,100.00,400.00,1000.00)。 0022 将原标题数组中的交叉位置中的信息扩充新的辅助标题数组后得到新的列标题 数组,这样对原有的结果交叉显示的处理就完成了。 0023 实施例 :在浪潮 ERP- 营销协同的产品中,自定义的统计查询功能,通过 public void GetResult(ref ArrayList AData, ref ArrayList AColCaption) 的方法得到结果,再应用 交叉表的处理方式后,通过简单的代码重构 if(ColIsRow() ! 0 )ColToRow(ref AData,ref AColCaption) ; 就得到了新的展示结果。 说 明 书 CN 102024210 A CN 102024224 A1/1 页 5 图 1 ( 表 -1) 图 2 ( 表 -2) 图 3 说 明 书 附 图 CN 102024210 A 。