实现高端报表工具的缓存功能
2014-07-07 10:23
183 查看
高端的报表工具都提供了缓存机制,避免报表重复计算带来额外性能开销,节省CPU资源,实现结果共享。报表在计算过程中,大部分时间(85%以上)都消耗在数据源(准备)上,集算器可以用简单的方法实现数据源的缓存复用,让普通报表工具也拥有缓存机制。 实现数据源缓存有两个关键,根据报表不同的参数和宏生成不同的报表缓存;缓存超时时间需要重新计算。下面以实例说明。 报表描述 根据销售记录表计算各销售人员本年销售额和上年销售额,及其增长率,统计客户数与大客户数(订单金额超过10000)。报表样式如下:
该报表供公司多人查看,如果能实现现有报表工具中没有的缓存机制,能够极大地提升用户体验。 集算器实现
A5:判断以报表名和参数命名的缓存文件是否存在,若存在并且缓存文件未超时,直接读取缓存文件,并返回结果。上述代码设置的超时时间为3600秒,该时间可设置单独的配置文件,使用时直接读入,以方便配置维护; A6-B21:当缓存文件不存在或超时时,则根据计算逻辑重新计算结果; B22:根据计算结果,生成缓存文件; A23:通过集算器JDBC为报表输出数据。 可以看到实现缓存功能的实际代码只有3、4行,简单清晰。 报表调用 集算器封装了标准的JDBC接口供报表工具调用集算器脚本,以润乾报表为例,调用过程如下:
集算器采用的是类存储过程的调用方式,sales为集算器脚本名称。
该报表供公司多人查看,如果能实现现有报表工具中没有的缓存机制,能够极大地提升用户体验。 集算器实现
A5:判断以报表名和参数命名的缓存文件是否存在,若存在并且缓存文件未超时,直接读取缓存文件,并返回结果。上述代码设置的超时时间为3600秒,该时间可设置单独的配置文件,使用时直接读入,以方便配置维护; A6-B21:当缓存文件不存在或超时时,则根据计算逻辑重新计算结果; B22:根据计算结果,生成缓存文件; A23:通过集算器JDBC为报表输出数据。 可以看到实现缓存功能的实际代码只有3、4行,简单清晰。 报表调用 集算器封装了标准的JDBC接口供报表工具调用集算器脚本,以润乾报表为例,调用过程如下:
集算器采用的是类存储过程的调用方式,sales为集算器脚本名称。
相关文章推荐
- Crystal Report 水晶报表如何实现类似表格单元格合并的功能
- 采用Informaker和pbl中dw相结合的方式实现强大的自定义报表功能
- Java报表工具功能对比
- 在SQL Server2000里怎样实现缓存依赖功能
- 技巧和诀窍:使用ASP.NET 2.0 输出缓存替换的功能实现“甜圈缓存(Donut Caching)”
- 利用C++Builder 中OLE自动化功能实现调用Word进行报表制作
- [笔记] ASP.NET本身的缓存实现机制,基于Cache的实现。提供按分类进行管理的缓存功能
- 报表工具分类-实现技术
- 报表工具考察的指标与比较-2、实现技术及原创程度
- 如何让Web应用程序在Client端实现导出报表功能
- 水晶报表的jsp实现(开发工具:bea weblogic workshop)
- 让自己的框架实现缓存的功能
- 技巧和诀窍:使用ASP.NET 2.0 输出缓存替换的功能实现“甜圈缓存(Donut Caching)”
- 如何让Web应用程序在Client端实现导出报表功能
- [导入]JsWiki实现了缓存功能
- web报表开发技术专题七:报表工具的外围功能
- 考虑实现一个web报表制作工具
- Java报表工具及报表实现方案性能比较
- 报表功能实现
- 运用Reporting Service中合计,小计,Pivot等功能快速实现报表