据我了解,您需要将您的应用程序与 BIRT 运行时查看器集成,以便您可以从应用程序中生成报告,但由后端的 BIRT 查看器提供支持。以下是步骤
先决条件 -
1) 将 web.xml 的所有内容从 BIRT 查看器复制到应用程序的 web.xml。Birt Viewer 的 web.xml 可以在这里找到 - BIRT_VIEWER_HOME\birt\WEB-INF
2) 复制 BIRT_VIEWER_HOME\birt\ 下的 webcontent 文件夹,并将其放在应用程序的根文件夹中。所以在tomcat中部署的时候,会创建一个目录结构\webapps\yourapplication\webcontent
3)创建一个jsp页面,里面有一个iframe。例如。具有此内容的report.jsp
<iframe src="" id="birtViewer" name="birtViewer" frameborder="0"
scrolling="no" class="reportframe"
style="height:600px;margin:0px;padding:0px;" />
请注意,我已将 src 保留为空,因此最初 iframe 不会加载任何内容
3) 根据一些点击或任何其他条件,使用此 URL report=reports/">http://localdomain:port/yourapplication/frameset?_report=reports/&__format=pdf 设置此 iframe 的 src
例如。我使用 JQuery 的实现。
$(document).ready(function(){
var url;
if(someCondition)
{
url = "frameset?__report=reports/testreport.rptdesign&__format=pdf";
}
else
{
url = "dummyPage.jsp";
}
$("#birtViewer").attr('src',url);//setting the src for iframe
})
4) 这将使用此报告的 BIRT 参数加载 iframe。
5)您可以填写所有参数并点击“确定”按钮。报告将在此 iframe 中生成。
我宁愿让你处理安全方面的问题。一个简单的安全措施是使用 tomcat 的过滤器机制来检查 BIRT Viewer URL 并查看它是否被经过身份验证或有会话的人访问。
更新:
如果您想要一个中央 BIRT 执行点,请创建一个批处理文件,从 Java 调用它并传递参数,然后从生成的位置获取报告。这种方式通过命令提示符和 Java/Tomcat 很有用。下面的步骤
创建一个批处理文件,比如 report.bat 并在其中添加此代码。将所有 BIRT jar 放在类路径中。为简洁起见,我将省略设置变量的值
%JAVACMD% -Dlog4j.configuration="file:%APP_HOME%/conf/log4j.properties"
-cp "%CP%" -Djava.util.logging.config.file=%APP_HOME%/conf/birtlogger.properties
org.eclipse.birt.report.engine.api.ReportRunner %p1% %p2% %p3% %p4% %p5%
- %APP_HOME%/reports 是我放置设计的地方。您可以动态传递它。
- p1 到 p5 是我传递给 Report Runner 的 5 个参数。不过,您可以传递任意数量的参数。
通过从 Java/Tomcat 调用它来运行报告。请参考@Adam 的回答。
report.bat -f pdf -p "p1=paramValue1" -p "p2=paramValue2" -p
"p3=paramValue3" -p "p4=paramValue4" -p "p5=paramValue5" -o
%APP_HOME%\myreportfolder\NameofMyReport.pdf %APP_HOME%\NameofMyReport.rptdesign
您将获得在 %APP_HOME%\myreportfolder 中生成的报告 NameofMyReport.pdf。指向您的 java 代码以从那里加载它。
如果您需要详细说明,请参阅此链接。