如何向ReportViewer参数动态添加图像徽标?

时间:2009-07-18 19:03:03

标签: reportviewer

我需要帮助动态地在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中加载该图像。

2 个答案:

答案 0 :(得分:2)

您的RDLC文件需要创建徽标参数,以便报告重新识别您的参数列表。

您需要编辑RDLC文件并创建参数。您可以通过在Visual Studio中打开RDLC文件,然后在文件菜单中单击“报告”,然后选择“报告参数”来执行此操作。

答案 1 :(得分:1)

错误消息表明您尚未定义报告参数徽标。是否定义了此报告参数?

您可能也遇到了要发送的参数大小的问题。

我们遇到了类似的问题,报告需要显示不同的图像。在我们的案例中,只有大约10张图片。

我们解决它的方法是将所有图像放在报告上,然后根据参数设置它们是否可见。