Свойство enable externalimages не было установлено для этого отчета?
Я пытаюсь добавить внешнюю фотографию в качестве логотипа вместе с отчетом о report.rdlc
файл. У меня есть эта ошибка
Свойство enable externalimages не было установлено для этого отчета
?
Вот мой код
try
{
this.pedidosTableAdapter.Connection.ConnectionString = con.MysqlConnect();
this.pedidosTableAdapter.Fill(this.fabricacaoDataSet8.pedidos, Pages.relatorios.num);
this.reportViewer1.RefreshReport();
}
catch { }
// for external image
this.reportViewer1.LocalReport.EnableExternalImages = true;
ReportParameter parm = new ReportParameter();
parm=(new ReportParameter("path", @"C:\logo.jpg",true));
this.reportViewer1.LocalReport.SetParameters(parm);
this.reportViewer1.Refresh();
4 ответа
У меня есть опыт, когда вы включаете внешние образы с помощью кода, он работает в локальной среде / среде разработки, но при развертывании на сервере он не работает, и в отчетах возникает ошибка:
"Свойство enable external images не установлено для этого отчета"
Чтобы решить эту проблему, используйте EnableExternalImages="true"
свойство в ASPX или файл дизайна, где вы используете элемент управления ReportViewer, и он будет работать отлично.
Проблема здесь в том, что вы звоните this.reportViewer1.RefreshReport();
перед установкой this.reportViewer1.LocalReport.EnableExternalImages = true;
,
Порядок важен здесь.
Как уже упоминалось, путь к изображению должен быть в формате URL, т.е. @"file:///C:\logo.jpg"
Или вы можете попробовать
var filepath = new Uri("C:\logo.jpg");
var path = new ReportParameter("Path", filepath.AbsolutePath);
this.reportViewer1.LocalReport.SetParameters(new ReportParameter {Path = path});
У меня ничего не работало, просто это сработало
LocalReport localReport = new LocalReport();
localReport.ReportPath = HostingEnvironment.MapPath("~/Reports/myreport.rdlc");
localReport.EnableExternalImages = true;
localReport.EnableHyperlinks = true;
Для приложений WinForm приведенный ниже код будет работать хорошо.
string templateImage = Application_Path + @"\Images\ReportLogo.jpg";
rvRptContainer.LocalReport.EnableExternalImages = true;
rvRptContainer.LocalReport.SetParameters(new ReportParameter("ReportLogo", "File:\\" + templateImage));
Для приложений ASP.Net выполните следующие действия:
ReportViewer1.LocalReport.EnableExternalImages = true;
string imagePath = new Uri(Server.MapPath("~/images/Mudassar.jpg")).AbsoluteUri;
ReportParameter parameter = new ReportParameter("ImagePath", imagePath);
ReportViewer1.LocalReport.SetParameters(parameter);
ReportViewer1.LocalReport.Refresh();