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)); } }
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; } }
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; }
/// <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); }