查询了很多地方,关于rdlc 的文章大都是vs2008或者vs2005 的,10上的很多东西都有所不同的了,找的很多属性都找不到。
其中以前的代码 不加
if (!IsPostBack)
{
//绑定报表
ReportViewer1.LocalReport.ReportPath = MapPath( "Report1.rdlc");
//绑定数据源
//注意dataset1必须和你报表所引用的table 一致
ReportDataSource rds = new ReportDataSource("dataset1", ds.Table[0]);//注意这里的name和报表中的一致
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.Refresh();
}
就能解决,而2010 必须加上,否则将会不休止的循环从新调用load 的事件,不停的在 界面显示loading
2 微软报表 子报表 rdlc 绑定子报表数据源
想必拖一个子报表控件,然后指向一个报表文件就不用多说了,大家一定知道怎么弄。重要的是绑定子报表的数据源。当然不也为难
帖代码看吧
if (!IsPostBack)
{
//绑定报表
ReportViewer1.LocalReport.ReportPath = MapPath( "Report1.rdlc");
//绑定数据源
//注意dataset1必须和你报表所引用的table 一致
ReportDataSource rds = new ReportDataSource("dataset1", ds.Table[0]);//注意这里的name和报表中的一致
this.ReportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(SubreportProcessingEventHandler);
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.Refresh();
}
void SubreportProcessingEventHandler(object sender, SubreportProcessingEventArgs e)
{
//注意dataset2必须和你子报表所引用的table 一致
e.DataSources.Add(new ReportDataSource("DataSet2", ds2.Table[0]));
}
3.分页报表 按照字段分类,比如,按人,每个人的 数据在一页上。
首先在工具栏 拖一个 list 控件,设置 list 的属性,按照某个字段分组,然后再向list中拖一个table 按照普通的写法绑定数据即可。
4.绑定参数 赋值,底层代码
ReportParameter rp = new ReportParameter("ReportTitle", “参数赋值”); ---ReportTitle为参数名称
ReportViewer1.LocalReport.SetParameters(rp);
5 Image控件使用
选择一个RDLC报表文件,选择菜单栏中的报表-->嵌入图像-->新建图像(从本地选择一个图片)-->确定选中
从工具栏拖动一个Image控件(图像)到RDLC,设置Source属性为Embedded,Value属性为刚才添加的图 片名称即可
动态加载图片(根据图片路径)
菜单-->报表-->报表参数(新增一个参数,比如名称为image1,类型为string)拖动一个image控件到rdlc报表中,设置Source属性为External,Value属性为=Parameters!image1.Value (注意:这里的image1要和报表参数的名称一致)包含报表文件的asp.net窗体
this.ReportViewer1.LocalReport.EnableExternalImages = true;
ReportParameter image = new ReportParameter("image1", path); //image1必须和报表参数一致
this.ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { image });