将IEnumerable传递给CrystalReport时未显示任何值

时间:2019-06-13 15:49:03

标签: c# .net crystal-reports-2008 generic-collections

我需要重新设计公司软件使用的水晶报表。当前,每个Crystal报表都建立自己的与服务器的数据库连接。我只希望应用程序连接到服务器并将.NET Object Collection传递给CrystalReport,我在项目中创建了一个Location类。使用EntityFramework将相关表加载到List<T>中,创建另一个集合IEnumerable<Location>并遍历从数据库中检索的原始集合,仅将相关数据添加到IEnumerable<Location>中,然后传递此列表以IEnumerable<Location>的形式出现在我的ReportDocument中,该列表是为了接受Location对象而创建的。但是,即使已确认ReportDocument包含元素,List<Location>也只显示列名,而没有任何值。我在下面显示一些代码摘要。我错过了一步吗?

public class Location
{
    public string LocationID {get; set;}
    public int ItemID {get; set;}
    public string ItemDescription {get; set;}
    public int Quantity {get; set;}
}
...
private void LoadData()
{
    LocationsReportDocument lrd = new LocationsReportDocument();
    MyDataContext dc = new MyDataContext();
    var v = dc.RackLocations.ToList();
    IEnumerable<Location> locations = new IEnumerable<Location>();
    foreach(var x in v)
    {
        Location l = new Location();
        l.LocationID = x.Location;
        l.ItemID = x.ItemID;
        l.ItemDescription = x.Description;
        l.Quantity = x.Qty;
        locations.Add(l);
    }
    lrd.SetDataSource(locations);
    ...
}

0 个答案:

没有答案