예제 #1
0
 /// <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;
 }
예제 #2
0
        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);
            }
        }