Example #1
0
        /// <summary>
        /// LogSettings with drillup option
        /// </summary>
        /// <param name="option">Option</param>
        /// <returns>Analysis execution settings</returns>
        public AnalysisExecutionSettings SettingsWithDrillupOption(AnalysisDrillupOption option)
        {
            AnalysisCategoryFilter removeFilter = null;
            AnalysisCategoryFilter lastFilter   = null;

            foreach (AnalysisFilter filterCondition in this.Conditions)
            {
                if (!(filterCondition is AnalysisCategoryFilter))
                {
                    continue;
                }

                AnalysisCategoryFilter categoryFilter = (AnalysisCategoryFilter)filterCondition;
                if (categoryFilter.Category.Key == option.RemoveCategory.Key)
                {
                    removeFilter = categoryFilter;
                }
                else
                {
                    lastFilter = categoryFilter;
                }
            }

            List <object>    condArray       = new List <object>(this.Conditions);
            AnalysisCategory drillupCategory = null;

            if (removeFilter != null)
            {
                condArray.Remove(removeFilter);
                drillupCategory = this.Category;
            }
            else if (lastFilter != null && option.RemoveCategory.Key == this.Category.Key)
            {
                condArray.Remove(lastFilter);
                drillupCategory = lastFilter.Category;
            }

            return(new AnalysisExecutionSettings(this.Analysis, drillupCategory, this.XCategory, this.ResultColumns, condArray, condArray.Count > 0 || this.Analysis.DefaultExecutionSettings.ShowEmpty, this.CurrencyCode));
        }
Example #2
0
        /// <summary>
        /// LogSettings with drilldown option row
        /// </summary>
        /// <param name="option">Option</param>
        /// <param name="row">Row</param>
        /// <returns>Analysis execution settings</returns>
        public AnalysisExecutionSettings SettingsWithDrilldownOptionRow(AnalysisDrilldownOption option, AnalysisRow row)
        {
            AnalysisFilter filter = new AnalysisCategoryFilter(this.Category, row.Key);

            return(this.SettingsWithAdditionalConditionCategory(filter, option.Category));
        }