动态图像和数据绑定

时间:2016-09-07 01:02:08

标签: c# reporting-services rdlc

想象一下,拥有一个包含与报告绑定的数据的数据集 - 工作得很好。

现在,我希望将动态或动态参数添加到另一个数据集中。这些参数或数据集将包含图像。图像是字节数组。

生成时,我无法让它们显示在RDLC报告中。

这是我到目前为止所做的:

  • 从代码中获取byte []数组,来自外部源(URL)
  • 将图像的byte []数组转换为Base64String
  • 将其添加为ReportParameter

然后在RDLC中,我添加了这个参数,然后添加了一个图像控件。 然后对于此图像框/控件,对于值,我将其设置为以下内容:

  • = System.Convert.FromBase64String(参数!TheImage.Value)

然而,我只是渲染了一个" X"对于图像,好像没有找到图像,但它确实存在。

呈现报告的代码或多或少如下(仅粘贴导入位):

using (var rv = new ReportViewer())
            {
                rv.ProcessingMode = ProcessingMode.Local;
                rv.Reset();
 using (var sr = new System.IO.StreamReader(@"C:\MyReport.rdlc"))
                {
                    rv.LocalReport.LoadReportDefinition(sr);
 rv.LocalReport.EnableExternalImages = true;        
                    var

 reportParameters = new List<ReportParameters>();
reportParameters.Add(new ReportParameter("TheImage", Convert.ToBase64String(TheExternalImage.Image);
rv.LocalReport.SetParameters(reportParameters);

 string mimeType;
                    string encoding;
                    string fileExtension;
                    string[] streamIds;
                    Warning[] warnings;
                    var streambytes = rv.LocalReport.Render(format.ToString(), null, out mimeType, out encoding, out fileExtension, out streamIds, out warnings);
                    rv.LocalReport.ReleaseSandboxAppDomain();
}
}

我出错的任何想法?

1 个答案:

答案 0 :(得分:2)

执行此操作将图像字节数组转换为基本64字符串,并将该字符串传递给参数(您已经这样做了)。然后将图像设置为将其源作为数据库,并确保在图像字段上正确设置MIME类型,然后使用该参数作为源。

很可能是将图像源设置为您缺少的数据库。

enter image description here