赞
踩
开发中这么一个需求,需要通过代码设置报表数据区绑定的数据源
使用代码生成的报表,我们可以在新增数据区的时候设置,使用report1.GetDataSource("A");
获取报表已经注册过的别名为A
的数据源:
//报表注册数据源
DataSet dataSet = new DataSet();
report1.RegisterData(dataSet, "A", true);
//新增数据区
DataBand data = new DataBand();
data.DataSource = report1.GetDataSource("A");
//新增报表页
ReportPage page = new ReportPage();
page.Name = "Page1";
//报表页绑定数据区
page.Bands.Add(data);
//添加自定义报表页
report1.Pages.Add(page);
如果是加载出来的报表,我没有找到直接设置值的方法,通过遍历报表的对象来找到数据区,然后设置它的数据源
//遍历报表所有对象
ObjectCollection obj = report1.AllObjects;
foreach (var item in obj)
{
Type type = item.GetType();
if (type.Name == "DataBand")
{
DataBand data = item as DataBand;
data.DataSource = report1.GetDataSource("A");
break;
}
}
需要注意的事,想要通过
GetDataSource()
方法获取数据源,必须先使用RegisterData()
注册数据源,或者加载的报表中已经有数据源了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。