Wie kann ein vom BIRT-Berichts-Designer über die BIRT-API erstellter BIRT-Bericht festgelegt und an einen Parameter übergeben werden?

Ich habe einen einfachen Bericht erstellt, der nur einen Parameter enthält. Dieser Parameter wird in der Abfrage verwendet und wird ordnungsgemäß ausgeführt, wenn er direkt im Berichtsdesigner ausgeführt wird. Übrigens verwende ich für diesen Bericht weder Javascript noch Skripte. Ich habe einige Leute gesehen, die versucht haben, Parameter mithilfe von Skripten und / oder Java-Skripten zu übergeben, um Antworten zu erhalten. Dies ist jedoch nicht meine Aufgabe. Ich gebe alle meine Parameter über Java ein. In diesem Bericht liste ich weiterhin aktive / inaktive Elemente auf. Ich gebe ein 'N' für die Auflistung inaktiver Elemente und ein 'Y' für aktive Elemente ein. Wenn ich versuche, einen Parameter über die API zu übergeben, wird immer eine Liste der aktiven Elemente angezeigt, unabhängig davon, was ich übergebe. Übrigens ist 'Y' der Standardwert des übergebenen Parameters. (Ich überschreibe die Standardeinstellungen in Der folgende Code) Das Problem, das ich habe, ist, dass der Bericht anscheinend nicht den von mir festgelegten Parameter übernehmen möchte. Ja, der Wert in meiner übergebenen Variablen ändert sich, aber der Bericht spiegelt die Änderung nicht wider. Mein Code ist unten. Ich habe versucht, dem Rat dieses Links zu folgen und zu erfahren, wie man die Parameter einstellt.

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

Wenn Sie zum Link gehen, gehen Sie zu # 4 und sehen Sie die Liste der zu erledigenden Aufgaben. Dies ist, was ich versucht habe, zu folgen. Ich habe das Gefühl, dass mir etwas fehlt. Wenn Sie das schaffen, können Sie mir einen Rat geben, was ich vermisse? Vielen Dank!

-Tal

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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage