报告引擎还是自己的报告?

     2023-04-18     171

关键词:

【中文标题】报告引擎还是自己的报告?【英文标题】:Reporting Engine or Own reports? 【发布时间】:2010-12-20 04:55:26 【问题描述】:

我当前的任务是生成一个关于相当大的线性数据集集合的报告(即,其中值 10 取决于来自 9 8 7 6 5 4 3 等的一些平均因素

问题还在于这个逻辑(现在我们称之为移动平均线)不是固定的,很可能会改变。我不仅需要在 HTML 中生成报告,还需要在 Excel 中生成报告,并且可能通过电子邮件将其自动使用(因此某些变量将是相对的,例如生成上个月的报告)

所以我的问题是我是否应该使用报告引擎? (Jasper、Pentaho、Birt)

我的司机是 - 报告逻辑会改变,但会被开发者改变。这将是复杂的逻辑,因此在 Java 代码中最容易完成。 - 报告必须以 excel 格式保存并通过电子邮件发送。 - 报告任务将是巨大的(ETL 可能会有所帮助的一些事情) -这里不考虑未来的报告要求,如果系统需要通用和可扩展,系统将进行重写。

我可以创建一个名为 report 的实体,存储它的类型(一个枚举)和参数列表(来自 restful URL)和其他元数据(谁创建、什么日期等、发送到哪里以及存储相关参数)然后当一些处理完成后,将其存储在数据库中,只是为了检索处理后的数据供控制器使用。它极大地简化了所涉及的技术(我使用的是 spring mvc 并且只需一点​​ POI 就足够了)。但我想知道使用报告引擎是否会更简单。

【问题讨论】:

【参考方案1】:

我对 Jasper 和 Birt(以及商业 Windward Reports)的经验是,他们对报告的数字处理部分帮助不大;它们最适合呈现您已经转换为合适结构的数据。 Jasper、Birt 和 Windward Reports 可以轻松处理运行总计和平均值,但是任何比这更复杂的计算都是一个真正的痛苦(根据您的计算,可能是不可能的)。我对 Pentaho 不熟悉。

在您的情况下,我会在自定义 Java 代码或 ETL 过程中实现计算。

然后您可以使用报告引擎以 HTML 和 Excel 格式显示计算结果。但是,如果您没有 Jasper 或 Birt 等已经集成到您的应用程序中,那么我不建议为此添加一个。分别使用 JSP 和 POI 手动写出报表数据会更快。 Jasper 和 Birt 报告的创建相当容易,但前提是您必须正确集成报告引擎!

【讨论】:

【参考方案2】:

我从未使用过 Birt,但我使用过 Jasper,我的一条评论是:使用报告引擎有一个学习曲线,并增加了它自己的开销。因此,如果您正在做一些一次性报告,并且如果实际的报告布局相当简单,那么您可能不会从报告引擎中获得很多收益。但是,另一方面,Jasper 非常擅长让您编写一次逻辑,然后轻松生成多种格式的报告(包括 Excel)。

如果强烈要求生成的报告“看起来很漂亮”,并且布局非常复杂,并且如果您需要生成大量格式,那么您可能会发现报告引擎很有价值。

如果您可以证明在它上面花费几个小时是合理的,请下载 Jasper(或 Birt 或其他)并浏览一些教程/演示并感受一下。对你来说,这可能比你在这里得到的所有 cmets 更有价值。

【讨论】:

在 Aspose.Words LINQ 报告引擎中构建报告的动态对象

】在Aspose.WordsLINQ报告引擎中构建报告的动态对象【英文标题】:dynamicobjecttobuildreportsinAspose.WordsLINQReportingEngine【发布时间】:2018-07-1112:28:00【问题描述】:我从客户端获取json字符串:"Client":"Name":"John"在文档中我有以下标签:<... 查看详情

cisco6509机箱背部红灯分析报告

前言:今天整理资料,发现几年前自己遇到的一个巡检故障,于是拿出来做记录,避免资料丢失。一、告警现象:1:6509主引擎SYSTEM亮红灯2:6509机箱背面线路集成板亮红灯 二、设备硬件指示灯层面分析:思科官方针对主引... 查看详情

欢乐赛解题报告

~~一场不欢乐的欢乐赛时间分配::T1做的时候还可以,大约三十分钟写了个深搜(鬼知道我为啥不用广搜,大概是因为快半个月没写了)写完后去研究第二题,刚开始以为是贪心,很快写了出来,但是自己推了一会举出了反例... 查看详情

如何使用 thymeleaf 作为模板引擎生成 pdf 报告? [关闭]

】如何使用thymeleaf作为模板引擎生成pdf报告?[关闭]【英文标题】:Howtogeneratepdfreportusingthymeleafastemplateengine?[closed]【发布时间】:2016-05-2102:44:02【问题描述】:我想在springmvc应用程序中创建pdf报告。我想用themeleaf来设计html报告... 查看详情

.net 框架的 inno 设置检查 Sap Crystal 报告运行时引擎

】.net框架的inno设置检查SapCrystal报告运行时引擎【英文标题】:innosetupcheckSapCrystalreportsruntimeenginefor.netframework【发布时间】:2014-10-1308:40:58【问题描述】:我目前正在尝试创建用于安装程序的自定义脚本。我需要检查是否安装了... 查看详情

如何配置 BIRT 报告引擎直接从类路径加载字体?

】如何配置BIRT报告引擎直接从类路径加载字体?【英文标题】:HowtoconfigureBIRTReportEnginetoloadfontsdirectlyfromtheclasspath?【发布时间】:2014-05-2603:32:14【问题描述】:我正在编写一个使用BIRT生成报告的Java应用程序。我想将自定义字体... 查看详情

多种开源olap引擎测评报告

开源OLAP引擎测评报告(SparkSql、Presto、Impala、HAWQ、ClickHouse、GreenPlum)https://blog.csdn.net/oDaiLiDong/article/details/86570211 查看详情

2017暑假实践报告

2017暑假实践报告      第二年暑假在学校度过了,去年的时候还在成长阶段,今年就在修炼阶段,刚开始的一个多星期没有什么状态,但总的来说一个暑假的学习,还是学了不少东西,自己也成长了不少。&n... 查看详情

c语言最后一次作业--总结报告

1、当初你是如何做出选择计算机专业的决定的?经过一个学期,你的看法改变了么,为什么?你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?为什么?当今时代计算机技术发展日新月异,通过查询也认为计算机专业前... 查看详情

IBM-Bluemix:IBM Containers 压缩报告的图像 - 小于本地 Docker 引擎

】IBM-Bluemix:IBMContainers压缩报告的图像-小于本地Docker引擎【英文标题】:IBM-Bluemix:imagereportedbyIBMContainerscompressed-smallerthanlocalDockerengine【发布时间】:2016-07-0808:08:42【问题描述】:我正在创建ibm-mobilefirst-starter容器,但收到以下... 查看详情

2019春第一次课程设计实验报告

一、实验项目名称Flappybird二、实验项目功能描述(用自己的语言描述)本实验是为了实现我们自己制作小时候玩的经典游戏,来提升自己的实践能力。三、项目模块结构介绍(文字+总体模型)模块1:实现一个简单下落的小鸟@... 查看详情

第三次小组报告

卢晓东:趁着五一小短假期间阅读了这三章,让我感觉想要成为一名软件工程师的路还要很长,在我面前就出现了一条分叉路:即是成为一名个人能力优异但不顾及团队成员理解与否的程序员还是个人能力一般但会结合团队人员的... 查看详情

2017-5校内练习1解题报告

这次校内练习一共有6道题目,安排了一天时间来做。虽然都做出来了,但是因为本身题目都不大难,而且自己也做了老长时间,感觉还是差了好多,尤其是编码的准确度方面。还有就是对题意的理解还是有点慢,这个也是个问... 查看详情

2016-11-17试题解题报告

2016-11-17试题解题报告Byshenben  水灾(sliker.cpp/c/pas)1000MS 64MB大雨应经下了几天雨,却还是没有停的样子。土豪CCY刚从外地赚完1e元回来,知道不久除了自己别墅,其他的地方都将会被洪水淹没。CCY所在的城市可以用一个N... 查看详情

第二次课程实验报告

2019春第二次课程设计报告一.实验项目名称:众所周知的经典小游戏“贪吃蛇”。二.实验项目功能描述:控制小蛇移动吃到界面中的食物,吃到食物能增长小蛇长度。但是碰到自身或墙壁会死亡。三.项目模块结构介绍;&... 查看详情

年度自我分类报告

】年度自我分类报告【英文标题】:AnnualSelf-ClassificationReport【发布时间】:2018-01-2613:23:12【问题描述】:我们的iOS应用程序仅通过https进行调用,没有其他方法,因此我们必须提交我们的自我分类报告。我们填写了每个字段,但... 查看详情

2019春年第三次课程设计实验报告(代码片段)

2019春年第三次课程设计实验报告一、实验项目名称简单的画图游戏开发二、实验项目功能描述(用自己的语言描述)画三个图,比如圆,变化的直线三、项目模块结构介绍(文字+总体模型)四、实现界面展示(截图)五、代码... 查看详情

暑假的最后一周8.26进度报告

一直忘了写,莫介意。 暑假还剩3天,仔细想想可能学习的东西不算多,顶多算是对下学期的预习,到了学校就肯定会发现自己学的比别人少,这也只能怪自己不努力,荒废了半个暑假。但要细细看下学了些什么,我觉得不... 查看详情