Многопараметрический отчет SSRS из WinForm ListBox C # - PullRequest
1 голос
/ 15 июня 2011

У меня есть форма, которую я хочу, чтобы пользователь мог экспортировать в PDF / Print off, поэтому я включил средство просмотра отчетов и отправил значения в виде параметров.

Все это работало нормальноза исключением 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 голосов
/ 10 августа 2011

Наконец-то понял, как заставить это работать.

Очевидно, мы не можем просто передать список в отчет: нам нужно добавить 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) обязательно выберите источник данных в средстве просмотра отчетов, а также установите BindingSource (должен автоматически генерироваться VS).

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...