0

0

报表应用的计算中间层

php中文网

php中文网

发布时间:2016-06-07 16:13:24

|

1361人浏览过

|

来源于php中文网

原创

在传统的报表应用中,源数据的计算一般有三种方式:1、报表工具直接连接数据库取数,源数据的计算是提交sql由数据库完成的;2、报表工具利用自身的计算能力(单元格函数或格间计算),实现部分数据计算;3、报表工具通过api调用java程序实现数据计算。 下面

在传统的报表应用中,源数据的计算一般有三种方式:1、报表工具直接连接数据库取数,源数据的计算是提交sql由数据库完成的;2、报表工具利用自身的计算能力(单元格函数或格间计算),实现部分数据计算;3、报表工具通过api调用java程序实现数据计算。

下面,我们比较一下这三种方式,并探讨最佳方案。

首先,来看数据库计算。

数据库计算的优势是:数据一致性较好,安全性较高。

但是,采用数据库计算报表源数据的问题也比较多:1、报表工具从数据库中取出数据时,要通过JDBC,因为需要做数据流的对象转换,所以关系数据库的JDBC都比较慢,这是一个始终没有解决的问题;2、简单SQL语句执行的速度较快,但复杂SQL则不容易优化。如果是存储过程中用for循环来fetch计算的话有可能要比Java慢;3、数据库是扁平结构,不能以多级目录的形式来管理数据,只适合管理数量较少的表。数据库计算会产生大量相互关联的中间表,出现很多容易混淆的表名,可管理性较差。4、Sql存在:不支持分步计算、集合化不彻底、缺乏有序集合、不支持对象引用的问题。这就造成SQL和存储过程不符合自然思维习惯,编程比较困难。5、数据库的建设和维护成本都比较高。

第二,来看报表工具计算。

由于数据库计算方案的上述不足,很多报表程序员会直接利用报表工具的单元格函数和格间计算等方式来实现源数据计算。报表工具计算的不足是:1、为了完成计算,报表不得不采取隐藏行列的方式储存中间结果,会增加内存消耗,降低性能;2、报表单元格除了存储单元格值,还保留了很多显示格式属性(比如:字体、大小、背景色等等),带着这些属性计算,也会降低性能;3、有些复杂计算是报表工具本身无法完成的,比如:不规则运算、需要多个步骤完成的计算等。

第三,来看Java程序计算。

魔法映像企业网站管理系统
魔法映像企业网站管理系统

技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作

下载

Java程序计算的优势是在数据库和报表工具之间形成了中间计算层,好处是:1、可以访问文件中的数据,并采用多线程计算,能够提升报表性能和容量;2、支持多样性数据源;3、有效减轻数据库负担;4、实现T+0大数据实时查询,可以在报表中看到最新产生的数据。但是,由于Java程序在结构化和半结构化计算方面的类库较少,实现上述计算很复杂。而且,Java程序和报表模板是分离的,在代码管理上也很麻烦。如果是对数据集的少量调整计算,也要折腾Java的开发环境、代码管理、打包部署等,就太麻烦了。

因此,Java程序计算实际上形成了报表应用的计算中间层,是三个方式中比较具备优势的。但是,Java程序计算问题也还是很多。

可以考虑采用润乾集算报表的源数据计算方案,可以在报表应用和数据库之间形成显式的计算中间层,具备上面所说的Java程序的4个优势。同【本文来自鸿网互联 (http://www.68idc.cn)】时,集算报表又解决了Java程序计算的不足,体现在:1、集算脚本提供了大量的结构化和半结构化计算类库,特点是:分步计算、完全的集合运算、有序集合运算和对象引用机制等,更接近自然思维,编程更简单,代码量更少。2、集算脚本可以直接在报表文件中编写,也可以保存为dfx文件和报表文件成对存放在目录中,代码管理简单。3、集算脚本是解释执行的,无需编译、打包。4、集算脚本封装了Java的多线程编程,化繁为简,提高了开发效率。

润乾集算报表和传统方案的结构对比示意图如下:

\

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

33

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

32

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

36

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

7

2026.01.31

漫画防走失登陆入口大全
漫画防走失登陆入口大全

2026最新漫画防走失登录入口合集,汇总多个稳定可用网址,助你畅享高清无广告漫画阅读体验。阅读专题下面的文章了解更多详细内容。

11

2026.01.31

php多线程怎么实现
php多线程怎么实现

PHP本身不支持原生多线程,但可通过扩展如pthreads、Swoole或结合多进程、协程等方式实现并发处理。阅读专题下面的文章了解更多详细内容。

1

2026.01.31

php如何运行环境
php如何运行环境

本合集详细介绍PHP运行环境的搭建与配置方法,涵盖Windows、Linux及Mac系统下的安装步骤、常见问题及解决方案。阅读专题下面的文章了解更多详细内容。

0

2026.01.31

php环境变量如何设置
php环境变量如何设置

本合集详细讲解PHP环境变量的设置方法,涵盖Windows、Linux及常见服务器环境配置技巧,助你快速掌握环境变量的正确配置。阅读专题下面的文章了解更多详细内容。

0

2026.01.31

php图片如何上传
php图片如何上传

本合集涵盖PHP图片上传的核心方法、安全处理及常见问题解决方案,适合初学者与进阶开发者。阅读专题下面的文章了解更多详细内容。

2

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 5万人学习

Excel 教程
Excel 教程

共162课时 | 14.6万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号