将List 绑定到Crystal Report的对象

我有一个包含一些属性的类,包括一个子对象的List 。

简单示例:

public class LineItem { public string Name { get; set; } public decimal Amount { get; set; } } public class Invoice { public string Name { get; set; } public DateTime CreatedDate { get; set; } public List LineItems { get; set; } public Invoice() { ... } } 

我试图将这个对象(示例中的Invoice)绑定到Crystal Report(使用VS2008水晶报表设计器),并且我得到了简单的属性(Name,CreatedDate)以显示在Field Explorer中,而子集合却没有。 我已经尝试使用ArrayList(如建议的那样( 我如何使用强类型列表作为Crystal Reports的datasoruce ),但这不起作用。

经过一些搜索和实验后,我尝试将报表绑定到包含子集合的自定义对象时未成功。 我没有使用.Net对象,而是使用XSD shema设计了报表,并在运行时生成了一个xml文件,并将成本报表的数据源设置为我使用.ReadXML方法构建的DataSet。

 var exportData = new XDocument(....); var dataSet = new System.Data.DataSet(); dataSet.ReadXml(exportData.CreateReader()); var report = new ReportDocument(); report.Load("..."); report.SetDataSource(data);