Мне нужно изменить дизайн отчетов 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);
...
}