0

我必须为我的工作运行大量基于关系数据库的报告。为了让我的生活更轻松,我编写了一些脚本和程序来运行报告(简单的 SQL 查询、复杂的超特定横切查询和完整的 JasperReports 任何风格的报告)、压缩和/或对其进行加密,并通过 SMTP 将其发送给一个或多个收件人。

其中一些是用 Java 编写的,一些是用 PHP 编写的,还有一些是 bash shell 脚本。我想统一其中的很多内容,并添加一个报告描述格式,该格式可以包含配置信息,例如哪个报告(或报告:有时我必须一次运行多个报告并将它们组合成一个“包”客户端)运行,报告的任何参数应该设置为(例如客户 ID),谁应该通过电子邮件/SFTP/等接收报告。

请注意,像 JasperReports 这样的工具只是解决方案的一部分:实际的报告生成部分。我对可用于编写整个过程的脚本并从 cron 作业运行的东西更感兴趣。

是否有任何产品(OSS 会很棒)来帮助我做这种事情?或者,这种事情对于特定环境来说是否如此独特以至于需要我已经构建的那种定制工具?

4

5 回答 5

2

使用与您的 Java/J2EE 应用程序集成的BIRT来生成引人注目的报告。第二个选项是类似于流行的 Crystal Reports的DataVision 。

于 2012-08-10T03:53:28.597 回答
1

这可能与您的想法有些不同,但是您是否考虑过(或听说过)R?R 是一种开源统计编程语言,具有许多功能,但针对您的问题是;

  • 是开源的
  • 具有支持与 SQL 数据库交互的软件包(通用 ODBC,或特定的 Oracle、MySQL、Postgres 等)
  • 可以对数据进行多种数据处理步骤
  • 可以制作表格和图表
  • 可以通过多种方式生成文档(LaTex、Markdown、ODF)
  • 可以从命令行使用,(例如我用make生成文档)
  • 可以集成到 Web 服务器 ( RApache )
  • 可以运行Java代码(RJava

唯一的问题是这将是您自己的,没有提供您想要的功能的特定实现。

于 2012-08-08T06:47:00.720 回答
0

一些可以帮助您配置报告传递工作流的框架是。

  1. Apache Service Mix http://servicemix.apache.org/参见以前版本的架构图http://servicemix.apache.org/home.data/ServiceMix3.png

  2. 弹簧集成http://static.springsource.org/spring-integration/reference/htmlsingle/

两者都应该为您提供一个用于构建解耦架构的框架,以便报告压缩的部分和报告加密和报告生成的部分彼此不了解,但可以通过框架进行配置以在特定工作流中工作。

于 2012-08-08T06:25:00.137 回答
0

你可能想看看 Pentaho:http ://www.pentaho.com/explore/pentaho-business-analytics/

于 2012-08-13T21:52:55.490 回答
0

也许你可以检查 Gradle http://www.gradle.org/。由于它基于 Groovy,您可以轻松地发送邮件、打包存档和调用 JasperReports。

来自 Gradle 网站:

Gradle 是构建自动化的进化。Gradle 可以自动构建、测试、发布、部署和更多软件包或其他类型的项目,例如生成的静态网站、生成的文档或其他任何东西。

Gradle 将 Ant 的强大功能和灵活性与 Maven 的依赖管理和约定结合成一种更有效的构建方式。由 Groovy DSL 提供支持并充满创新,Gradle 提供了一种通过合理的默认值描述各种构建的声明性方式。Gradle 正迅速成为许多开源项目、领先企业和遗留自动化挑战的首选构建系统。

于 2012-08-13T19:34:12.537 回答