我正在尝试添加外部照片作为徽标以及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();
答案 0 :(得分:4)
我有使用Code启用外部映像的经验,它适用于本地/开发环境,但在服务器上部署时不起作用,报告引发错误:
“尚未为此报告设置启用外部图像属性”
要解决此问题,请在ASPX中使用EnableExternalImages="true"
属性或使用ReportViewer Control的设计文件,它将完美运行。
答案 1 :(得分:1)
如上所述here,图片的路径必须采用网址格式,即@"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});
答案 2 :(得分:1)
问题实际上是,您在设置db.session.commit()
之前调用this.reportViewer1.RefreshReport();
。
这里的订单很重要。
答案 3 :(得分:0)
答案 4 :(得分:0)
对于WinForm应用程序,下面的代码将很好地工作。
$xml.Save($path)
对于ASP.Net应用程序,请执行以下操作:
string templateImage = Application_Path + @"\Images\ReportLogo.jpg";
rvRptContainer.LocalReport.EnableExternalImages = true;
rvRptContainer.LocalReport.SetParameters(new ReportParameter("ReportLogo", "File:\\" + templateImage));
答案 5 :(得分:0)
对我没有任何帮助,但是简单地对我有用
LocalReport localReport = new LocalReport();
localReport.ReportPath = HostingEnvironment.MapPath("~/Reports/myreport.rdlc");
localReport.EnableExternalImages = true;
localReport.EnableHyperlinks = true;