2

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

4

2 回答 2

2

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

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

于 2009-07-20T15:27:02.777 回答
1

错误信息说你没有定义报表参数 Logo。此报告参数是否已定义?

您可能还会遇到您发送的参数大小的问题。

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

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

于 2009-07-19T12:10:13.033 回答