Microsoft WinForm ReportViewer из списка - PullRequest
4 голосов
/ 04 мая 2009

Может ли кто-нибудь предоставить фрагмент кода, ссылку на учебное пособие или информацию о том, как создать отчет в отчете Microsoft из списка объектов?

У меня есть следующий класс собаки:

namespace MyNS
{
   public class Dog
   {
      public int Legs { get; set; }
      public string Name { get; set; }
      public string Breed { get; set; }
   }
}

Затем в оконных формах у меня есть объект ReportViewer, который я хотел бы заполнить из списка из MyNS.Dog таких объектов:

List<MyNS.Dog> MyDogs = new List<MyNS.Dog>();
// populate array here
// and use it as datasource for ReportViewer

Есть идеи?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 18 ноября 2011

Для программы просмотра winform: включите следующий код

public class Dog
    {

        int legs;

        public int Legs
        {
            get { return legs; }
            set { legs = value; }
        }
        string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        string breed;

        public string Breed
        {
            get { return breed; }
            set { breed = value; }
        }

    }

    public class DogBll
    {
        List<Dog> myDog;
        public DogBll()
        {
            myDog = new List<Dog>();
            myDog.Add(new Dog() { Legs = 10, Name = "mimi", Breed = "german" });
            myDog.Add(new Dog() { Legs = 4, Name = "momo", Breed = "english" });
        }
        public List<Dog> GetDogs()
        {
            return myDog;
        }
    }

Создайте свое решение. Добавьте элемент управления ReportViewer в форму, на смарт-теге ReportViewer, создайте новый отчет и выберите источник данных объекта, разверните свой класс и проверьте класс Dog в качестве источника данных объекта. выберите свой элемент управления Reportviewer снова, и выберите вновь созданный отчет, автоматически создается DogBindingSource. В своем классе формы добавьте следующий код в начало класса. Вы можете использовать первую строку после открытого частичного класса Form1: Form {оператор, но перед конструктором

private DogBll _dogBll = new DogBll();

В форме загрузки () добавить:

this.DogBindingSource.DataSource = _dogBll.GetDogs();

Для средства просмотра веб-формы: вы должны предоставить функцию, которая будет возвращать список Dog, в этом классе он должен содержать конструктор по умолчанию.

namespace MyNS 
{ 
   public class Dog 
   { 
      public int Legs { get; set; } 
      public string Name { get; set; } 
      public string Breed { get; set; } 
   }
   public class DogBll
   {
      public DogBll()
      {
      }
      public List<Dog> GetDogs(List<Dog> myDog)//make sure you set the parameter in object datasource
      {
          return myDog;
      }
    }
} 

добавьте элемент управления мастера просмотра отчетов, выберите источник данных в качестве новой функции GetDogs (), которую вы только что создали, определите свой отчет на основе 3 открытых свойств в вашем классе Dog. Добавьте источник данных объекта в вашу форму, укажите отчет для использования источника данных объекта. Наконец, установите параметр GetDogs () в источнике данных объекта.

2 голосов
/ 04 мая 2009

Для локального отчета вы можете указать свой источник данных следующим образом:

var reportViewer = New ReportViewer();
var reportDataSource = New ReportDataSource("MyNS_Dog", MyDogs);
reportViewer.LocalReport.DataSources.Add(reportDataSource);
...