/// <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);
        }
Exemple #2
0
        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));
        }
Exemple #4
0
        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);
        }
Exemple #5
0
 /// <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));
 }