减少报表隐藏单元格提升报表性能

如果报表携带大量隐藏格,会对其性能影响很大。这是因为大量隐藏格会占用内存、降低运算速度。而且隐藏单元格除了单元格值外,还记录了很多显示属性值,比如:字体、颜色、显示方式等等。虽然单元格隐藏了,但是这些属性还在,而且带着这些属性计算,也会影响计算速度。

下面这个《1997年订单情况统计》报表就是比较典型的隐藏格影响性能的例子:

这个报表的“比去年同期”是指与去年同月份的比值,无对应月份则为空;要求只显示本年数据。

通过格间计算来实现这个报表,需要将1996年的数据也读取到报表单元格中完成比上期、比去年同期的计算,再把1996年的单元格隐藏起来。所以,这个报表的实际单元格数量要比客户看到的多的多。我们可以通过润乾报表的格间计算来看一下具体的实现:

上图可以看到1996年的行也在报表中,只是隐藏起来了。还有“年”列也要隐藏。

可以考虑采用润乾集算报表解决方案,将大量格间计算转移到集算引擎,避免大量隐藏格和显示属性对计算性能的影响。集算报表方案和传统方案的结构对比示意图如下:

具体做法是:在集算器设计计算同期比、上期比的脚本(sales.dfx)如下:

A1:连接数据源demo。

A2:取出两年的订单数据,按照年月汇总、排序,arg_year是脚本的输入参数。

A3:关闭数据连接。

A4:计算比上期,这里注意到使用[-1]来引用上一条记录。

A5:按月份排序。

A6:计算相同月份和上一年的比值,即同期比。

A7:只选出本年数据,通过A8为报表返回结果集。

在润乾集算报表中定义报表参数和集算数据集:

在集算报表设计器中设计报表如下:

运行报表,输入参数即可得到前面的报表。上图中可以看到,报表中没有隐藏格和复杂的公式,设计变得很简单。

时间: 2024-10-09 06:14:31

减少报表隐藏单元格提升报表性能的相关文章

报表设计--单元格公式-设置实例

一.新建数据源 二.操作步骤 在A1单元格中填写=To(1,4)设置纵向扩展 在B1单元格中填写=To(5,10)设置纵向扩展 在C1单元格中填写=A1*B1 在D1单元格中填写=B1+C1 在C2单元格中填写=sum(c1{})  表示求C1的小计 在C3单元格中填写=sum(c1{})  表示求C1的合计(支持中文状态的大括号) 在E1单元格中填写=Sum(list(b1,c1,d1))  表示求b1,c1,d1单元格的和 在E2单元格中填写=SUM(E1{})  表示求E1的和 在E3单元

如何通过报表单元格右键控制报表跳转到不同链接地址

需求说明: 润乾报表的单元格中支持超链接属性,用户可以通过设置该属性,实现在浏览器端用鼠标点击某个单元格跳转到指定页面,并且还能够传递所需要的参数,从而实现数据的钻取(详见<玩转报表超链接>).不过这种超链接的设置方式只能跳转到单一的指定页面,在一些特殊的业务要求中,用户可能需要基于一个单元格查看不同的明细信息.比如,用户在访问一个地区列表时,既想经由该页面查看某地区的销售收入情况,又想查看该地区的其他信息.这样,在原有方式下就需要增加多个超链接按钮,每个按钮设置不同的超链接,而这种做法不一定

reportservice报表单元格根据条件显示不同的颜色

有时候,我们需要根据条件,让单元格显示不同的颜色: 在报表的单元格上面,点击右键--文本框属性: 点击fx,在里面写表达式: 这样表示:如果value的值大于100,就显示红色,否则就是白色. 运行报表,就会出现上面的效果.

集算报表通过API修改单元格属性

有时需要在程序中动态修改已做好报表的单元格属性,包括边框.字号.颜色.对齐方式等.润乾集算报表提供了丰富的API,开发人员可以通过提供的接口快速修改报表单元格属性. 修改单元格属性主要修改报表定义ReportDefine,比如下面已经做好的订单信息表如下: 预览效果: 我们通过代码修改该报表单元格属性: //设定边框        for (int i = 2; i <=3; i++) {            for (int j = 1; j <=6; j++) {            

EXCEL在改动某几个单元格时隐藏空列

概述 今天我哥来找我帮他搞下excel表格,本着程序猿对程序无所不能的精神,我爽快的答应了.结果查了半天才搞定.现在记录在此,供自己以后参考,相信对其他人也有用. PS:这几天正在弄博客,马上就要弄完啦,弄完就把这些手记搬到博客上面啦! 说明 EXCEL的条件格式不能改变单元格的高宽,不能删掉单元格,不能隐藏单元格. 要实现这些功能需要用VBA编写宏,其中用到了EXCEL的Change事件. EXCEL的Change事件是当改变单元格时自动运行的,不需要绑定按钮. 用法 右键点击工作表的标签,然

只用最适合的! 全面对比主流 .NET 报表控件:水晶报表、FastReport、ActiveReports 和 Stimulsoft

原文:只用最适合的! 全面对比主流 .NET 报表控件:水晶报表.FastReport.ActiveReports 和 Stimulsoft 前言 随着 .NET 平台的出现,报表相关的开发控件随之出现,目前已经有若干成熟的产品可供开发人员使用,本文旨在通过从不同维度对比目前最流行的4款 .NET报表控件,给所有报表开发人员在做产品选型时一份全方位的参考. 为什么需要报表控件 数据报表,作为商业系统中必不可少的功能(或者成为模块),随着这些年大数据.BI.数据决策的流行,数据报表也逐渐成为商业系

Excel催化剂开源第14波-VSTO开发之单元格区域转DataTable

在Excel开发过程中,大部分时候是和Range单元格区域打交道,在VBA开发中,大家都知道的一点是,不能动不动就去遍历所有单元格,那性能是非常糟糕的,很多时候,是需要把整个单元格区域装入数组中再作处理的. 在VSTO开发中,难不成还要用VBA这套老掉牙的东西来做吗?VBA的二维数组在.Net的世界中,真的一无是处,太多比它好用的东西存在,其中笔者最喜欢用的是DataTable这样的结构化的数据结构. 从单元格到DataTable,其实也就几句代码的事情,当数据进入到DataTable后,可以使

JAVA实现Excel——Excel单元格设计

Excel底层实现是使用C/C++实现的,而我若使用JAVA语言,首先需要对单元格进行对象化,即用一个Cell类来表示每一个单元格(实际上就是一个数据结构): 在我编程过程中,在设计一个简单的类时,往往需要从其父类.接口.Field.Method等几个方面进行分析,以满足功能.性能.可拓展性的要求. 1)接口分析 Serializable接口,EXCEL单元格需要实现复制功能,或者拖拽功能,就必须进行复制(必须为深复制),所以需实现Serializable接口,通过流的方法进行深复制 Compa

FineReport单元格扩展与父子格设置

1.描述 在讲述报表设计之前,首先介绍一下FineReport报表制作的几个基本概念,本章节介绍FineReport报表赖以生存的单元格扩展. 扩展,顾名思义,就是由一变多,那么单元格扩展就是指在web端查看模板效果的时候,原来的单元格由一个变成了多个,这就是单元格扩展,如下图: 2. 单元格扩展 大家对Excel应该都不陌生,用过Excel的人都知道,其单元格只有2个方向,横向和纵向,而FineReport恰恰是一款类Excel的报表工具,其单元格也一样,因此,FineReport报表中单元格