Подтвердить что ты не робот

Отчет о локальном SSRS Visual Studio 2010 (.rdlc) с источником данных объекта

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

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

Empty Data Source

В-третьих, мой единственный вариант - добавить соединение с базой данных. "Объектный источник данных" отсутствует:

Database connections only

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

UPDATE

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

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

4b9b3361

Ответ 1

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

Решение 1 (okay)

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

data source configuration wizard

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

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

Просто выполните следующие действия:

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

    DataSource Dropdown

Ответ 2

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

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

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

ReportDataSource reportDataSource =
            new ReportDataSource("MyProject_MyObject", myIEnumerable);

Ответ 3

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

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

Ответ 4

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

Ответ 5

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

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

Ответ 6

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