2014-09-11 50 views
0

我想知道是否可以將圖片從我的gui中的圖片庫添加到rdlc報告。現在我爲所有的字符串做這個,但我想添加一張圖片。將圖片從圖片庫指定到rdlc報告

reportViewer3.Visible = true;

 DataSet2 DsActivityReport = new DataSet2(); 
     ReportDataSource reportDataSource = new ReportDataSource(); 
     reportDataSource.Name = "DataSet1"; 
     reportDataSource.Value = DsActivityReport.Tables[0]; 


     ReportParameter name = new ReportParameter("NAME", txtNAME.Text); 
     ReportParameter employee_id = new ReportParameter("EMPLOYEE_ID", txtEmpNo.Text); 
     ReportParameter company_id = new ReportParameter("COMPANY_ID", txtCompany.Text); 
     ReportParameter emp_no = new ReportParameter("EMP_NO", txtEmpNo.Text); 
     //ReportParameter emp_picture = new ReportParameter("picture",); 

     reportViewer3.LocalReport.EnableExternalImages = true; 
     reportViewer3.LocalReport.DataSources.Clear(); 

     reportViewer3.LocalReport.SetParameters(new ReportParameter[] { name, employee_id, company_id, emp_no}); 
     reportViewer3.LocalReport.DataSources.Add(reportDataSource); 

     reportViewer3.RefreshReport(); 

我真的希望有一定的幫助在那裏,因爲即時通訊漂亮失去了..試圖做這一切的一天,但找不到任何解決我的問題。

我試圖做到這一點:

我的參數值稱爲圖片。 = System.Convert.FromBase64String(參數picture.Value!)

,代碼:

public string ConvertImgToBase64String() 
    { 
     byte[] arrpic; 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      picEmployee.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); 
      arrpic = ms.ToArray(); 
     } 
     string base64String = Convert.ToBase64String(arrpic); 
     return base64String; 
    } 
    ReportParameter Picture = new ReportParameter("picture", ConvertImgToBase64String()); 

reportViewer3.LocalReport.SetParameters(new ReportParameter[] { name, employee_id, company_id, emp_no, Picture }); 

但圖像不和沒有錯誤消息。

回答

0
Dim arrPic as byte() = /*Load the image as array of byte 
Convert byte() to BASE64 */ 
Dim sIMGBASE64 as String = Convert.ToBase64String(arrPic)) 
/*Add the BASE64 stream to the parameters*/ 
paramList1.Add(New ReportParameter(<sparamname>, sIMGBASE64) 

在報告設定圖片框的這樣的「值」屬性:

Value=System.Convert.FromBase64String(Parameters!<sparamname>.Value) 

你的代碼試試這個。

+0

你可以做c#代碼嗎? :) – grumme25 2014-09-11 06:28:18

+0

是的,我做到了。其工作良好 – mansoor 2014-09-11 06:45:35

+0

我編輯我的問題與新的解決方案,但它仍然給我的問題。 – grumme25 2014-09-11 07:02:50