VS 2017 с локальными отчетами - определение отчета не указано

Я использую vs2017 с ReportViewer 14.0 в приложении WinForms. Я делал это раньше в предыдущих версиях VS без каких-либо проблем, и я очень удивлен, почему я не могу заставить это работать на этот раз.

Вот что я сделал до сих пор:

  • Я создал отчет (RDLC) в папке "Отчеты", которая находится в корне приложения.
  • Я установил для BuildAction значение None, а для параметра "Копировать в выходной каталог" - "Копировать, если новее"
  • В новой форме я разместил компонент ReportViewer (он называется rpt)
  • Я установил режим обработки на локальный
  • В событии Load формы я запускаю следующий код:

string path = AppDomain.CurrentDomain.BaseDirectory + @"Reports\Report.rdlc";
rpt.LocalReport.ReportPath = path;

rpt.LocalReport.SetParameters(new ReportParameter("parTitle", Title));

rpt.LocalReport.DataSources.Add(new ReportDataSource("ds", Data));
rpt.Refresh();

Когда я запускаю приложение, форма загружается, но ReportViewer отображает сообщение: определение отчета не указано

Я также попытался установить действие сборки для EmbeddedResource и использовать:

rpt.LocalReport.ReportEmbeddedResource = "Project.Reports.Report.rdlc";

Тот же результат. Я даже попробовал:

Assembly a = Assembly.GetExecutingAssembly();
Stream report = a.GetManifestResourceStream("Project.Reports.Report.rdlc");
rpt.LocalReport.LoadReportDefinition(report);

Нет разницы. Я всегда получаю это:

Я смотрю на это уже несколько часов, и по жизни я не могу понять, что я делаю неправильно. Любая помощь будет принята с благодарностью.

Спасибо.

1 ответ

Решение

Сейчас я чувствую себя довольно глупо, но, как ссылка на любого, кто сталкивается с той же проблемой, я публикую решение здесь.

изменения

rpt.Refresh();

в

rpt.RefreshReport();

сделал трюк. Теперь отчет загружается правильно. Refresh наследуется от Control и только делает недействительным элемент управления, но не заставляет отчет обрабатываться и обрабатываться. RefreshReport делает именно это.

Надеюсь, это сэкономит кому-то время.

Другие вопросы по тегам