Cognos: Run report

Cognos: 

Run report  

代码如下:

    public void executeReport(String path, String[] format) throws RemoteException
    {
        
        PropEnum props[] = Util.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] = rosa;
        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();
        }
    }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值