/// <summary> /// Raises the <see cref="E:System.Web.UI.Control.Load" /> event. /// </summary> /// <param name="e">The <see cref="T:System.EventArgs" /> object that contains the event data.</param> protected override void OnLoad(EventArgs e) { base.OnLoad(e); RegisterScript(); LoadAttributes(); ShowError(string.Empty, string.Empty); if (!Page.IsPostBack) { if (standaloneMode) { pnlFolders.CssClass += " panel panel-block"; pnlTree.CssClass += " panel-body"; pnlHeader.Visible = true; lTitle.Text = headerText; } else { pnlFolders.CssClass = pnlFolders.CssClass.Replace("panel panel-block", "").Trim(); pnlTree.CssClass = pnlTree.CssClass.Replace("panel-body", "").Trim(); pnlHeader.Visible = false; lTitle.Text = string.Empty; } } var provider = new ReportingServicesProvider(); if (provider.CredentialsStored) { BuildTree(); } else { ShowError("Configuration Error", "Reporting Services has not been configured."); } }
/// <summary> /// Tests the connection. /// </summary> private void TestConnection() { var provider = new ReportingServicesProvider(); if (!provider.CredentialsStored) { return; } var message = string.Empty; var connectionSuccess = provider.TestConnection(out message, UserType.Browser); if (!connectionSuccess) { DisplayMessage(message, NotificationBoxType.Danger); return; } if (!provider.TestPath()) { message = string.Format("<strong>Warning</strong> - Report Path not found ({0})", provider.ReportPath); DisplayMessage(message, NotificationBoxType.Warning); //btnConfigure.Visible = true; return; } if (!provider.TestDataSource(out message)) { DisplayMessage("<strong>Datasource Error</strong> - " + message, NotificationBoxType.Warning); //btnConfigure.Visible = true; return; } DisplayMessage("<strong>Success</strong> - Successfully Configured.", NotificationBoxType.Success); }
/// <summary> /// Saves the credentials. /// </summary> private void SaveCredentials() { var provider = new ReportingServicesProvider { ServerUrl = tbReportingServicesURL.Text.Trim() }; if (string.IsNullOrWhiteSpace(provider.ServerUrl)) { DisplayMessage("<strong>Error</strong> - Server URL is not formatted properly.", NotificationBoxType.Danger); return; } provider.ReportPath = tbReportRootFolder.Text.Trim(); provider.BrowserUser = tbUserName.Text.Trim(); if (!hfPasswordSet.Value.AsBoolean() || !string.IsNullOrWhiteSpace(tbPassword.Text)) { provider.BrowserPassword = tbPassword.Text; } if (useCMUser) { provider.ContentManagerUser = tbAdminUserName.Text.Trim(); if (!hfAdminPasswordSet.Value.AsBoolean() || !string.IsNullOrWhiteSpace(tbAdminPassword.Text)) { provider.ContentManagerPassword = tbAdminPassword.Text.Trim(); } } else { provider.ContentManagerUser = tbUserName.Text.Trim(); if (!hfPasswordSet.Value.AsBoolean() || !string.IsNullOrWhiteSpace(tbPassword.Text)) { provider.ContentManagerPassword = tbPassword.Text; } } var message = string.Empty; if (provider.SaveCredentials(out message)) { LoadCredentials(); DisplayMessage("<strong>Success</strong> - Credentials Saved", NotificationBoxType.Success); } else { DisplayMessage(message, NotificationBoxType.Danger); } }
/// <summary> /// Loads the credentials. /// </summary> private void LoadCredentials() { var provider = new ReportingServicesProvider(); btnVerify.Visible = provider.CredentialsStored; tbReportingServicesURL.Text = provider.ServerUrl; tbReportRootFolder.Text = provider.ReportPath; if (useCMUser) { tbAdminUserName.Text = provider.ContentManagerUser; tbAdminUserName.Required = true; tbAdminPassword.Text = string.Empty; if (!string.IsNullOrWhiteSpace(provider.ContentManagerPassword)) { tbAdminPassword.Placeholder = "Stored"; tbAdminPassword.Required = false; hfAdminPasswordSet.Value = bool.TrueString; } else { tbAdminPassword.Placeholder = string.Empty; tbAdminPassword.Required = true; hfAdminPasswordSet.Value = bool.FalseString; } } else { tbAdminUserName.Required = false; tbAdminPassword.Required = false; } tbUserName.Text = provider.BrowserUser; if (!string.IsNullOrWhiteSpace(provider.BrowserPassword)) { tbPassword.Placeholder = "Stored"; tbPassword.Required = false; hfPasswordSet.Value = bool.TrueString; } else { tbPassword.Placeholder = string.Empty; tbPassword.Required = true; hfPasswordSet.Value = bool.FalseString; } }
/// <summary> /// Gets the report path. /// </summary> /// <param name="provider">The provider.</param> /// <returns></returns> private string GetReportPath(ReportingServicesProvider provider) { //get path from attributes var reportPath = GetAttributeValue("ReportPath"); //if path not provided attempt to get it from query string if (string.IsNullOrWhiteSpace(reportPath)) { reportPath = HttpUtility.UrlDecode(PageParameter("reportPath")); } //if report path found, format it if (!string.IsNullOrWhiteSpace(reportPath)) { reportPath = provider.GetFolderPath(reportPath); } return(reportPath); }
/// <summary> /// Loads the report. /// </summary> private void LoadReport() { pnlPdfViewer.Visible = false; phViewer.Controls.Clear(); var provider = new ReportingServicesProvider(); var reportPath = GetReportPath(provider); lReportTitle.Text = "Report Viewer"; if (string.IsNullOrWhiteSpace(reportPath)) { SetError("Report Path Error", "Report Path is required."); return; } var rsItem = ReportingServiceItem.GetItemByPath(reportPath); if (rsItem == null) { SetError("Report Path Error", "Report Not Found"); return; } var paramNames = ReportingServiceItem.GetReportParameterList(provider, reportPath); lReportTitle.Text = string.Format("{0} Viewer", rsItem.Name); var paramValues = new Dictionary <string, string>(); var paramAttribute = GetAttributeValue("ReportParameters").AsDictionaryOrNull(); foreach (var pn in paramNames) { string paramValue = null; if (paramAttribute != null) { paramValue = paramAttribute .Where(a => a.Key.Equals(pn, StringComparison.InvariantCultureIgnoreCase)) .Select(a => a.Value) .FirstOrDefault(); } if (!string.IsNullOrWhiteSpace(paramValue)) { paramValue = HttpUtility.UrlEncode(paramValue); } else { paramValue = PageParameter(pn); } if (!string.IsNullOrWhiteSpace(paramValue)) { paramValues.Add(pn, paramValue); } } var urlBuilder = new StringBuilder(); urlBuilder.AppendFormat("{0}?reportPath={1}", ResolveRockUrlIncludeRoot("~/Plugins/rocks_kfs/Reporting/GetReportingServicesPDF.ashx"), reportPath); foreach (var param in paramValues) { urlBuilder.AppendFormat("&{0}={1}", param.Key, param.Value); } if (!mRenderPDFOnly) { var iframeTag = string.Format("<iframe src=\"{0}\" id=\"ifReportPDF\" class=\"col-sm-12\"></iframe>", urlBuilder.ToString()); phViewer.Controls.Add(new LiteralControl(iframeTag)); pnlPdfViewer.Visible = true; } else { var pdfBytes = GetPDFStream(urlBuilder.ToString()); base.Response.Clear(); var dispositionType = string.Empty; if (pdfBytes == null) { base.Response.StatusCode = 404; } else { base.Response.AppendHeader("content-length", (pdfBytes.Length).ToString()); //base.Resp base.Response.AppendHeader("content-disposition", string.Format("filename={0}.pdf", rsItem.Name)); base.Response.ContentType = "applicaton/pdf"; base.Response.OutputStream.Write(pdfBytes, 0, pdfBytes.Length); } base.Response.Flush(); base.Response.Close(); base.Response.End(); } }
/// <summary> /// Loads the report. /// </summary> private void LoadReport() { string reportPath = null; const string pageTitleFormat = "{0} Report Viewer"; var reportPathAttribute = GetAttributeValue("ReportPath"); var reportParamAttributes = GetAttributeValue("ReportParameters").AsDictionaryOrNull(); if (!string.IsNullOrWhiteSpace(reportPathAttribute)) { reportPath = reportPathAttribute; } else if (!string.IsNullOrWhiteSpace(PageParameter("reportPath"))) { reportPath = PageParameter("reportPath"); reportPath = Server.UrlDecode(reportPath); } else { pnlReportViewer.Visible = false; lReportTitle.Text = string.Format(pageTitleFormat, string.Empty).Trim(); return; } var rsItem = ReportingServiceItem.GetItemByPath(reportPath); if (rsItem == null) { ShowError("Error", "Report Not Found"); pnlReportViewer.Visible = false; lReportTitle.Text = string.Format(pageTitleFormat, string.Empty).Trim(); return; } lReportTitle.Text = string.Format(pageTitleFormat, rsItem.Name); var provider = new ReportingServicesProvider(); rsViewer.ProcessingMode = ProcessingMode.Remote; rsViewer.Height = Unit.Percentage(98); rsViewer.Width = Unit.Percentage(100); var report = rsViewer.ServerReport; report.ReportServerUrl = new Uri(provider.ServerUrl); report.ReportPath = reportPath; report.ReportServerCredentials = provider.GetBrowserCredentials(); var reportParams = new List <ReportParameter>(); foreach (ReportParameterInfo parameter in report.GetParameters()) { string paramValue = null; if (reportParamAttributes != null && reportParamAttributes.ContainsKey(parameter.Name)) { paramValue = reportParamAttributes[parameter.Name]; } else if (!string.IsNullOrWhiteSpace(PageParameter(parameter.Name))) { paramValue = PageParameter(parameter.Name); } if (!string.IsNullOrWhiteSpace(paramValue)) { reportParams.Add(new ReportParameter(parameter.Name, paramValue)); } } if (reportParams.Count > 0) { report.SetParameters(reportParams.ToArray()); report.Refresh(); } pnlReportViewer.Visible = true; }