我必须为我的工作运行大量基于关系数据库的报告。为了让我的生活更轻松,我编写了一些脚本和程序来运行报告(简单的SQL查询,复杂的超特定交叉查询,以及完整的JasperReports任何风格的报告),压缩和/或对其进行加密,并通过SMTP将其传递给一个或多个收件人。
其中一些用Java编写,一些用PHP编写,一些用bash shell脚本编写。我想统一很多这个,加上一个报告描述格式,可以包括配置信息,比如哪个报告(或报告:有时候我必须同时运行多个报告并将它们组合成一个“包”要运行的客户端,应该将报告的任何参数设置为(例如,客户ID),谁应该通过电子邮件/ SFTP /等接收报告。
请注意,像JasperReports这样的工具只是解决方案的一部分:实际的报告生成部分。我对可用于编写整个过程的脚本更感兴趣,并且可以从cron作业中运行。
是否有任何产品(OSS会很棒)可以帮助我解决这类问题?或者,这种特殊环境是如此独特,以至于需要我已经建立的那种定制工具?
答案 0 :(得分:2)
使用与您的Java / J2EE应用程序集成的BIRT来生成引人注目的报告。第二个选项是DataVision,类似于流行的Crystal Reports。
答案 1 :(得分:1)
这可能与您的想法有点不同,但您是否考虑过(或听说过)R? R是一种开源统计编程语言,具有许多功能,但具体针对您的问题;
唯一的问题是这将是你自己的,没有具体的实现提供你想要的功能。
答案 2 :(得分:0)
可能有助于您配置报告交付工作流程的一些框架。
Apache Service Mix http://servicemix.apache.org/查看先前版本http://servicemix.apache.org/home.data/ServiceMix3.png
Spring Integration http://static.springsource.org/spring-integration/reference/htmlsingle/
两者都应该为您提供构建解耦架构的框架,以便部件报告压缩,报告加密和报告生成的部分彼此不了解,但可以通过框架配置以在特定的工作中工作流程。
答案 3 :(得分:0)
也许您可以查看Gradle http://www.gradle.org/。由于它基于Groovy,您可以轻松发送邮件,包存档和调用JasperReports。
来自Gradle网站:
Gradle是构建自动化的演变。 Gradle可以自动化建筑, 测试,发布,部署以及更多软件包或其他 生成的静态网站等项目类型 文档或其他任何内容。
Gradle将Ant的强大功能和灵活性与依赖性结合在一起 Maven的管理和惯例成为一种更有效的方式 建立。 Gradle采用Groovy DSL技术,并采用创新技术 提供了一种声明性的方式来描述所有类型的构建 合理的违约。 Gradle正迅速成为其构建系统 许多开源项目,前沿企业和 遗留自动化挑战。
答案 4 :(得分:0)