我需要在现有的Sping Boot Web应用程序中创建一个报告功能(函数)。我的建议是使用BIRT,我可以将其与Sping Boot Web应用程序集成。
我找到了下面的文章,并能够在spring Boot starter项目中运行报告(使用http://start.spring.io/)。这篇文章,相当旧,确实帮助我找到了一个工作示例。https://spring.io/blog/2012/01/30/spring-framework-birt .这篇文章基本上正是我想要的,但在一个Spring Boot Web应用程序。
我面临的挑战是使用BIRT查看器运行报告,该查看器具有很好的附加功能。(打印、Expoet数据、PDF、分页等)
我找不到任何像本文描述的那样使用BIRT的Sping Boot 示例。
我的问题是:
1.是否有替代或其他方式在Sping Boot Web应用程序中执行报告?(显然不想从头开始创建类似BIRT的功能,或者尽可能地将报表引擎与Web应用程序分开运行,从而重新发明轮子)
1.今天有没有人在Sping Boot Web应用程序中使用BIRT(与查看器一起),并愿意分享或教育我如何最好地做到这一点?(我试图让JSP页面与Sping Boot 一起工作,但无法如此成功......更多的是缺乏经验)
有人能帮帮我吗。
亲切的问候,亨克
3条答案
按热度按时间rbpvctlc1#
依赖项、
IReportEngine
的示例和目录是在Sping Boot Web应用程序中设置BIRT最具挑战性的部分。这个例子有一点错误处理,并且依赖于环境变量来指定重要目录的路径。这个设置的一个优点是,它是一个独立的API,用于构建和生成报告。作为一个附带的好处,它根本不依赖于JSP。
在Docker容器中运行。
最初有一个计划,使用一些接口来尝试其他报告框架,如碧玉报告或其他东西。
这并不是你所要求的,尽管在我看来,在某些情况下这是更好的。在将BIRT报告运行器作为这样的应用程序使用、配置和部署时,您有很大的灵活性。这不使用Actian提供的预打包BIRT查看器。
我将为报告创建一个名为birt-report-runner-data的数据容器,然后将所有用于日志记录和报告的目录放在该容器上,然后您可以将其挂载到BIRT容器上。
主要组件
主文件(BirtReportRunnerApplication.java)
接收报表请求的控制器(ReportController.java)
指定运行报表的报表请求DTO(ReportRequest.java)
报表运行器接口(ReportRunner.java)
完成大部分工作的最大类(BIRTReportRunner.java)
报表对象类(Report.java)
BIRTReport对象类(BIRTReport.java)
构建文件(build.gradle)
依赖
获取Birt Viewer lib目录中的所有依赖项,并将它们放在类路径中。以下是外部依赖项的完整列表:
应用属性(application.yml)
运行Dockerfile(Dockerfile)
运行镜像的Docker compose文件(docker-compose.yml)
nkkqxpd92#
关于@肯特Json的回答。我没有设法用gradle配置项目,但我设法用maven构建了它。下面是pom.xml
qqrboqgw3#
我创建了一个API来使用Sping Boot 的Birt Report。要使用它,只需创建一个新的报告,并通过发送正确的参数来调用它。友情链接:https://github.com/devStraub/BirtAPI
代码:
}
pom.xml:
您应该打开报表的XML Source并将“version”属性(第2行)修改为“3.2.23”。如果不执行此操作,报告将显示错误。我还在努力解决这个问题如果有人对如何设置报告版本有任何想法,那就太好了。
希望我帮上忙了。