基于数据库的报告存在哪些脚本框架?

时间:2012-07-26 16:43:43

标签: java database scripting jasper-reports reporting

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

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

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

是否有任何产品(OSS会很棒)可以帮助我解决这类问题?或者,这种特殊环境是如此独特,以至于需要我已经建立的那种定制工具?

5 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

唯一的问题是这将是你自己的,没有具体的实现提供你想要的功能。

答案 2 :(得分:0)

可能有助于您配置报告交付工作流程的一些框架。

  1. Apache Service Mix http://servicemix.apache.org/查看先前版本http://servicemix.apache.org/home.data/ServiceMix3.png

  2. 的架构图
  3. Spring Integration http://static.springsource.org/spring-integration/reference/htmlsingle/

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

答案 3 :(得分:0)

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

来自Gradle网站:

  

Gradle是构建自动化的演变。 Gradle可以自动化建筑,   测试,发布,部署以及更多软件包或其他   生成的静态网站等项目类型   文档或其他任何内容。

     

Gradle将Ant的强大功能和灵活性与依赖性结合在一起   Maven的管理和惯例成为一种更有效的方式   建立。 Gradle采用Groovy DSL技术,并采用创新技术   提供了一种声明性的方式来描述所有类型的构建   合理的违约。 Gradle正迅速成为其构建系统   许多开源项目,前沿企业和   遗留自动化挑战。

答案 4 :(得分:0)