Требования к источнику данных времени разработки в Report Viewer 2010 - PullRequest
3 голосов
/ 18 октября 2010

Каковы требования к пользовательскому источнику данных, который должен быть указан в раскрывающемся списке «Источник данных» при добавлении набора данных в отчет .rdlc в Report Viewer 2010?

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

alt text

'GeneralDataSet' имеет смысл, поскольку это строго типизированный класс Dataset, но я почти уверен, что большинство других - нет, однако в диалоговом окне разработки все еще перечисляются их.

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

Ответы [ 4 ]

0 голосов
/ 17 апреля 2013

У меня была похожая проблема с пользовательскими списками, которые наследуются от List. Вы можете обойти это, если ваша система позволит вам наследовать без использования интерфейсов. Наши нет.

Проект, содержащий этот класс, появится в раскрывающемся списке DataSource, а сам класс появится в раскрывающемся списке DataSet:

public class AccountList : List<AccountData>
{}

Этот класс НЕ будет отображаться как набор данных, что не позволяет его проекту отображаться в качестве источника данных (обратите внимание на «I» перед AccountData):

public class AccountList : List<IAccountData>
{}

Это боль, потому что другие аспекты нашей системы требуют, чтобы списки наследовались от интерфейса, а не от конкретного класса. Я не знаю, почему это не работает.

0 голосов
/ 28 января 2011

Я заметил, что набор данных не отображается, если источник представлен как свойство, а не как метод.

т.е. это не может быть выбираемым источником данных.

public class FooData 
{
    public List<string> Data {get;set;}
}

но это будет отображаться как источник данных

public class FooData 
{
    public List<string> GetData();
}
0 голосов
/ 08 февраля 2011

У меня тоже была проблема с этим,

мой класс возвращал списки, но не отображался в списке источников данных.

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

Например:

public MyObject()
{
}
0 голосов
/ 24 октября 2010

Я думаю, что он сканирует файл вашего проекта в поисках методов, которые возвращают списки <> и т. Д.

Так что-то вроде:

public class Person
{
    public string name { get; set; }
    public int age { get; set; }
}

public class GetPeople
{
   public List<Person> GetPeopleList()
   {
      return null;
   }

   public IEnumerable<Person> GetPeopleIEnumerable()
   {
      return null;
   }

   public IQueryable<Person> GetPeopleIQueryable()
   {
      return null;
   }
}

Все три появляются, так что выбирайте сами,(Код только что удален, игнорируйте дурные имена / практики:))

Но когда вы используете ReportViewer, вам нужно будет вручную установить наборы данных.Выбор его в отчете из того, что я нашел, в основном говорит, какие данные ожидать.Поэтому добавьте ObjectDataSource или просто установите его в коде позади.

...