pentaho report 发布

最近看了pentaho report 这个东东?本人下载的3.8 pdi

1方式 发布的时候是直接发布到pentaho BI SERVER的。 BI SERVER东东太大。
2方式,报表引擎嵌入项目中()
刚刚开始接触这块,想请教一下,如果想把这款内容单独插入项目中,该如何进行呢。E文水平有限。
后来到一个Pentaho.Reporting.3.5.for.Java.Developers.pdf 有一个章节
(Embedding your report in an enterprise web application) 感悟 了。
1、我先将必须的LIB 放到J2EEWEB lib下。

2.web.xml 配置
3、Servlet代码如下
4.启动项目 访问 基本成功,只是报表调用JNDI, 调用报错 这需要配置一下。
5.还在继续研究 。。。
Servlet代码:
mport java.io.IOException;
import java.net.URL;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.pentaho.reporting.engine.classic.core.ClassicEngineBoot;
import org.pentaho.reporting.engine.classic.core.MasterReport;
import org.pentaho.reporting.engine.classic.core.ReportProcessingException;
import org.pentaho.reporting.engine.classic.core.modules.output.pageable.pdf.PdfReportUtil;
import org.pentaho.reporting.engine.classic.core.modules.output.table.html.HtmlReportUtil;
import org.pentaho.reporting.engine.classic.core.modules.output.table.rtf.RTFReportUtil;
import org.pentaho.reporting.engine.classic.core.modules.output.table.xls.ExcelReportUtil;
import org.pentaho.reporting.libraries.resourceloader.Resource;
import org.pentaho.reporting.libraries.resourceloader.ResourceException;
import org.pentaho.reporting.libraries.resourceloader.ResourceManager;

public class MyReport extends HttpServlet {
@Override
public void init() throws ServletException {
// TODO Auto-generated method stub
super.init();
ClassicEngineBoot.getInstance().start();
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
super.doGet(req, resp);
try {
// load report definition
ResourceManager manager = new ResourceManager();
manager.registerDefaults();
String reportPath = "file:"+this.getServletContext().getRealPath(
"report/Multi_Pie_Chart.prpt");
Resource res = manager.createDirectly(new URL(reportPath),
MasterReport.class);
MasterReport report = (MasterReport) res.getResource();
String outputFormat = req.getParameter("outputFormat");
if("pdf".equals(outputFormat)) {
// render in pdf
resp.setContentType("application/pdf");
PdfReportUtil.createPDF(report, resp.getOutputStream());
} else if ("pdf".equals(outputFormat)) {
// render in pdf
resp.setContentType("application/pdf");
PdfReportUtil.createPDF(report, resp.getOutputStream());
} else if ("xls".equals(outputFormat)) {
// render in excel
resp.setContentType("application/vnd.ms-excel");
ExcelReportUtil.createXLS(report, resp.getOutputStream());
} else {

HtmlReportUtil.createStreamHTML(report, resp.getOutputStream());
}
} catch (ResourceException e) {
e.printStackTrace();
} catch (ReportProcessingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
super.doPost(req, resp);
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值