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 了解

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ASP.NET WebForm 是一种用于构建动态网页的技术框架,可以通过使用它提供的控件和事件模型来开发各种功能丰富的网页应用程序。要实现审批流,可以按照以下步骤进行: 1. 数据库设计:首先,需要设计一个数据库来存储审批流相关的数据。可以创建一个“审批表(Approval)”来存储审批流的信息,例如审批ID、审批标题、申请人、审批状态等。 2. 创建页面:使用ASP.NET WebForm创建一个审批页面。可以通过使用ASP.NET控件,如GridView、Repeater等来展示审批列表或者审批详情。还可以通过Label、TextBox等控件来收集用户输入的审批意见。 3. 编写代码逻辑:在页面的代码文件中,可以编写逻辑来处理审批流。可以使用ASP.NET提供的事件模型,例如按钮的Click事件,来触发审批流的处理逻辑。例如,点击“通过”按钮后,可以更新数据库中的审批状态,并发送通知邮件给下一个审批人;点击“拒绝”按钮后,可以更新审批状态,并发送通知邮件给申请人。 4. 审批流控制:审批流通常是由多个环节构成的。可以使用ASP.NET WebForm中的页面导航控件(如MultiView)来控制审批流程的流转。可以通过编写代码来判断当前审批人是谁,根据审批人的决策来显示不同的页面视图。 5. 审批历史记录:审批流一般需要记录审批的历史记录。可以在数据库中创建一个“审批历史记录表(ApprovalHistory)”,用于存储每次审批的详细信息。可以在每次审批流程处理完成后,将相关信息记录到表中。 通过以上步骤,就可以在ASP.NET WebForm中实现一个基本的审批流。当然,具体的实现方式还取决于实际需求和业务流程,并可以根据具体情况进行定制和扩展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值