WinForms reportViewer (.NET 3.5), связывающий данные из DataTable

WinForms reportViewer (.NET 3.5), связывающий данные из DataTable

Я пытаюсь привязать DataTable, который создается динамически, к элементу управления reportViewer. В Интернете есть много учебников по этому вопросу, но они не подходят для этого проекта... (есть связанные вопросы по переполнению стека, но в моем случае решения не работают)

Это обработчик события для кнопки Показать отчет:

    private void btn_ShowRwport_Click(object sender, EventArgs e)
    {
        //Set the date range for the report
        rptctn.SetDateRangeOne(listBox1.SelectedItem.ToString(), dateTimePicker_Start.Value, dateTimePicker_End.Value);

        //Get the report datatable
        DataTable dt = rptctn.GetReportTest(listBox1.SelectedItem.ToString());

        //Set the datagridview
        dataGridView1.DataSource = dt;

        //Set the reportViewer
        this.reportViewer1.LocalReport.DataSources.Clear();            
        Microsoft.Reporting.WinForms.ReportDataSource rprtDTSource = new Microsoft.Reporting.WinForms.ReportDataSource(dt.TableName, dt);
        this.reportViewer1.LocalReport.DataSources.Add(rprtDTSource);
        this.reportViewer1.RefreshReport();
    }

Я знаю, что DataTable корректно повторяется, так как dataGridView работает... https://docs.google.com/file/d/0B6b_N7sDgjmvZHpEYS1BWWhqZ3c/edit?usp=sharing

Проект имеет следующие ограничения:

  • Необходимо использовать.NET 3.5 из-за клиентской среды. (так ReportViewer 2008)

  • Создание DataTable и ReportViewer находятся в разных пакетах (уровень приложения / представления)

  • Я пытаюсь избежать создания файлов.rdlc, так как отчеты (DataTables) имеют переменное количество строк / столбцов.

Кто-нибудь знает, как я могу связать динамически созданную DataTable со средством просмотра отчетов в моем случае?

1 ответ

Решение

На самом деле вы просите динамически создать файл RDLC и добавить таблицу. Я нашел сторонний пример с некоторым кодом из gotreportviewer.com, просто посмотрите вниз на правой стороне страницы для динамического создания RDLC - Таблица.

Другие вопросы по тегам