Нужно добавлять дополнительные источники данных в RDLC
-
29-09-2020 - |
Вопрос
Мне нужно добавить второй канал DataTable из основного набора набора набора нашего приложения в отчет, но не повезло.
У нас есть несколько простых локальных отчетов в файлах RDLC, каждый с одним генеракодицетагкодом на основе представления в нашем приложении DB.Мне нужно улучшить одну из отчетов, чтобы добавить информацию из другой таблицы.Эта другая таблица определяется в том же основном генеракодичестве, который мы используем для отчетов в нашем приложении WinForms .NET 2.0.Поскольку две таблицы находятся в одном наборе данных, могу ли я просто убедиться, что обе таблицы загружаются в набор данных, а затем укажите отчет в DataSet вместо DataTable?Что-то еще?
Нет необходимости сказать, я играю с этим на некоторое время и никуда не попал.
TIA, Мэтт
Решение
Хорошо, я получил эту работу и, в ретроспективе, это было довольно легко. Я только что не знал, какие меню использовать для того, чтобы получить против, чтобы все вписаться, и который должен делать их.
Глядя на Designer.cs для моей формы на самом деле была самая полезная вещь, которую я сделал. Я заметил, что ReportViewer имеет Bindingsource по умолчанию, указанным на первой таблице. Первоначально я был повешен при попытке дать Bindingsource DataSet вместо DataTable, но тогда я решил попробовать сделать второй связыватель вместо этого.
Может быть, есть лучший способ, но вот в основном то, что я оказался:
-
с RDLC в дизайнере, щелкнул меню «Отчет», а затем источники данных.
-
В диалоговом окне источников данных отчета выбрали дополнительные данные с DataTable из раскрывающейся и нажали Добавить в отчет. (Я также переименовал новый источник данных, чтобы просто было названием дополнительных таблиц данных; VS создал некоторое гигантское длинное имя, основанное на полном пространстве.) ОК, чтобы закрыть диалог.
-
на конструкторе для формы, которая содержит My ReportViewer Control, щелкнул смарт-тег «ReportViewer» (маленькая стрелка в правом верхнем углу управления), а затем выбрали источники данных Rebind. Это сделало вторую связующую организацию в нижней части конструктора.
-
щелкнул смарт-тег ReportViewer снова и на этот раз выбрал «выбрать источники данных», чтобы подтвердить, что reportViewer теперь имел два источника данных, каждый из которых связан с одним из экземпляров
BindingSource
теперь в форме. -
Пересмотрел код нагрузки моей формы для загрузки строк во второй канал DataTable.
-
вернулся к файлу RDLC, добавил новую таблицу и установить детальные ячейки на поля во второй канализации - и он работал!
Надеюсь, это спасет кого-то еще пару часов.
Другие советы
выяснил способ использовать его в Visual Studio 2010. Нажмите на View> RegightData и когда видно данные отчета, нажмите на DataSources, а затем нажмите «Добавить».Сделайте это столько раз, сколько необходимо количество наборов данных.
Теперь в интеллектуальных тегах ReportViewer нажмите «Выбрать данные создания данных», это покажет каждую из наборов данных.Чтобы связать наборы данных с помощью источника связывания, вам придется нажать на проект, а затем дополнительно нажмите, пока не получите соответствующий класс, это приведет к созданию источников связывания.
Эта работа вокруг очень полезна, если у вас есть несколько таблиц, и вы должны связать источник привязки к ним в том же отчете, когда отчет отображается на просмотру отчета