我需要帮助动态地在ReportViewer中添加图像徽标。我从db获取此图像,将其转换为Base64,然后我需要在ReportViewer中添加它...此代码接下来:
rpViewer.LocalReport.EnableExternalImages = true;
Company _company = db.Companys.Where(c => c.codCompany == c.codCompany).Single();
//first step
byte[] img = _company.imagem.ToArray(); // i get image from db
MemoryStream _ms = new MemoryStream(img);
string logo = Convert.ToBase64String(img); //convert to base64
// 2 step
List<ReportParameter> lstReportParams = new List<ReportParameter>();//Create params
lstReportParams.Add(new ReportParameter("Logo", logo));
lstReportParams.Add(new ReportParameter("LogoMimeType", "image/png"));
// Doesn't work here (see error below)
this.rpViewer.LocalReport.SetParameters(lstReportParams);
this.rpViewer.RefreshReport();
错误:
{“本地报告处理过程中出错。”} {“尝试设置未在此报告中定义的报告参数'徽标'。”}
在Rldc:
MIMEType =Parameters!LogoMimeType.value
Value ="System.Convert.FromBase64String(Parameters!Logo.Value)"
为什么不起作用?
为什么不识别参数?
我可以在ReportViewer中加载该图像。
答案 0 :(得分:2)
您的RDLC文件需要创建徽标参数,以便报告重新识别您的参数列表。
您需要编辑RDLC文件并创建参数。您可以通过在Visual Studio中打开RDLC文件,然后在文件菜单中单击“报告”,然后选择“报告参数”来执行此操作。
答案 1 :(得分:1)
错误消息表明您尚未定义报告参数徽标。是否定义了此报告参数?
您可能也遇到了要发送的参数大小的问题。
我们遇到了类似的问题,报告需要显示不同的图像。在我们的案例中,只有大约10张图片。
我们解决它的方法是将所有图像放在报告上,然后根据参数设置它们是否可见。