diff --git a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/CollectionStrategy.cs b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/CollectionStrategy.cs index 3334dca3514..1063bbf4557 100644 --- a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/CollectionStrategy.cs +++ b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/CollectionStrategy.cs @@ -257,8 +257,11 @@ public override void Fill(IReportItem item) BaseDataItem baseDataItem = item as BaseDataItem; if (baseDataItem != null) { PropertyDescriptor p = this.listProperties.Find(baseDataItem.ColumnName, true); - baseDataItem.DBValue = ""; - baseDataItem.DBValue = p.GetValue(this.Current).ToString(); + if (p != null) { + baseDataItem.DBValue = p.GetValue(this.Current).ToString(); + } else { + baseDataItem.DBValue = string.Format("<{0}> missing!", baseDataItem.ColumnName); + } return; } diff --git a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/IListDataManagerFixture.cs b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/IListDataManagerFixture.cs index 52ec6f35260..63d38f95e71 100644 --- a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/IListDataManagerFixture.cs +++ b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/IListDataManagerFixture.cs @@ -83,6 +83,22 @@ public void DataNavigatorCorrectPosition () "CurrentRow should be -1"); } + + [Test] + public void DataNavigator_Return_ErrMessage_If_ColumnName_NotExist () + { + IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection as System.Collections.IList,new ReportSettings()); + IDataNavigator dataNav = dm.GetNavigator; + BaseDataItem item = new BaseDataItem(); + item.ColumnName = "ColumnNotExist"; + var items = new ReportItemCollection(); + items.Add(item); + dataNav.Fill(items); + string str = "<" + item.ColumnName +">"; + Assert.That(item.DBValue.Contains(str)); + } + + #region Standart Enumerator [Test] public void EnumeratorStartFromBegin ()