2012-04-01 28 views
1

我想在運行時(動態)將圖像加載到我的報表(標題內)中。ReportViewer WPF - 動態設置圖像

我已經創建下列參數:

Name: Path 
Datatype: String (should be the path to the image) 
Allow Blank = True 

然後我draged和DROP掉的圖像控制我的報告。 設置名稱:鏡像2 的ImageSource:外部 使用以下圖片:[@Path]

現在(在我的主窗口後)我已經添加以下代碼:

 viewerInstance.LocalReport.EnableExternalImages = true; 
     List<ReportParameter> param1 = new List<ReportParameter>(); 
     //header_2.png exists (for test purposes) in the root folder 
     param1.Add(new ReportParameter("Path", @"/header_2.png")); 
     viewerInstance.LocalReport.SetParameters(param1); 

一點也沒有」工作。 我會收到此錯誤消息:

對與指定綁定約束匹配的類型「ReportViewer.MainWindow」上的構造函數的調用引發異常。 {「尚未指定報告定義的來源」}

任何想法?

回答

1

我不是很確定如何使用SSRS 2008中的絕對路徑使用外部圖像來做到這一點。但我想我可以提供一種解決方法,但這隻會在您擁有所有圖像時才起作用在事先向您提供的報告中使用。

您可以將圖像控件添加到報告中。在Image Control屬性中,提供名稱,選擇圖像源爲Embedded,然後單擊Import,然後選擇圖像。點擊導入。圖像被導入。現在你可以像這樣導入所有圖像。完成後,再次轉到圖像控制屬性並將此圖像設置爲「[@Path]」。現在,您不需要傳遞絕對路徑,只需要在報告數據中的圖像下可以看到的導入圖像中顯示圖像名稱。

此外,如果您要使用外部圖像,根據this msdn article您需要爲圖像提供Url而不是絕對路徑。在這種情況下,您可以在服務器上提升圖像並在Path參數中傳遞路徑。選擇圖像來源爲外部。我已經測試過它,它的工作原理。

編輯:您也可以通過報表管理器將圖像上傳到ReportServer,並在將圖像源指定爲外部圖像後,將該圖像的路徑作爲RDL中的相對路徑。 例如/Report/Logo.png。您還可以上傳多個圖像並通過將該路徑作爲參數提供給報告來使用它們。