从行动类打电话报告

时间:2012-01-18 04:49:55

标签: struts2 java-ee-6 birt

我正在开发一个Java EE Struts 2和Hibernate项目,用于预订机票。现在我的所有工作都已完成,我必须生成一张票。我想生成一个可下载的报告(如Java中的Crystal Reports),而不是生成简单的JSP或HTML票证。我在会话中获得了我的全部票证信息(如在互联网上)我可以使用脚本获取BIRT报告。

我对BIRT完全不熟悉,想知道如何生成BIRT报告,或者从我的某个动作类中调用它的执行引擎。任何准备好的例子都会有很大的帮助。

1 个答案:

答案 0 :(得分:1)

我猜您正在尝试向客户发送PDF票证。请使用以下行创建模板并传递参数:

ReportAdminServiceRemote  birtAdmService = (ReportAdminServiceRemote)MXServer.getMXServer().lookup(“BIRTREPORT”);
byte[] abyte0 = birtAdmService .runReport(userInfo, reportName, appName, parameterData, filename, “pdf”);

生成字节后,您可以这样做:

public String actionDownload() throws Exception{
    response.setHeader("Cache-Control", "no-cache");
    response.setHeader("Content-Disposition","attachment; filename=\"" + example.pdf+ "\"");
    response.setHeader("Expires", "0");
    response.setHeader("Cache-Control","must-revalidate, post-check=0, pre-check=0");
    response.setHeader("Pragma", "public");

    ByteArrayOutputStream baos = new ByteArrayOutputStream();   
    ByteArrayInputStream bis = new ByteArrayInputStream(abyte0);
    inputStream = bis;
    return SUCCESS;
}

所有学分都归这些页面的作者所有:

  

http://www.maximonews.com/?p=65

     

http://www.coderanch.com/t/432713/Struts/Struts-Files-DownLoad-Streaming-as