コード例 #1
0
        /// -----------------------------------------------------------------------------
        /// <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;
                objReport.ExportExcel   = reportsModuleSettings.ExportExcel;

                // Read the visualizer name
                objReport.Visualizer =
                    Convert.ToString(
                        SettingsUtil.GetHashtableSetting(objTabModuleSettings, ReportsConstants.SETTING_Visualizer,
                                                         "Grid"));
            }

            LoadExtensionSettings(objSettings, objTabModuleSettings, objReport);

            return(objReport);
        }