Cognos: get output of report

Cognos:

代码如下:

    public void queryReportVersions(String searchP, String reportName, String savePath)
    {
        PropEnum props[] =
        { PropEnum.defaultName, PropEnum.data, PropEnum.defaultName, PropEnum.format, PropEnum.burstKey };

        // Set the search path "searchP" to an existing report
        searchP += "/reportVersion//output";
        try
        {
            SearchPathMultipleObject spMulti = new SearchPathMultipleObject();
            spMulti.set_value(searchP);
            BaseClass bc[] = cmService.query(spMulti, props, new Sort[] {}, new QueryOptions());

            if (bc == null || bc.length <= 0)
            {
                System.out.println("E: The Report " + searchP + " has no saved outputs.");
                System.exit(1);
            }
            /*
             * for each report output found, save the report to the local file system.
             */
            for (int i = 0; i < bc.length; i++)
            {
                Output o = (Output) bc[i];
                String savedOutputName = o.getDefaultName().getValue();

                String fileName = null;
                if (o.getBurstKey().getValue() != null)
                    fileName = savePath + reportName + " - " + o.getBurstKey().getValue() + "[" + i + "]." + o.getFormat().getValue();
                else
                    fileName = savePath + reportName +"_"+i + "." + o.getFormat().getValue();

                File oFile = new File(fileName);
                FileOutputStream fos = new FileOutputStream(oFile);
                fos.write(o.getData().getValue());
                fos.flush();
                fos.close();
                System.out.println("Report output: " + savedOutputName + " saved as " + fileName + " to local system.");
            }
        }
        catch (Exception e)
        {
            System.out.println(e);
        }
    }



猜你喜欢

转载自xue88ming.iteye.com/blog/2355032
今日推荐