开发工具 VS2017
一、项目创建
1、创建 .Net项目
2、创建报表文件目录
项目创建完成后,创建如下的文件夹目录 rdlc文件夹下,存放的是rdlc 报表文件,RdlcReport是显示报表的页面
3、报表安装配置
1)“工具”选项——“扩展和更新”选项——选择“联机”——搜索框中输入 rdlc搜索——选择“Microsoft RDLC Report Designer” 下载安装
2)Nuget 中搜索“Microsoft.ReportingServices.ReportViewerControl.WebForms” 安装
3)Web.Config配置文件
a.找到 system.web 节点下的compilation节点,在compilation节点添加如下代码
<assemblies>
<add assembly="Microsoft.ReportViewer.Common, Version=15.0.0.0, Culture=neutral,
PublicKeyToken=89845DCD8080CC91" />
<add assembly="Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral,
PublicKeyToken=89845DCD8080CC91" />
</assemblies>
b.在compilation节点后添加如下设置
<httpHandlers>
<add path="Reserved.ReportViewerWebControl.axd" verb="*"
type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms,
Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" validate="false"
/>
</httpHandlers>
c.在system.web节后,添加 system.webServer
<system.webServer>
<handlers>
<add name="ReportViewerWebControlHandler" verb="*"
path="Reserved.ReportViewerWebControl.axd" preCondition="integratedMode"
type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms,
Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
</handlers>
</system.webServer>
4)控件及报表数据绑定
a.在RdlcReport页面中,添加 报表控件注册
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=15.0.0.0,
Culture=neutral, PublicKeyToken=89845dcd8080cc91"
Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
b.页面中添加报表控件 注:ScriptManager 必须添加
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<rsweb:ReportViewer CssClass="rdlc-report" BackColor="lightgrey"
KeepSessionAlive="false" ToolBarItemBorderWidth="0" ID="_ReportViewer"
ShowRefreshButton="False" ShowZoomControl="False" ShowBackButton="False"
ShowExportControls="False" ShowFindControls="False" ShowToolBar="False"
AsyncRendering="False" SizeToReportContent="True" PromptAreaCollapsed="True"
ShowParameterPrompts="False" runat="server" Width="100%" Height="700px">
</rsweb:ReportViewer>
c.在rdlc文件夹中添加报表
d.在rdlc文件夹中添加 数据集
数据集创建完成后,在数据集中添加数据表,如下
e. 报表文件,绑定数据源
左侧打开“报表数据”选项卡,找到“数据集”,右击 “添加数据集”
左侧“工具箱” 选项卡,拖动“表” 工具到报表中(如果涉及比较复杂的分组,使用矩阵工具)
然后给表绑定数据字段
二、代码实现
报表绑定数据的实现代码 RdlcReport.cs
/// <summary>
/// 页面加载事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SetReportViewer();
}
}
/// <summary>
/// 绑定数据
/// </summary>
private void SetReportViewer()
{
List<AccountInfo> accountInfos = new List<AccountInfo>();
for(int i = 0; i < 10; i++)
{
accountInfos.Add(new AccountInfo { AccountID=Guid.NewGuid().ToString(),UserName=(i+1).ToString()+"账户"});
}
//绑定rdlc数据
string rptName = "Report1";//报表名称
this._ReportViewer.LocalReport.ReportPath = String.Format(@"{0}\rdlc\" + rptName + ".rdlc", Server.MapPath("."));//绑定报表路径
//报表传参
//ReportParameter rpCurrMonth = new ReportParameter("displayDate", DateTime.Now.ToString("yyyy-MM-dd"));
//this._ReportViewer.LocalReport.SetParameters(new ReportParameter[] { rpCurrMonth });
this._ReportViewer.LocalReport.EnableHyperlinks = true;
this._ReportViewer.LocalReport.DataSources.Clear();
ReportDataSource rds1 = new ReportDataSource("DataSet1", accountInfos);
this._ReportViewer.LocalReport.DataSources.Add(rds1); //绑定数据源
}
/// <summary>
/// 登录账户信息
/// </summary>
class AccountInfo
{
/// <summary>
/// 登录账户
/// </summary>
public string AccountID { get; set; }
/// <summary>
/// 用户姓名
/// </summary>
public string UserName { get; set; }
}
最终报表效果
关于更多的报表工具的使用及 Microsoft.ReportingServices.ReportViewerControl.WebForms的详解,可参考https://docs.microsoft.com/zh-cn/sql/reporting-services/create-deploy-and-manage-mobile-and-paginated-reports?view=sql-server-2017 了解