[英]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.