[英]Microsoft WinForm ReportViewer from List
任何人都可以提供代碼片段,教程鏈接或有關如何從對象列表在Microsoft報表中創建報表的信息?
我有以下Dog類:
namespace MyNS
{
public class Dog
{
public int Legs { get; set; }
public string Name { get; set; }
public string Breed { get; set; }
}
}
然后,在Window Forms中,我有一個ReportViewer對象,我想從MyNS.Dog 列表中填充這樣的對象:
List<MyNS.Dog> MyDogs = new List<MyNS.Dog>();
// populate array here
// and use it as datasource for ReportViewer
有任何想法嗎?
謝謝!
對於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:Form {語句之后但在構造函數之前使用第一行
private DogBll _dogBll = new DogBll();
在formload()上,添加:
this.DogBindingSource.DataSource = _dogBll.GetDogs();
對於webform 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(),根據Dog類中的3個公共屬性定義報表。 在表單中添加對象數據源,指向報表以使用對象數據源。 最后,在對象數據源中設置GetDogs()的參數。
對於本地報告,您可以像這樣指定數據源:
var reportViewer = New ReportViewer();
var reportDataSource = New ReportDataSource("MyNS_Dog", MyDogs);
reportViewer.LocalReport.DataSources.Add(reportDataSource);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.