2016-09-07 91 views
0

想象一下,如果數據集中包含與報告綁定的數據 - 工作得很好。動態圖像和數據綁定

現在,我想添加到另一個數據集動態或動態參數。這些參數或數據集將包含圖像。圖像是在一個字節數組中。

生成時,我無法讓它們顯示在RDLC報告中。

這是我迄今所做:

  • 獲取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(); 
} 
} 

任何想法,我要去的地方錯了嗎?

回答

2

這樣做將您的圖像字節數組轉換爲基本64字符串並將該字符串傳遞給參數(您已經這樣做)。然後將圖像設置爲數據庫的源,並確保在圖像字段上正確設置MIME類型,然後使用參數作爲源。

很可能是將圖像源設置爲缺少的數據庫。

enter image description here

+0

謝謝 - 問題是圖像不是來自數據庫。它是從外部來源傳入RDLC的。 MIME類型已正確設置。 –

+0

好的,經過測試 - 它工作!謝謝!! –