단일 매개 변수를 사용하는 간단한 보고서를 만들었습니다. 이 매개 변수는 쿼리에서 사용되며 보고서 디자이너에서 직접 실행될 때 잘 실행됩니다. 그런데이 보고서에는 자바 스크립트 나 스크립트를 사용하지 않습니다. 나는 어떤 사람들이 스크립트 나 자바 스크립트를 사용하여 매개 변수를 전달하려고 시도하는 것을 보았습니다. 그러나 이것은 내가하는 일이 아닙니다. 자바를 통해 모든 매개 변수를 전달합니다. 계속해서이 보고서에서 활성/비활성 항목을 나열합니다. 비활성 항목을 나열하려면 'N'을, 활성 항목에는 'Y'를 전달합니다. API를 통해 매개 변수를 전달하려고하면 전달하는 항목에 관계없이 항상 활성 항목의 목록을 가져옵니다. 'Y'는 전달 된 매개 변수의 기본값입니다. (기본값을 재정의합니다. 아래 코드) 내가 가지고있는 문제는 보고서가 내가 설정 한 매개 변수를 갖고 싶어하지 않는 것입니다. 예, 변수에 값이 전달되었지만 보고서에 변경 사항이 반영되지 않았습니다. 내 코드는 아래와 같습니다. 이 링크의 조언과 매개 변수 설정 방법을 따르려고했습니다.BIRT API를 통해 BIRT 보고서 디자이너가 만든 BIRT 보고서에 매개 변수를 설정하고 전달하는 방법은 무엇입니까?
http://www.eclipsezone.com/eclipse/forums/t67723.html
이 링크에 가면 # 4에 가서 할 수있는 작업 목록을 참조하십시오. 이것이 내가 따라 가려고 시도한 것입니다. 나는 뭔가를 놓칠지도 모른다라고 느낀다. 이 일이 생기면 내가 놓친 것에 대해 조언 해 줄 수 있니? 감사합니다!
는 -Dale
public class ReportGenerator {
public static void main(String args[]) throws Exception{
ReportGenerator rg = new ReportGenerator();
rg.executeReport("N");
}
@SuppressWarnings({ "unchecked", "deprecation" })
public void executeReport(String activeIndicator) throws EngineException {
IReportEngine engine=null;
EngineConfig config = null;
try{
config = new EngineConfig();
config.setBIRTHome("C:\\birt-rcp-report-designer-3_7_2\\ReportEngine");
config.setLogConfig("c:/temp/test", Level.FINEST);
Platform.startup(config);
IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);
engine = factory.createReportEngine(config);
IReportRunnable reportDesign = null;
reportDesign = engine.openReportDesign("C:\\workspace\\SimpleReport\\ReportTemplates\\ItemListingReport.rptdesign");
IRunAndRenderTask task = engine.createRunAndRenderTask(reportDesign);
IGetParameterDefinitionTask parameterDefinitionTask = engine.createGetParameterDefinitionTask(reportDesign);
parameterDefinitionTask.evaluateDefaults();
HashMap<String, String> params = parameterDefinitionTask.getDefaultValues();
params.put("aIndicator", activeIndicator);
parameterDefinitionTask.setParameterValues(params);
ConnectionHelper connectionHelper = new ConnectionHelper();
task.getAppContext().put("OdaJDBCDriverPassInConnection", connectionHelper.getConnection());
PDFRenderOption options = new PDFRenderOption();
options.setOutputFormat("pdf");
options.setOutputFileName("C:\\workspace\\SimpleReport\\output\\itemListingReport.pdf");
task.setRenderOption(options);
task.run();
task.close();
engine.destroy();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
Platform.shutdown();
}
}
}
을 (BIRT 4 전) 이전 버전에서 내가했던 일은, 새로운 EngineConfig()이었다. setAppContext (birtParams)입니다. –