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