public void AddReferenceField(ReferenceFieldData field) { string name = field.Name.ToUpper(); if (referenceFields.Keys.Contains(name)) { lineCount -= referenceFields[name].LineCount; referenceFields[name].MergeWith(field); lineCount += referenceFields[name].LineCount; } else { referenceFields.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; } } }