2009-05-04 55 views
4

任何人都可以提供代碼片段,教程鏈接或有關如何在Microsoft Report中從對象列表中創建報告的信息?列表中的Microsoft WinForm ReportViewer

我有以下的狗類:

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

然後,在窗口形式,我有一個的ReportViewer objetct,我想從MyNS.Dog對象這樣的列表來填充:

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

任何想法?

謝謝!

回答

2

對於本地報告,您可以指定數據源是這樣的:

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

太棒了。去嘗試,並會讓你知道。 – 2009-05-04 17:38:51

4

對於WinForm中的ReportViewer:包括下面的代碼

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 smarttag上創建一個新的報告並選擇對象數據源,展開你的類並檢查Dog類作爲對象數據源。再次選擇您的reportviewer控件,並選擇新創建的報告,DogBindingSource會自動創建。在你的表單類中,將下面的代碼添加到類的頂部。您可以將公共部分Form1類使用後的第一行:表格{語句,但該構造

private DogBll _dogBll = new DogBll(); 

在formload()之前,添加:

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

對於Web窗體的ReportViewer:你應該提供一個函數會返回一個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個公有屬性定義您的報告。在窗體中添加一個對象數據源,指向報告以使用對象數據源。最後,在對象數據源中設置GetDogs()的參數。