// Internal version of SaveReportDefinition to allow SaveReport to use // the same ModuleController instance for both method calls private static void UpdateReportDefinition(ModuleController ctrl, int ModuleId, ReportInfo objReport) { var reportsModuleSettingsRepository = new ReportsModuleSettingsRepository(); var moduleInfo = ctrl.GetModule(ModuleId); var reportsModuleSettings = reportsModuleSettingsRepository.GetSettings(moduleInfo); // Update the module settings with the data from the report reportsModuleSettings.Title = objReport.Title; reportsModuleSettings.Description = objReport.Description; reportsModuleSettings.Parameters = objReport.Parameters; reportsModuleSettings.DataSource = objReport.DataSource; reportsModuleSettings.DataSourceClass = objReport.DataSourceClass; reportsModuleSettings.CreatedOn = objReport.CreatedOn; reportsModuleSettings.CreatedBy = objReport.CreatedBy; reportsModuleSettingsRepository.SaveSettings(moduleInfo, reportsModuleSettings); // Update data source settings // Can't do this in a common way because we must call a different method to // update Visualizer Settings and Data Source Settings if (!string.IsNullOrEmpty(objReport.DataSource)) { var prefix = string.Format("{0}{1}_", ReportsConstants.PREFIX_DataSource, objReport.DataSource); foreach (var pair in objReport.DataSourceSettings) { ctrl.UpdateModuleSetting(ModuleId, string.Concat(prefix, pair.Key), Convert.ToString(pair.Value)); } } // Update Converter settigns var ConverterBuilder = new StringBuilder(); foreach (var list in objReport.Converters.Values) { foreach (var Converter in list) { ConverterBuilder.Append(Converter.FieldName); ConverterBuilder.Append("|"); ConverterBuilder.Append(Converter.ConverterName); if (Converter.Arguments != null && Converter.Arguments.Length > 0) { ConverterBuilder.Append("|"); ConverterBuilder.Append(string.Join(",", Converter.Arguments)); } ConverterBuilder.Append(";"); } } ctrl.UpdateModuleSetting(ModuleId, ReportsConstants.SETTING_Converters, ConverterBuilder.ToString()); }
// Internal version of SaveReportViewSettings to allow SaveReport to use // the same ModuleController instance for both method calls private static void UpdateReportView(ModuleController ctrl, int TabModuleId, ReportInfo objReport) { var reportsModuleSettingsRepository = new ReportsModuleSettingsRepository(); var moduleInfo = ctrl.GetTabModule(TabModuleId); var reportsModuleSettings = reportsModuleSettingsRepository.GetSettings(moduleInfo); // Update the cache duration if it is specified if (!objReport.CacheDuration.Equals(Null.NullInteger)) { ctrl.UpdateTabModuleSetting(TabModuleId, ReportsConstants.SETTING_CacheDuration, objReport.CacheDuration.ToString()); } reportsModuleSettings.ShowInfoPane = objReport.ShowInfoPane; reportsModuleSettings.ShowControls = objReport.ShowControls; reportsModuleSettings.AutoRunReport = objReport.AutoRunReport; reportsModuleSettings.ExportExcel = objReport.ExportExcel; reportsModuleSettings.TokenReplace = objReport.TokenReplace; reportsModuleSettings.CacheDuration = objReport.CacheDuration; //Update the visualizer setting reportsModuleSettings.Visualizer = objReport.Visualizer; reportsModuleSettingsRepository.SaveSettings(moduleInfo, reportsModuleSettings); // Update the Visualizer Settings // Can't do this in a common way because we must call a different method to // update Visualizer Settings and Data Source Settings if (!string.IsNullOrEmpty(objReport.Visualizer)) { // Build the visualizer setting prefix (see GetReport) var strVisPrefix = string.Format("{0}{1}_", ReportsConstants.PREFIX_Visualizer, objReport.Visualizer); // For each visualizer setting foreach (var pair in objReport.VisualizerSettings) { // Prepend the visualizer setting prefix and save to tab module settings ctrl.UpdateTabModuleSetting(TabModuleId, string.Concat(strVisPrefix, pair.Key), Convert.ToString(pair.Value)); } } }
/// ----------------------------------------------------------------------------- /// <summary> /// Gets the report associated with a reports module (including tab module /// specific settings) /// </summary> /// <remarks> /// </remarks> /// <param name=" ModuleInfo">The module info</param> /// <history> /// [anurse] 01/15/2007 Created from GetReport(Integer) /// </history> /// ----------------------------------------------------------------------------- public static ReportInfo GetReport(ModuleInfo ModuleInfo) { var ModuleId = ModuleInfo.ModuleID; var TabModuleId = ModuleInfo.TabModuleID; // Check for a null Module Id if (ModuleId == Null.NullInteger) { return(null); } // Extract the Title, Description and Query from the settings var objModuleController = new ModuleController(); var objSettings = ModuleInfo.ModuleSettings; // Check that the settings hashtable was retrieved if (ReferenceEquals(objSettings, null)) { return(null); } // Setup the Report var objReport = new ReportInfo(); // Build the Report from the Module Settings var reportsModuleSettingsRepository = new ReportsModuleSettingsRepository(); var reportsModuleSettings = reportsModuleSettingsRepository.GetSettings(ModuleInfo); objReport.Title = reportsModuleSettings.Title; objReport.Description = reportsModuleSettings.Description; objReport.Parameters = reportsModuleSettings.Parameters; objReport.CreatedOn = reportsModuleSettings.CreatedOn; objReport.CreatedBy = reportsModuleSettings.CreatedBy; objReport.DataSource = reportsModuleSettings.DataSource; objReport.DataSourceClass = reportsModuleSettings.DataSourceClass; objReport.ModuleID = ModuleId; // Load Filter Settings var converterString = Convert.ToString( SettingsUtil.GetHashtableSetting(objSettings, ReportsConstants.SETTING_Converters, Null.NullString)); if (!string.IsNullOrEmpty(converterString.Trim())) { foreach (var converterItem in converterString.Split(';')) { if (!string.IsNullOrEmpty(converterItem.Trim())) { var converterArray = converterItem.Split('|'); if (converterArray.Length >= 2 && converterArray.Length <= 3) { var newconverter = new ConverterInstanceInfo(); newconverter.FieldName = converterArray[0]; newconverter.ConverterName = converterArray[1]; if (converterArray.Length == 3) { newconverter.Arguments = converterArray[2].Split(','); } ConverterUtils.AddConverter(objReport.Converters, newconverter); } } } } // Load the tab module settings (visualizer settings) if we have a tab module Id Hashtable objTabModuleSettings = null; if (TabModuleId != Null.NullInteger) { objTabModuleSettings = ModuleInfo.TabModuleSettings; objReport.ShowControls = reportsModuleSettings.ShowControls; objReport.ShowInfoPane = reportsModuleSettings.ShowInfoPane; objReport.AutoRunReport = reportsModuleSettings.AutoRunReport; objReport.TokenReplace = reportsModuleSettings.TokenReplace; objReport.CacheDuration = reportsModuleSettings.CacheDuration; // Read the visualizer name objReport.Visualizer = Convert.ToString( SettingsUtil.GetHashtableSetting(objTabModuleSettings, ReportsConstants.SETTING_Visualizer, "Grid")); } LoadExtensionSettings(objSettings, objTabModuleSettings, objReport); return(objReport); }
/// ----------------------------------------------------------------------------- /// <summary> /// LoadSettings loads the settings from the Database and displays them /// </summary> /// <remarks> /// </remarks> /// <history> /// </history> /// ----------------------------------------------------------------------------- public override void LoadSettings() { if (!this.Page.IsPostBack) { this.Report = ReportsController.GetReport(this.ModuleConfiguration); if (ReferenceEquals(this.Report, null)) { this.Report = new ReportInfo(); } var reportsModuleSettingsRepository = new ReportsModuleSettingsRepository(); var reportsModuleSettings = reportsModuleSettingsRepository.GetSettings(this.ModuleConfiguration); // If the user has permission to see the Data Source Settings if (this.CheckPermissions()) { // Load the fields this.txtTitle.Text = reportsModuleSettings.Title; this.txtDescription.Text = reportsModuleSettings.Description; this.txtParameters.Text = reportsModuleSettings.Parameters; // Load the Data Source Settings var temp_extensionName = reportsModuleSettings.DataSource; this.LoadExtensionSettings("DataSource", ref temp_extensionName, "DataSourceName.Text", "DataSource.Text", ReportsConstants.DEFAULT_DataSource, this.DataSourceDropDown, this.DataSourceSettings, this.DataSourceNotConfiguredView, this.Report.DataSourceSettings, ReportsConstants.FILENAME_RESX_DataSource, true); this.Report.DataSource = temp_extensionName; // Load the filtering settings var encodeBuilder = new StringBuilder(); var decodeBuilder = new StringBuilder(); foreach (List <ConverterInstanceInfo> list in this.Report.Converters.Values) { foreach (var Converter in list) { StringBuilder builder = null; if ("HtmlEncode".Equals(Converter.ConverterName)) { builder = encodeBuilder; } else if ("HtmlDecode".Equals(Converter.ConverterName)) { builder = decodeBuilder; } if (builder != null) { if (builder.Length > 0) { builder.Append(","); } builder.Append(Converter.FieldName); } } } this.txtHtmlEncode.Text = encodeBuilder.ToString(); this.txtHtmlDecode.Text = decodeBuilder.ToString(); } this.txtCacheDuration.Text = reportsModuleSettings.CacheDuration.ToString(); this.chkShowInfoPane.Checked = reportsModuleSettings.ShowInfoPane; this.chkShowControls.Checked = reportsModuleSettings.ShowControls; this.chkAutoRunReport.Checked = reportsModuleSettings.AutoRunReport; this.chkTokenReplace.Checked = reportsModuleSettings.TokenReplace; // Set the caching checkbox if (reportsModuleSettings.CacheDuration <= 0) { this.chkCaching.Checked = false; this.Report.CacheDuration = 0; } else { this.chkCaching.Checked = true; } // Update the cache duration text box visibility this.UpdateCachingSpan(); // Load Visualizer Settings var temp_extensionName2 = reportsModuleSettings.Visualizer; this.LoadExtensionSettings("Visualizer", ref temp_extensionName2, "VisualizerName.Text", "Visualizer.Text", ReportsConstants.DEFAULT_Visualizer, this.VisualizerDropDown, this.VisualizerSettings, null, this.Report.VisualizerSettings, ReportsConstants.FILENAME_RESX_Visualizer, false); this.Report.Visualizer = temp_extensionName2; } }