Cognos: Run report

Cognos:

Run report

code show as below:

 

    public void executeReport(String path, String[] format) throws RemoteException
    {
        
        propEnum props[] = Utili.getAllPropEnum();
        
        // begin~~~~~~~~~~~~~~~~~~~~~
        SearchPathMultipleObject spMulti = new SearchPathMultipleObject(path);
        BaseClass bc[] =  this.cmService.query(spMulti, props, new Sort[] {}, new QueryOptions());
        
        ParameterValue pv [] = setReportParameters (this.getReportParameters (bc [0]));
       // end~~~~~~~~~~~~~~~~~

        AsynchReply res = null;
        Option ro[] = new Option[4];
        RunOptionBoolean saveOutput = new RunOptionBoolean();
        RunOptionStringArray rosa = new RunOptionStringArray();

        // Define that the report to save the output.
        saveOutput.setName(RunOptionEnum.saveOutput);
        saveOutput.setValue(true);

        // What format do we want the report in: PDF? HTML? XML?
        rosa.setName(RunOptionEnum.outputFormat);
        rosa.setValue(format);
        // Fill the array with the run options.
        ro [0] = pink;
        ro[1] = saveOutput;

        
        RunOptionBoolean prompt = new RunOptionBoolean();
        prompt.setName(RunOptionEnum.prompt);
        prompt.setValue(true);
        ro[2] = prompt;
        
        try
        {
            // Get the initial response.
            SearchPathSingleObject spSingle = new SearchPathSingleObject();
            spSingle.set_value(path);
            res = getReportService (). run (spSingle, pv, ro);
            
            // res = getReportService (). run (spSingle, new ParameterValue [] {}, ro);
            
           // getReportService (). getOutput (null, new ParameterValue [] {}, new Option [] {});
            // If it has not yet completed, keep waiting until it is done.
            // In this case, we wait forever.
            while (res.getStatus() != AsynchReplyStatusEnum.complete && res.getStatus() != AsynchReplyStatusEnum.conversationComplete)
            {
                if (hasSecondaryRequest(res, "wait"))
                {
                    res = getReportService().wait(res.getPrimaryRequest(), new ParameterValue[] {}, new Option[] {});
                }
            }
            // release the conversation to free resources.
            if (hasSecondaryRequest(res, "release"))
            {
                System.out.println("Releasing resources");
                getReportService (). release (res.getPrimaryRequest ());
            }

        }
        catch (Exception e)
        {
            e.printStackTrace ();
        }
    }



Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326768219&siteId=291194637
run