Проблемы с установкой источника данных RDLC в Object

Справочная информация:

мне было поручено преобразовать приложение базы данных Access в ASP.Net C# MVC. Это мое первое приложение MVC.

есть 10 отчетов, которые необходимо преобразовать. Мы используем файлы RDLC и reportviewer. Я использую Visual Studio 2010 со всеми последними исправлениями. Мы подключаемся к базе данных SQL Server, которая была заполнена существующей базой данных Access, поэтому структура таблицы в значительной степени установлена в камне, или мы должны попытаться преобразовать данные за 10 лет.

Я закончил все отчеты, кроме двух. Окончательные отчеты требуют дополнительной обработки, а не просто отображения данных из базы данных. Самый простой способ сделать это-создать объект C# и выполнить всю обработку на стороне сервера, а затем использовать RDLC для отображения результатов.

вопрос

проблема в том, что Visual Studio не распознает объекты, которые я создал как потенциальные источники. Каждый раз, когда я пытаюсь "добавить набор данных", он вызывает "мастер настройки источника данных" и предлагает только базу данных SQL Server в качестве возможного подключения к данным. Я знаю, что существует экран, который позволяет выбрать объект в качестве набора данных, но я никогда не вижу этот экран.

вот объекты (функции обработки удалены для ясности):

public class TurnAroundVal
{
    // Registration Package information
    public string dataType { get; set; }

    // Calculated totals; values only set through constructor or calculation function
    public int packageCount { get; private set; }
    public int dayCount { get; set; }
    public double avgTurnAround { get; private set; }
    public int upperRange { get; private set; }
    public int lowerRange { get; private set; }
}

public class TurnAroundVals
{
    // Public Variables
    public IEnumerable<TurnAroundVal> TurnArounds { get; private set; }
    public DatePass dates { get; set; }
    public int pkgTotal { get; private set; }
    public double dayTotal { get; private set; }
    public double avgAllTurnArounds { get; private set; }
}

Я также хотел бы использовать IEnumerable "TurnAroundVal" в качестве источника данных и просто передать даты, int и удваивается в качестве параметров. И то и другое сработает.

вопрос

есть ли параметр в Visual Studio 2010, который мне не хватает, чтобы позволить конструктору RDLC видеть созданные мной объекты? Я ошибаюсь, даже думая, что это будет работать с классами, которые я определил?

ответ

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

4 ответов


  1. убедитесь, что классы находятся в том же пространстве имен, что и приложение.
  2. попробуйте создать приложение перед созданием отчета
  3. запустите мастер отчетов. В разделе DataSouce выберите имя веб-приложения.
  4. В разделе доступные наборы данных вы должны увидеть, что Visual Studio интерпретирует как ваш "метод выбора". Если все хорошо, это должно быть поворотным моментом.

вам может потребоваться поместить файл класса в App_Data или папку app_code, но я не уверен.

это также может помочь.

http://msdn.microsoft.com/en-us/library/ms251692%28v=vs.100%29.aspx


установите объекты под тем же пространством имен, но в другом проекте, который вы затем ссылаетесь на свой проект пользовательского интерфейса.

также попробуйте реализации INotifyPropertyChanged.


Visual Studio не распознает класс при использовании только открытых членов. Когда вы используете getter и setter вместо этого, вы можете видеть свой класс при выборе источника данных.

в Visual Studio есть другие мастера, которые не работают с общедоступными членами.

Ура, Маркус


Я только что столкнулся с этой же проблемой при попытке создать отчеты RDLC в ASP.NET проект MVC в Visual Studio 2017, поэтому я добавляю это как отдельный ответ, чтобы прояснить, что это все еще проблема в январе 2018 года.

мое решение состояло из проекта библиотеки C# и проекта клиента MVC.

добавление отчетов (выбрав в Добавить новый элемент, а затем выбрав элемент мастера отчетов) в проекте библиотеки C# выводит отчет Мастер с мастером настройки источника данных (где я могу выбрать, Использовать ли базу данных, службу или объект в качестве источника данных) модально поверх него:

Report Wizard showing Data Source Configuration Wizard

тогда как, выбрав добавить новый элемент мастера отчетов в проекте MVC просто вызвал мастер отчетов без мастера настройки источника данных:

Report Wizard without the Data Source Configuration Wizard

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