저는 pentaho를 통해 pdf 보고서를 작성하려고합니다. 나는 pentho RD에 처음이에요.Pentaho report.setQuerty
나는하여 진정한 보고서를 생성 할 수있어 사전 구성하는 (dbconntion + 쿼리 및 매개 변수를 전달)을 PRPT 내에서 자바에서 호출. 괜찮습니다.
문제 : ("test.person FROM NAME, ID 선택", "dummyQuery") report.setQuery를 사용하는 트링하고; // 일부 쿼리가 동적으로 보고서를 생성 할 수 있습니다. 가능한 경우 ..? 내가 같은 쿼리 report.setQuery를 사용하는 경우
, 내 보고서는 빈 PDF를 생성? HQL 데이터 소스를 구성해야한다고 생각합니다.이 작업을 수행하려면?
사전 구성 PRPT - 싸이 2 개 값 NAME 및 ID를 표시.
매개 변수 전달을 통해이 pdf를 동적으로 생성 할 수 있습니다.
이 pdf를 동적으로 생성하는 데 도움을주십시오 setQuery 또는 "setQuery 사용 방법".
나는 pentaho pdf 보고서를 생성하는 것을 정말로 배우고 싶다.
package com.report;
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
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.modules.output.pageable.pdf.PdfReportUtil;
import org.pentaho.reporting.libraries.resourceloader.Resource;
import org.pentaho.reporting.libraries.resourceloader.ResourceManager;
/**
* Servlet implementation class Generate
*/
@WebServlet("/Generate")
public class Generate extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Generate() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
try{
response.reset();
response.setContentType("application/pdf");
ClassicEngineBoot.getInstance().start();
ResourceManager manager = new ResourceManager();
manager.registerDefaults();
String PrptPath ="C:\\Users\\3692902\\Desktop\\pentahoTest.prpt";
//generate report through pre-configured prpt (db connection + query)
Resource res = manager.createDirectly(new File(PrptPath), MasterReport.class);
MasterReport report = (MasterReport) res.getResource();
report.getParameterValues().put("IDValue",101);
//generate report through query?????
//report.setQuery("SELECT ID FROM test.person");
PdfReportUtil.createPDF(report,response.getOutputStream());
}
catch(Exception e){
e.printStackTrace();
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}