2011-06-15 33 views
1

我有一個表單,我希望用戶能夠導出到PDF /打印關閉,所以我包括了一個報告查看器並將值作爲參數發送出去。來自WinForm ListBox的SSRS報告多參數C#

所有這些都工作正常,除了我遇到問題的列表框。

此ListBox有一些可能數量的項目,我想將其發送到報表以供顯示。

目前有:

List<string> passengersParameter = new List<string>(); 

for (int i = 0 ; i < moreForm.passengerListBox.Items.Count ; i++) 
{ 
    passengersParameter.Add(moreForm.passengerListBox.Items[i].ToString()); 
} 

parameters.Add(new ReportParameter("passengerList", passengersParameter.ToArray())); 

這將顯示在列表的第一個條目就好了,當我對報告中添加的參數,但是,當我將它設置爲文本,然後選擇Allow Multiple Values參數只是顯示#Error

有什麼我需要做的,以便它顯示數組中的所有值?我很茫然。

回答

0

終於想出瞭如何讓這個工作。

顯然我們不能只是將一個列表傳遞給報告:我們需要添加一個DataSet。

所以我的例子上述

testData chaos = new testData(); 

... 

foreach (Passenger victim in showMe.Passengers) 
     { 
      // msdn.microsoft.com/en-us/library/5ycd1034(v=VS.100).aspx 
      DataRow skeez = chaos.Tables["Victims"].NewRow(); 

      skeez["Name"] = victim.ToString(); 

      chaos.Tables["Victims"].Rows.Add(skeez); 
     } 

     this.victimsBindingSource.DataSource = chaos.Tables["Victims"]; 

只要確保數據集添加到報表然後用填充的數據(上圖)編程設定。

然後(如果使用VS 2010)確保在報表查看器上選擇DataSource並設置BindingSource(應該自動生成VS)。

希望可以幫到你。