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