来自WinForm ListBox C#的SSRS报告多参数

时间:2011-06-15 19:37:41

标签: c# winforms reporting-services parameters listbox

我有一个表单,我希望用户能够导出到PDF /打印关闭,所以我包含了一个报表查看器,并已将值作为参数发送。

所有这些都工作得很好,除了ListBox,我遇到了问题。

此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

为了让它显示数组中的所有值,我还需要做些什么吗?我很茫然。

1 个答案:

答案 0 :(得分: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"];

只需确保将DataSet添加到报表中,然后使用填充的数据以编程方式设置它(上图)。

然后(如果使用VS 2010)确保在Report Viewer上选择DataSource并设置BindingSource(应该由VS自动生成)。

希望对你有帮助。