protected void lnkLeftPanelSectionExport_Click(object sender, EventArgs e) { // Get the full path of the current session's report definition file. string fileName = HttpContext.Current.Session["ReportDefinition"].ToString(); // Create a new report definition by the file. ReportDefinition reportDefinition = new ReportDefinition( Global.Core, fileName, Global.HierarchyFilters[fileName] ); DisplayType displayType = reportDefinition.Settings.DisplayType; reportDefinition.Settings.DisplayType = DisplayType.Crosstable; reportDefinition.Save(); Crosstables.Classes.Crosstable crosstable = new Crosstables.Classes.Crosstable( Global.Core, fileName ); crosstable.IsExport = true; //crosstable.AsynchRender = true; crosstable.Render(); ColorSchemeStylesheet colorScheme = new ColorSchemeStylesheet(); colorScheme.Render(); StringBuilder style = new StringBuilder(); style.Append("<style type=\"text/css\">"); style.Append(colorScheme.InnerHtml.Split(new string[] { "##### Scroll bar styles #####" }, StringSplitOptions.None)[0]); style.Append(File.ReadAllText(Path.Combine( Request.PhysicalApplicationPath, "Stylesheets", "Modules", "Crosstables.css" ))); style.Append("</style>"); Crosstables.Classes.Exporter exporter = new Crosstables.Classes.Exporter( crosstable.Table, style.ToString(), reportDefinition ); reportDefinition.Settings.DisplayType = displayType; reportDefinition.Save(); string fName = exporter.Export(); base.WriteFileToResponse(fName, "Export.xlsx", "application/msexcel", true); }
private void _save_Click(object sender, EventArgs e) { if (_fileName == null) { using (var form = new SaveForm()) { form.Path = Path.Combine(_directory, "Report.wqreport"); if (form.ShowDialog(this) != DialogResult.OK) { return; } _fileName = Path.GetFileName(form.Path); Text += " - " + _fileName; } } var report = new ReportDefinition { Entity = _entity }; report.Filters.AddRange(_filters); report.Fields.AddRange(_columns.GetFields()); report.Fields.AddRange(_rows.GetFields()); report.Fields.AddRange(_values.GetFields()); report.Save(Path.Combine(_directory, _fileName)); }
private void SaveReport(string title, string fileName, string menuCode, string parentMenuCode, string topSection, string body, string bottomSection, IEnumerable <Data.ReportWriter.DataSource> dataSources, IEnumerable <Data.ReportWriter.Grid> gridViews) { ReportDefinition definition = new ReportDefinition { Title = title, FileName = fileName, MenuCode = menuCode, ParentMenuCode = parentMenuCode, TopSection = topSection, Body = body, BottomSection = bottomSection, DataSources = dataSources, GridViews = gridViews }; definition.Save(); }
protected void btnNewScoreGroupConfirm_Click(object sender, EventArgs e) { object idWeightingVariable = Global.Core.TaxonomyVariables.GetValue( "Id", "Weight", true ); if (idWeightingVariable == null) { return; } string fileName = HttpContext.Current.Session["ReportDefinition"].ToString(); ReportDefinition reportDefinition = new ReportDefinition( Global.Core, fileName, Global.HierarchyFilters[fileName] ); reportDefinition.WeightingFilters.XmlNode.InnerXml += string.Format( "<Operator Id=\"{0}\" Type=\"AND\" WeightingVariable=\"{1}\">", Guid.NewGuid(), idWeightingVariable ); reportDefinition.Save(); reportDefinition = new ReportDefinition( Global.Core, fileName, Global.HierarchyFilters[fileName] ); BindWeightingDefinition(reportDefinition); Page.ClientScript.RegisterStartupScript( this.GetType(), "ShowWeightingFilterSelector", "ShowFullScreenPanel('pnlWeightingDefinition', false);", true ); }
public override Resource GetResource(ResourceInfo resourceInfo) { Resource resource = _parentResourceLocator.GetResource(resourceInfo); // the rdl resource if (resource.Value != null && !string.IsNullOrEmpty(resourceInfo.Name) && resourceInfo.Name.ToLower().EndsWith(".rdlx")) { ReportDefinition rdl = new ReportDefinition(); rdl.Load(new StreamReader(resource.Value)); //need to centralize all DataSource in one Report source,so report source dynamically change report datasource on the fly for (int i = 0; i < rdl.Report.DataSources.Count; i++) { if (_dataSourceType == EmReportDataSourceType.DWDatabase.ToString()) { rdl.Report.DataSources[i].DataSourceReference = null; rdl.Report.DataSources[i].ConnectionProperties.ConnectString = DDSetup.DWDataSourceConnectionString; rdl.Report.DataSources[i].ConnectionProperties.DataProvider = "SQL"; } else { rdl.Report.DataSources[i].DataSourceReference = null; rdl.Report.DataSources[i].ConnectionProperties.ConnectString = DDSetup.PLMConnectionString; rdl.Report.DataSources[i].ConnectionProperties.DataProvider = "SQL"; } } // return the modified resource MemoryStream rdlStream = new MemoryStream(); XmlTextWriter writer = new XmlTextWriter(rdlStream, Encoding.UTF8); rdl.Save(writer); writer.Flush(); rdlStream.Seek(0, SeekOrigin.Begin); return(new Resource(rdlStream, resource.ParentUri)); } // for all other resources, just return them using the default resource locator return(resource); }
private void CreateReport() { ReportDefinition reportDefinition; string fileName; string directoryName; if (this.Request.Params["SavedReport"] == null) { // Get the full path to the directory // where the saved report is saved. directoryName = Path.Combine( Request.PhysicalApplicationPath, "Fileadmin", "ReportDefinitions", Global.Core.ClientName, Global.User.Id.ToString() ); lblPageTitle.Text = Global.LanguageManager.GetText("Crosstabs"); if (HttpContext.Current.Session["ActiveSavedReport"] != null && Directory.Exists((string)HttpContext.Current.Session["ActiveSavedReport"])) { Directory.Delete((string)HttpContext.Current.Session["ActiveSavedReport"], true); } HttpContext.Current.Session["ActiveSavedReport"] = null; if (HttpContext.Current.Session["ReportDefinition"] != null && (new FileInfo(HttpContext.Current.Session["ReportDefinition"].ToString())).DirectoryName != directoryName) { HttpContext.Current.Session["ReportDefinition"] = null; } } else { Guid idUser = Guid.Parse(this.Request.Params["SavedReport"].Substring(0, 36)); Guid idReport = Guid.Parse(this.Request.Params["SavedReport"].Substring(36, 36)); directoryName = Path.Combine( Request.PhysicalApplicationPath, "Fileadmin", "Temp", "OpenSavedReports", HttpContext.Current.Session.SessionID, this.Request.Params["SavedReport"] ); if (HttpContext.Current.Session["ActiveSavedReport"] == null || Directory.Exists(directoryName) == false) { // Get the full path to the directory // where the user's reports are saved. string sourceDirectoryName = ""; if (HttpContext.Current.Session["ManualSaveReportFolderSelect"] != null) { sourceDirectoryName = HttpContext.Current.Session["ManualSaveReportFolderSelect"].ToString() + "/" + idReport.ToString(); } if (sourceDirectoryName == "") { sourceDirectoryName = Path.Combine( Request.PhysicalApplicationPath, "Fileadmin", "SavedReports", Global.Core.ClientName, idUser.ToString(), idReport.ToString() ); } if (HttpContext.Current.Session["LinkCloudSelectedReportUrl"] == null && HttpContext.Current.Session["ManualSaveReportFolderSelect"] != null) { HttpContext.Current.Session["LinkCloudSelectedReportUrl"] = HttpContext.Current.Session["ManualSaveReportFolderSelect"]; } if (HttpContext.Current.Session["LinkCloudSelectedReportUrl"] == null || !Directory.Exists(sourceDirectoryName)) { string[] paths = Directory.GetDirectories(Path.Combine(Request.PhysicalApplicationPath, "Fileadmin", "SavedReports", Global.Core.ClientName, idUser.ToString()), "*", SearchOption.AllDirectories); if (paths.Where(x => x.ToLower().IndexOf(idReport.ToString().ToLower()) > -1) != null) { HttpContext.Current.Session["LinkCloudSelectedReportUrl"] = paths.Where(x => x.ToLower().IndexOf(idReport.ToString().ToLower()) > -1).FirstOrDefault(); } } if (HttpContext.Current.Session["LinkCloudSelectedReportUrl"].ToString().IndexOf(idReport.ToString()) != -1) { sourceDirectoryName = HttpContext.Current.Session["LinkCloudSelectedReportUrl"].ToString(); } if (Directory.Exists(directoryName)) { Directory.Delete(directoryName, true); } Directory.CreateDirectory(directoryName); foreach (string file in Directory.GetFiles(sourceDirectoryName).OrderBy(d => new FileInfo(d).CreationTime)) { File.Copy(file, Path.Combine( directoryName, new FileInfo(file).Name )); File.SetCreationTime(Path.Combine( directoryName, new FileInfo(file).Name ), File.GetCreationTime(file)); } //foreach (string file in Directory.GetFiles(sourceDirectoryName)) //{ // File.Copy(file, Path.Combine( // directoryName, // new FileInfo(file).Name // )); //} } if (HttpContext.Current.Session["ActiveSavedReport"] == null) { HttpContext.Current.Session["ReportDefinition"] = null; } HttpContext.Current.Session["ActiveSavedReport"] = directoryName; if (HttpContext.Current.Session["ReportDefinition"] != null) { if (new FileInfo(HttpContext.Current.Session["ReportDefinition"].ToString()).DirectoryName != directoryName) { HttpContext.Current.Session["ReportDefinition"] = null; } } ReportDefinitionInfo savedReportInfo = new ReportDefinitionInfo(Path.Combine( directoryName, "Info.xml" )); lblPageTitle.Text = "<table style=\"display:inline-block\"><tbody style=\"display:inline-block\"><tr style=\"display:inline-block\"><td style=\"display:inline-block\"><img src=\"/Images/Icons/Back.png\" onclick=\"window.location='/Pages/LinkCloud.aspx'\" " + "onmouseover=\"this.src='/Images/Icons/Back_Hover.png'\" onmouseout=\"this.src='/Images/Icons/Back.png'\" style=\"cursor:pointer;\" />" + "</td><tr style=\"margin-top:-20px;display:inline-block \"><td style=\"display:inline-block\">" + savedReportInfo.Name + "</td></tr></tr></tbody></table>"; } if (!Directory.Exists(directoryName)) { Directory.CreateDirectory(directoryName); } ReportDefinitionInfo info = new ReportDefinitionInfo(Path.Combine( directoryName, "Info.xml" )); info.LatestAccess = DateTime.Now; info.Save(); // Get all the reports of the user. List <string> reports = info.GetReports( Global.Core, Global.IdUser.Value ); if (HttpContext.Current.Session["ReportDefinition"] != null) { if (!reports.Contains(HttpContext.Current.Session["ReportDefinition"])) { HttpContext.Current.Session["ReportDefinition"] = null; } } if (HttpContext.Current.Session["ReportDefinition"] == null && info.ActiveReport.HasValue) { HttpContext.Current.Session["ReportDefinition"] = Path.Combine( directoryName, info.ActiveReport.Value + ".xml" ); } // Check if for the current session a report is selected. if (HttpContext.Current.Session["ReportDefinition"] == null || File.Exists(HttpContext.Current.Session["ReportDefinition"].ToString()) == false) { // Check if the user has reports defined. if (reports.Count == 0) { fileName = Path.Combine( directoryName, Guid.NewGuid().ToString() + ".xml" ); string fileNameWorkflow = Path.Combine( Request.PhysicalApplicationPath, "App_Data", "ReportingWorkflows", Global.Core.ClientName + ".xml" ); string fileNameWeighting = Path.Combine( Request.PhysicalApplicationPath, "App_Data", "WeightingDefaults", Global.Core.ClientName + ".xml" ); if (!File.Exists(fileNameWeighting)) { fileNameWeighting = null; } reportDefinition = new ReportDefinition( Global.Core, fileName, fileNameWorkflow, fileNameWeighting, Global.HierarchyFilters[fileName, false], Global.UserDefaults["ReportDefinitionSettings"] ); reportDefinition.XmlDocument.DocumentElement.SetAttribute("Name", GetUniqueReportName(string.Format(Global.LanguageManager.GetText("NewReport"), "").Trim(), directoryName)); reportDefinition.Save(); reports = info.GetReports( Global.Core, Global.IdUser.Value ); } else { // Select the first report as the selected report. fileName = reports[0]; } HttpContext.Current.Session["ReportDefinition"] = fileName; } else { // Get the full path to the currently selected report's definition file. fileName = HttpContext.Current.Session["ReportDefinition"].ToString(); } // Get the full path of the current session's report definition file. string directory = (new FileInfo(HttpContext.Current.Session["ReportDefinition"].ToString())).DirectoryName; // Run through all files of the directory. foreach (string file in Directory.GetFiles(directory).OrderBy(x => new FileInfo(x).CreationTime)) { if (Path.GetFileName(file) == "Info.xml") { continue; } csFilterDefinition.Source = file; EquationDefinition.Source = file; HierarchySelector.FileName = Path.Combine( HttpContext.Current.Request.PhysicalApplicationPath, "App_Data", "HierarchySelectors", Global.Core.ClientName + ".xml" ); HierarchySelector.Source = file; // Create a new report definition by the report definition file. reportDefinition = new ReportDefinition( Global.Core, file, Global.HierarchyFilters[file] ); bool hasNewCategories1 = reportDefinition.CheckForNewCategories(); if (hasNewCategories1) { reportDefinition.Save(); reportDefinition = new ReportDefinition( Global.Core, file, Global.HierarchyFilters[file] ); ReportCalculator calculator = new ReportCalculator( reportDefinition, Global.Core, HttpContext.Current.Session ); calculator.Aggregate((string)HttpContext.Current.Session["Version"]); } if (HierarchySelector.Exists) { HierarchySelector.Parse(); } reportDefinition.Save(); } csFilterDefinition.Source = fileName; EquationDefinition.Source = fileName; HierarchySelector.FileName = Path.Combine( HttpContext.Current.Request.PhysicalApplicationPath, "App_Data", "HierarchySelectors", Global.Core.ClientName + ".xml" ); HierarchySelector.Source = fileName; // Create a new report definition by the report definition file. reportDefinition = new ReportDefinition( Global.Core, fileName, Global.HierarchyFilters[fileName] ); bool hasNewCategories = reportDefinition.CheckForNewCategories(); if (hasNewCategories) { reportDefinition.Save(); reportDefinition = new ReportDefinition( Global.Core, fileName, Global.HierarchyFilters[fileName] ); ReportCalculator calculator = new ReportCalculator( reportDefinition, Global.Core, HttpContext.Current.Session ); calculator.Aggregate((string)HttpContext.Current.Session["Version"]); } if (HierarchySelector.Exists) { HierarchySelector.Parse(); int optionCount = 0; foreach (Classes.Controls.HierarchySelectorSection section in HierarchySelector.Sections.Values) { optionCount += section.OptionCount; } if (optionCount <= 1) { pnlRightPanelHierarchy.Visible = false; } else { pnlRightPanelHierarchy.Attributes.Add("onclick", string.Format( "InitDragBox('boxHierarchySelectorControl');LoadHierarchySelectedItems('{0}');", HttpUtility.UrlEncode(fileName.Replace("\\", "/")) )); if (reportDefinition.XmlDocument.DocumentElement.SelectSingleNode("HierarchyFilter") == null) { Page.ClientScript.RegisterStartupScript( this.GetType(), "ShowHierarchySelector", string.Format("InitDragBox('boxHierarchySelectorControl');LoadHierarchySelectedItems('{0}');", HttpUtility.UrlEncode(fileName.Replace("\\", "/"))), true ); } } } else { pnlRightPanelHierarchy.Visible = false; } if (base.ContentWidth != 0) { reportDefinition.Settings.TableWidth = base.ContentWidth; } if (base.ContentHeight != 0) { reportDefinition.Settings.TableHeight = base.ContentHeight; } reportDefinition.Save(); Crosstables.Classes.Crosstable crosstable = new Crosstables.Classes.Crosstable( Global.Core, fileName ); //crosstable.FilterClickAction = "ctl00$cphContent$btnDisplayFilters"; pnl.Controls.Add(crosstable); BindSettings(reportDefinition); BindFilteredCategories(reportDefinition); BindWeightingDefinition(reportDefinition); BindReports(reports); if (reportDefinition.Workflow.Selections.Count > 0) { if (bool.Parse(Global.UserDefaults["BottomBarPinned", "false"])) { pnlWorkflowContainer.CssClass = "WorkflowPinned BorderColor1"; } pnlWorkflow.Controls.Add(reportDefinition.Workflow); } else { pnlWorkflowContainer.Visible = false; } if ((fileName.IndexOf(IdUser.ToString()) == -1) && (Convert.ToBoolean(HttpContext.Current.Session["RenderValues"]) == true)) { HttpContext.Current.Session["RenderValues"] = false; ScriptManager.RegisterClientScriptBlock(this, GetType(), "Javascript", "RenderValues();", true); } }