Я создаю простой отчет, используя объект .NET из моего проекта в качестве источника данных, используя метод SetDatasource ()
. Однако, когда я запускаю отчет, я получаю ошибку «Не удалось войти в базу данных».
D.
ДОБАВЛЕНО: Думаю, это, вероятно, поможет, если я включу действие Контроллера. Это быстрый и грязный тест, а не то, как будет выглядеть окончательный метод:
public ActionResult StewardSheets(int showId, int groupId)
{
ReportClass rptH = new ReportClass();
rptH.FileName = DataHelper.getReportFilePath("Test.rpt",this);
NZDSDataContext dataContext = new NZDSDataContext();
var showDetails = (from s in dataContext.Shows
where s.ID == showId
select new StewardSheetModel
{
EventDate = s.EventDate.ToLongDateString(),
Region = s.Region.Name,
ShowTitle = s.Name
}).FirstOrDefault();
List<StewardSheetModel> details = new List<StewardSheetModel>();
details.Add(showDetails);
rptH.SetDataSource(details);
rptH.Load();
Stream stream = rptH.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
return File(stream, "application/pdf");
}
ИСПРАВЛЕНО: D'oh! I used ReportClass instead of ReportDocument. Changed that line, and also use Refresh() since Load() is not a valid method. Now it works just fine!