/// <summary> /// Construct Url based on parameer provided which also included outputFormat (image type) /// </summary> /// <param name="reportPath">>Report Path</param> /// <param name="renderFormat">Render Format and settings</param> /// <param name="snapshotID">If available snapshot id</param> /// <param name="startPage">starting page</param> /// <param name="endPage">ending page</param> /// <param name="sessiondId">session id</param> /// <param name="parameterValues">Paremeter values</param> /// <returns>Fully constructred URL based on parameters provided</returns> public string ConstructUrl(string reportPath, RSRenderStruct renderFormat, string snapshotID, int startPage, int endPage, string sessiondId, NameValueCollection parameterValues) { string url = URLAccessor.GetUrl(reportPath, renderFormat, parameterValues); if (!string.IsNullOrEmpty(snapshotID)) { url = "&rs:Snapshot=" + snapshotID; } if (startPage != 0) { if (String.Compare(renderFormat.RenderFormat, "HTML4.0", true) == 0) { url += "&rc:Section=" + startPage; } else { url += "&rc:StartPage=" + startPage; } } if ((endPage != 0) && (string.Compare(renderFormat.RenderFormat, "HTML4.0", true) != 0)) { url += "&rs:EndPage=" + endPage; } if (!string.IsNullOrEmpty(sessiondId)) { url += "&rs:SessionID=" + sessiondId; } return(url); }
public string GetUrl(String reportPath, RSRenderStruct renderStruct, NameValueCollection reportParams) { NameValueCollection parameters; //Assert that report path is specified if (reportPath == null) { throw new Exception("Must specify path to report in order to render."); } //Build Device Info Parameters parameters = renderStruct.BuildParamCollection(); parameters = PrefixParameters(parameters, "rc:"); //Append Report Parameters if (reportParams != null) { reportParams = PrefixParameters(reportParams, ""); parameters.Add(reportParams); } // Build Command and Format Parameters, but don't add // duplicate commands. if (parameters.GetValues("rs:Command") == null) { parameters.Add("rs:Command", "Render"); } parameters.Add("rs:Format", renderStruct.RenderFormat); //Build the request Url requestUrl = BuildRequestUrl(reportPath, parameters); return(requestUrl); }
/// <summary> /// Construct Url based on parameer provided which also included outputFormat (image type) /// </summary> /// <param name="reportPath">>Report Path</param> /// <param name="exportFormat">Export Format (PDF, CSV, ...)</param> /// <param name="outputFormat">Output Format (TIFF, PNG, ...)</param> /// <param name="parameterValues">Report Parameters</param> /// <returns>Constructed Url</returns> public string ConstructUrl(string reportPath, string exportFormat, string outputFormat, NameValueCollection parameterValues) { RSRenderStruct renderStruct = ConstructRenderStruct(exportFormat, outputFormat); RSRenderStruct a = renderStruct; return(ConstructUrl(reportPath, renderStruct, parameterValues)); }
private string SimulateViewerControlExport(string report, string sessionid, string format, string outputformat) { string execId = string.Empty; this.ContentManager.SoapAccessor.Execution.LoadReport(report, null); this.ContentManager.SoapAccessor.Execution.ExecutionHeaderValue.ExecutionID = sessionid; RSExecutionInfo execInfo = this.ContentManager.SoapAccessor.Execution.GetExecutionInfo(); RSRenderStruct renderFormat = this.ContentManager.ConstructRenderStruct(format, outputformat); string url = this.ContentManager.ConstructUrl(report, renderFormat, null, 0, 0, execInfo.ExecutionID, null); this.ContentManager.IssueGetRequest(url, out execId); return(execId); }
/// <summary> /// Implements Render Method using URL Access /// </summary> /// <param name="reportPath">Catalog Path to report</param> /// <param name="renderStruct">Render Structure</param> /// <param name="reportParams">Report Parameters</param> /// <returns>Rendered output as Stream</returns> public Stream Render(String reportPath, RSRenderStruct renderStruct, NameValueCollection reportParams) { //Return Stream return(GetResponseStream(GetUrl(reportPath, renderStruct, reportParams))); }
/// <summary> /// Construct Render Struct from give parameters /// </summary> /// <param name="exportFormat">Render Format</param> /// <param name="outputFormat">Output format if needed</param> /// <returns>RS Render Struct</returns> public RSRenderStruct ConstructRenderStruct(string exportFormat, string outputFormat) { RSRenderStruct renderStruct = null; switch (exportFormat.ToUpperInvariant()) { case "CSV": renderStruct = new CSVRender(); break; case "XML": renderStruct = new XMLRender(); break; case "PDF": renderStruct = new PDFRender(); break; case "IMAGE": renderStruct = new IMAGERender(); ((IMAGERender)renderStruct).OutputFormat = outputFormat; break; case "WORD": renderStruct = new WORDRender(); break; case "WORDOPENXML": renderStruct = new WORDOPENXMLRender(); break; case "EXCEL": renderStruct = new EXCELRender(); break; case "EXCELOPENXML": renderStruct = new EXCELOPENXMLRender(); break; case "RGDI": renderStruct = new RGDIRender(); break; case "EMF": renderStruct = new EMFRender(); break; case "HTML4.0": renderStruct = new HTML40Render(); break; case "HTML5": renderStruct = new HTML50Render(); break; case "MHTML": renderStruct = new MHTMLRender(); break; case "ATOM": renderStruct = new ATOMRender(); break; case "PPTX": renderStruct = new PPTXRender(); break; default: break; } return(renderStruct); }
/// <summary> /// Construct Url to make URL access request. /// </summary> /// <param name="reportPath">Report Path</param> /// <param name="renderFormat">Render Format and settings</param> /// <param name="parameterValues">Parameter for report</param> /// <returns>Constructed Url</returns> public string ConstructUrl(string reportPath, RSRenderStruct renderFormat, NameValueCollection parameterValues) { return(URLAccessor.GetUrl(reportPath, renderFormat, parameterValues)); }