Asp.Net WebForm Rdlc 报表的使用

开发工具 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 了解

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值