Visual Studio 2010 Локальный отчет SSRS (.rdlc) с источником данных объекта - PullRequest
20 голосов
/ 15 апреля 2011

Я создал больше проектов с использованием ReportViewer 2005 и 2008 в режиме локальной обработки, чем могу рассчитывать на свои руки. Все проекты веб-форм ASP.NET для Visual Studio 2005 или 2008. Для отчетов я всегда использовал источник данных Object.

Сегодня вечером я попытался добавить ту же функциональность в проект Visual Studio 2010 MVC 2, и у меня ничего не получается. Во-первых, Add New Item> Reporting> Report теперь является RDLC 2008 года, а не отчетом RDLC 2005 года. Во-вторых, при попытке добавить DataSet мой обычный метод создания прокси-класса данных со статическими методами, которые возвращают IEnumerables(Of Stuff), не будет отображаться, так как источники в раскрывающихся источниках DataSources

Empty Data Source

В-третьих, моя опция only заключается в добавлении соединения с базой данных. Нет «источника данных объекта» для выбора:

Database connections only

Я в тупике. Как я уже упоминал, у меня нет проблем с отображением отчета с помощью элемента управления ReportViewer. Что я не могу сделать, так это выяснить, как настроить источник данных в этих новомодных отчетах 2008 года с помощью Visual Studio 2010, чтобы я мог качать список объектов домена в ReportViewer и отображать отчет.

UPDATE

Проведя еще несколько исследований, я обнаружил, что проекты MVC не позволяют использовать в них источники данных об объектах. Одним из решений моей проблемы является создание отдельного проекта в решении - веб-приложения, службы или даже просто библиотеки классов, чтобы добавить отчет и соответствующим образом оформить его.

Я все еще ищу альтернативы здесь.

Ответы [ 6 ]

7 голосов
/ 30 декабря 2014

Вот пара решений. Номер два намного лучше, так как не требует ненужного дублирования ваших сборок.

Раствор 1 (окей)

Как добавлено к самому вопросу и описано в посте Средство просмотра отчетов Visual Studio 2010 - Источник данных объекта , просто создайте отдельную библиотеку для проекта и добавьте туда файл rdlc. Это похоже на ошибку самого типа проекта веб-приложения MVC, поэтому любой другой тип проекта (например, библиотека классов) должен работать. Мастер настройки источника данных теперь должен выглядеть следующим образом:

data source configuration wizard

Решение 2 (лучше)

Как показано в Не удается увидеть или добавить источники данных веб-сайта в отчете RDLC в ASP.NET MVC , вы можете просто добавить страницу .aspx в любом месте проекта MVC для того, чтобы обмануть Visual Studio и привлечь нужные библиотеки времени разработки.

Просто сделайте следующее:

  • Закрыть все окна
  • Чистое и восстановленное решение
  • Добавить WebForm1.aspx в проект
  • Откройте файл RDLC и выберите источник данных из выпадающего списка:

    DataSource Dropdown

5 голосов
/ 10 мая 2011

Краткий ответ: Да, вы можете использовать объектные источники данных в RDLC 2008 (это просто не интуитивно понятно).Вот как:

Откройте страницу RDLC (в представлении [Дизайн]).Через некоторое время в верхней части Visual Studio появится вкладка «Данные».Выберите «Добавить новый источник данных», выберите «Объект» и нажмите «Далее».Оттуда вы сможете увидеть список объектов, к которым вы можете привязаться.Выберите свой DTO / Business Object / что угодно из вашего проекта и нажмите Finish.На вкладке боковой панели «Данные отчета» в левой части Visual Studio вы увидите добавленный объект.Скопируйте имя источника данных, которое он сгенерировал (это будет что-то вроде «MyProject_MyObject»).

Теперь в вашем контроллере вы можете извлечь IEnumerable этого DTO / BusinessObject и передать его в качестве параметра данных и вашего источника данныхимя как это (извините, нет синтаксиса VB):

ReportDataSource reportDataSource =
            new ReportDataSource("MyProject_MyObject", myIEnumerable);
0 голосов
/ 27 сентября 2013

У меня была та же проблема, но затем я переместил отчет и классы сущностей в другой проект, отдельный от WebAplication. Когда я это сделал, мастер отображает другие параметры, кроме DataBase Connection, поэтому я добавляю Object DataSource в C # Библиотека. Затем я использую этот пост , чтобы получить определение отчета и встроить в .aspx, надеюсь, это поможет !!

0 голосов
/ 06 ноября 2012

У меня была та же проблема, и я следовал этим инструкциям (ответ Зилонг ​​Лу), как только у меня появился обработчик для моего отчета, и опция глобального источника данных не появилась, только мастер подключения.Я щелкнул правой кнопкой мыши по моему проекту и нажал на сборку.После этого я попытался снова добавить глобальный источник данных, и мастер соединений не появился, но опция глобального источника данных все же появилась.

0 голосов
/ 20 декабря 2011

не будет отображаться, так как источники в раскрывающихся источниках данных

У меня была такая же проблема несколько дней назад.Я решил это, установив SP1 для VS10.http://www.microsoft.com/download/en/details.aspx?id=23691

0 голосов
/ 18 сентября 2011

Я не уверен, что вы видите то, что я вижу, но мне кажется, что классы с закрытыми конструкторами (даже с открытыми статическими методами, которые возвращают списки одного и того же класса), не отображаются всписок.

Критерии для источников данных объекта для отображения в отчете Visual Studio Новый набор данных?

...