报表数据来源可以为:列表集合、数据集
为报表设置数据源方法:
1、 页面中直接和数据集进行绑定;
< asp : ScriptManager ID ="ScriptManager1" runat ="server">
</ asp : ScriptManager >
<% --报表查看器 -- %>
< rsweb : ReportViewer ID ="ReportViewer1"
runat ="server" Width ="867px" Font-Names ="Verdana" Font-Size ="8pt"
InteractiveDeviceInfos ="( 集 ¡¥ 合 ?)" WaitMessageFont-Names ="Verdana"
WaitMessageFont-Size ="14pt">
<% -- 设置报表 -- %>
< LocalReport ReportPath ="Report.rdlc">
< DataSources >
< rsweb : ReportDataSource DataSourceId ="EntityDataSource1" Name ="DataSet1" />
</ DataSources >
</ LocalReport >
</ rsweb : ReportViewer >
<% -- 设置数据源 -- %>
< asp : EntityDataSource ID ="EntityDataSource1" runat ="server"
ConnectionString ="name=testFramWorkEntities"
DefaultContainerName ="testFramWorkEntities" EnableFlattening ="False"
EntitySetName ="department"
Select ="it.[departmentId], it.[deptName], it.[deptCode]">
</ asp : EntityDataSource >
2、 后置类中写代码和集合、数据集绑定。
using (var db = new testFramWorkEntities ())
{
// 通过 Linq 从数据库中获取数据
var ds = (from p in db.person
select p).ToList();
var localReport = this .ReportViewer1.LocalReport;
// 为查看器设置报表
localReport.ReportEmbeddedResource = "WebApplication1.Report2.rdlc" ;
// 为查看器设置数据源
localReport.DataSources.Clear();
//"DataSet1" 要和设计时的数据集的名字一样
localReport.DataSources.Add(new ReportDataSource ("DataSet1" , ds));
// 刷新
localReport.Refresh();
}
注意:使用集合做为报表数据源时,一般会先添加一个数据集来进行报表的辅助设计,设计完后数据集可以删除。
使用参数:
1、 报表添加参数:
工具栏 >> 视图 >> 数据表报:添加参数。
2、 后置代码:
var parameters0 = new ReportParameter ("CreateTime" , CreateTime.ToString("yyyy-MM-dd" ));
localReport.SetParameters(new []
{
parameters0,
});