Beispiel #1
0
        private void ProcessXCategory(AnalysisSourceField analysisSourceField)
        {
            if (!analysisSourceField.IsXCategory)
            {
                return;
            }

            AnalysisExplicitCategoryField categoryBaseField = null;

            if (analysisSourceField.CategoryName?.Length > 0)
            {
                categoryBaseField = new AnalysisExplicitCategoryField(
                    this.Analysis,
                    analysisSourceField,
                    analysisSourceField.CategoryName);
            }

            if (categoryBaseField == null)
            {
                this.SetXCategory(new AnalysisSourceFieldCategory(analysisSourceField));
            }
            else
            {
                this.SetXCategory(new AnalysisExplicitCategoryFieldCategory(categoryBaseField));
            }
        }
Beispiel #2
0
        private void ProcessCategory(AnalysisSourceField analysisSourceField)
        {
            if (!analysisSourceField.IsCategory)
            {
                return;
            }

            AnalysisExplicitCategoryField categoryBaseField = null;

            if (analysisSourceField.CategoryName?.Length > 0)
            {
                categoryBaseField = new AnalysisExplicitCategoryField(
                    this.Analysis,
                    analysisSourceField,
                    analysisSourceField.CategoryName);
            }

            var category = categoryBaseField == null
                ? (AnalysisCategory) new AnalysisSourceFieldCategory(analysisSourceField)
                : new AnalysisExplicitCategoryFieldCategory(categoryBaseField);

            this.categoryDictionary.SetObjectForKey(category, category.Key);
            if (analysisSourceField.IsDefaultCategory)
            {
                this.SetDefaultCategory(category);
            }
            else if (this.firstCategory == null)
            {
                this.firstCategory = category;
            }
        }
Beispiel #3
0
        private void ProcessConfigurationFields(
            UPConfigAnalysisTable analysisTable,
            Dictionary <string, object> sourceFieldDict,
            AnalysisTable table)
        {
            foreach (var field in analysisTable.Fields)
            {
                var fieldInfo = sourceFieldDict.ValueOrDefault(field.Key) as AnalysisMetaInfoFieldInfo;
                if (fieldInfo == null)
                {
                    continue;
                }

                List <object> subQueryFieldIndices = null;
                if (fieldInfo.SubFields?.Count > 0)
                {
                    subQueryFieldIndices = new List <object>();
                    foreach (AnalysisMetaInfoFieldInfo subInfo in fieldInfo.SubFields)
                    {
                        subQueryFieldIndices.Add(subInfo.FieldIndex);
                    }
                }

                var analysisSourceField =
                    new AnalysisSourceField(table, field, fieldInfo.FieldIndex, subQueryFieldIndices);
                this.fieldDict.SetObjectForKey(analysisSourceField, analysisSourceField.Key);
                this.sourceFields.Add(analysisSourceField);
                table.AddSourceField(analysisSourceField);
                this.ProcessCategory(analysisSourceField);

                this.ProcessXCategory(analysisSourceField);

                if (analysisSourceField.IsCurrency)
                {
                    this.SetCurrencyField(analysisSourceField);
                    this.hasCurrencyField = true;
                }
                else if (analysisSourceField.IsTableCurrency)
                {
                    table.AlternateCurrencyField = analysisSourceField;
                    this.hasCurrencyField        = true;
                }

                if (analysisSourceField.IsWeight)
                {
                    this.SetWeightField(analysisSourceField);
                }

                if (analysisSourceField.IsFilter)
                {
                    var analysisFilter = new AnalysisSourceFieldFilter(analysisSourceField);
                    this.filters.Add(analysisFilter);
                }
            }
        }
        /// <inheritdoc/>
        public override bool SortByKey()
        {
            AnalysisSourceField sourceField = (AnalysisSourceField)this.AnalysisField?.ParentField;

            if (sourceField != null)
            {
                return((sourceField.ConfigField.Flags & (int)ConfigAnalysisFieldFlag.DoNotSort) != 0);
            }

            return(false);
        }
        /// <inheritdoc/>
        public override bool SortByFirstColumnValue()
        {
            AnalysisSourceField sourceField = (AnalysisSourceField)this.AnalysisField.ParentField;

            if (sourceField != null)
            {
                return((sourceField.ConfigField.Flags & (int)ConfigAnalysisFieldFlag.DoNotSort) == 0);
            }

            return(true);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="AnalysisSourceFieldFilter"/> class.
 /// </summary>
 /// <param name="analysisSourceField">Source field</param>
 public AnalysisSourceFieldFilter(AnalysisSourceField analysisSourceField)
     : base(string.Empty, string.Empty)
 {
     this.AnalysisField = analysisSourceField;
 }
Beispiel #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AnalysisSourceFieldCategory"/> class.
 /// </summary>
 /// <param name="field">Field</param>
 public AnalysisSourceFieldCategory(AnalysisSourceField field)
 {
     this.AnalysisField = field;
 }
 /// <summary>
 /// Adds source field
 /// </summary>
 /// <param name="analysisSourceField">Source field</param>
 public void AddSourceField(AnalysisSourceField analysisSourceField)
 {
     this.fieldArray.Add(analysisSourceField);
     this.fieldDictionary.SetObjectForKey(analysisSourceField, analysisSourceField.FieldIndex);
 }