/// <summary> /// Initializes a new instance of the <see cref="AnalysisProcessingTableResultColumnValue"/> class. /// </summary> /// <param name="resultColumn">Result column</param> /// <param name="yCategory">Y category</param> /// <param name="processingResultColumn">Processing result column</param> public AnalysisProcessingTableResultColumnValue(AnalysisTableResultColumn resultColumn, AnalysisProcessingYCategoryValue yCategory, AnalysisProcessingResultColumn processingResultColumn) : base(processingResultColumn, yCategory) { this.ResultColumn = resultColumn; this.count = 0; this.queryTableIndex = this.ResultColumn.AnalysisTable.QueryTableIndex; }
private void ProcessConfigurationTable() { foreach (var aTable in this.Analysis.Configuration.Tables) { var sourceTable = this.tablesForKey.ValueOrDefault(aTable.Key) as AnalysisMetaInfoTableInfo; if (sourceTable == null) { continue; } var dataSourceTable = sourceTable.DataSourceTable; var table = new AnalysisTable(this.Analysis, aTable, dataSourceTable.InfoAreaPositionInResult()); this.tableDictByIndex.SetObjectForKey(table, aTable.TableNumber); this.tableDictByKey.SetObjectForKey(table, aTable.Key); var numberOfFields = dataSourceTable.NumberOfFields(); this.fieldIndex = sourceTable.FirstFieldIndex; var sourceFieldDict = new Dictionary <string, object>(); for (var index = 0; index < numberOfFields; index++) { var sourceField = dataSourceTable.FieldAtIndex(index); var fieldInfo = new AnalysisMetaInfoFieldInfo(sourceTable, sourceField, this.fieldIndex++); sourceFieldDict.SetObjectForKey(fieldInfo, fieldInfo.Key); } for (var index = 0; index < numberOfFields; index++) { var sourceField = dataSourceTable.FieldAtIndex(index); var fieldKey = AnalysisMetaInfoFieldInfo.KeyForTableFieldId(sourceTable, sourceField.FieldId); var fieldInfo = sourceFieldDict.ValueOrDefault(fieldKey) as AnalysisMetaInfoFieldInfo; if (fieldInfo == null) { continue; } var subFieldIndices = sourceField.SubFieldIndices(); if (subFieldIndices?.Count > 0) { foreach (var subFieldIndex in subFieldIndices) { var subFieldKey = AnalysisMetaInfoFieldInfo.KeyForTableFieldId(sourceTable, subFieldIndex.ToInt()); var subFieldInfo = sourceFieldDict.ValueOrDefault(subFieldKey) as AnalysisMetaInfoFieldInfo; if (subFieldInfo != null) { fieldInfo.AddSubField(subFieldInfo); } } } } this.ProcessConfigurationFields(aTable, sourceFieldDict, table); var tableResultColumn = new AnalysisTableResultColumn(table); this.resultColumns.SetObjectForKey(tableResultColumn, table.Key); } }