Как установить и передать параметр в отчет BIRT, созданный BIRT Report Designer с помощью BIRT API?

Я создал простой отчет, который принимает один параметр. Этот параметр используется в запросе и выполняется нормально при непосредственном выполнении в дизайнере отчетов. Кстати, я не использую javascript или какие-либо скрипты для этого отчета. Я видел, как некоторые люди пытались передать параметры с помощью скриптов и/или javascript для ответов здесь, однако это не то, чем я занимаюсь. Я передаю все свои параметры через java. Продолжая, в этом отчете я m со списком активных/неактивных элементов. Я передаю «N» для списка неактивных элементов и «Y» для активных элементов. ass в параметре через API, я всегда получаю список активных элементов, независимо от того, что я передаю.Кстати, «Y» — это значение переданного параметра по умолчанию. (Я переопределяю значения по умолчанию в приведенном ниже коде). У меня проблема в том, что отчет, похоже, не хочет принимать параметр, который я установил. Да, значение изменяется в моей переданной переменной, но отчет не отражает изменения. Мой код ниже. Я пытался следовать совету этой ссылки и как установить параметры.

http://www.eclipsezone.com/eclipse/forums/t67723.html

Если вы перейдете по ссылке, перейдите к #4 и посмотрите список задач, которые необходимо выполнить. Это то, чему я пытался следовать. Я чувствую, что могу что-то упустить. Если у вас есть это происходит, не могли бы вы дать мне несколько советов, что мне не хватает? Большое спасибо!

-Дейл

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

9
задан Dale 24 May 2012 в 14:50
поделиться