public void AddDataField(DataFieldData field) { string name = field.Name.ToUpper(); if (dataFields.Keys.Contains(name)) { lineCount -= dataFields[name].LineCount; dataFields[name].MergeWith(field); lineCount += dataFields[name].LineCount; } else { dataFields.Add(name, field); lineCount += field.LineCount; } }
private static void ParseFieldList(XPOReader reader, DataSourceData data) { while (!reader.EndOfStream) { string line = reader.ReadLine().TrimStart(); if (line.StartsWith(KeyWords.DATAFIELD)) { data.AddDataField(DataFieldData.Parse(line, reader)); } else if (line.StartsWith(KeyWords.REFERENCEFIELD)) { data.AddReferenceField(ReferenceFieldData.Parse(line, reader)); } else if (line.StartsWith(KeyWords.ENDFIELDLIST)) { break; } } }