2012-05-25 10 views
9

मैंने एक साधारण रिपोर्ट बनाई है जो एक एकल पैरामीटर लेता है। यह पैरामीटर क्वेरी में प्रयोग किया जाता है और रिपोर्ट डिज़ाइनर में सीधे निष्पादित होने पर ठीक निष्पादित करता है। जिस तरह से मैं इस रिपोर्ट के लिए जावास्क्रिप्ट या किसी भी स्क्रिप्टिंग का उपयोग नहीं कर रहा हूं। मैंने कुछ लोगों को उत्तर के लिए स्क्रिप्ट और/या जावास्क्रिप्ट का उपयोग करके पैरामीटर पास करने का प्रयास किया है, हालांकि यह वही नहीं है जो मैं कर रहा हूं। मैं अपने सभी पैरामीटर जावा के माध्यम से पास करता हूं। निरंतर, इस रिपोर्ट में मैं सक्रिय/निष्क्रिय वस्तुओं को सूचीबद्ध कर रहा हूं। मैं निष्क्रिय वस्तुओं को सूचीबद्ध करने और सक्रिय वस्तुओं के लिए 'वाई' के लिए 'एन' में जाता हूं। जब मैं एपीआई के माध्यम से पैरामीटर में पास करने का प्रयास करता हूं, तो मुझे हमेशा जो भी पास होता है, उसके बावजूद मुझे सक्रिय वस्तुओं की एक सूची मिलती है। वैसे 'वाई' पारित पैरामीटर का डिफ़ॉल्ट मान है। (मैं डिफ़ॉल्ट में ओवरराइड कर रहा हूं नीचे दिया गया कोड) मेरी समस्या यह है कि रिपोर्ट मेरे द्वारा निर्धारित पैरामीटर को नहीं लेना प्रतीत होता है। हां मेरे चर में मूल्य परिवर्तन पारित किया गया है लेकिन रिपोर्ट परिवर्तन को प्रतिबिंबित नहीं करती है। मेरा कोड नीचे है। मैंने इस लिंक की सलाह का पालन करने और पैरामीटर सेट करने का प्रयास करने का प्रयास किया है।बीआईआरटी एपीआई के माध्यम से बीआईआरटी रिपोर्ट डिजाइनर द्वारा बनाई गई बीआईआरटी रिपोर्ट में पैरामीटर कैसे सेट और पास करते हैं?

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(); 
     } 
     } 
    } 

उत्तर

11

आप IRunAndRenderTask पर पैरामीटर सेट की जरूरत है: (BIRT 4 से पहले) पिछले संस्करण में

IRunAndRenderTask task = 
    engine.createRunAndRenderTask(reportRunnable); 
Map< String, Object > birtParams = ...; 
task.setParameterValues(birtParams); 
+0

, सभी मैं करना पड़ा था नई EngineConfig()। setAppContext (birtParams)। –

संबंधित मुद्दे