При передаче IEnumerable в CrystalReport значения не отображаются - PullRequest
0 голосов
/ 13 июня 2019

Мне нужно изменить дизайн отчетов Crystal, используемых программным обеспечением моей компании. В настоящее время каждый отчет 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);
    ...
}
...