zoukankan      html  css  js  c++  java
  • 微软的RDLC报表(转)

      最近正在做微软的RDLC报表(即ReportView),把自己的经验写了来,网络上有个叫蜡人张的博客介绍的还不错,下面开始做一张分组统计的简单报表吧~

    微软的RDLC报表 - -锋起云涌- - _往事随锋_

    (最终图)

       一、先建一张报表:

    微软的RDLC报表 - -锋起云涌- - _往事随锋_

    二、设计dataset

        因为报表是要数据绑定的,所以下一步添加数据源。你可以通过添加“添加数据源”来通过数据库连接字符串链接到一个表或视图,不过你也不必通过数据库来给dataset,取消弹出的“配置数据适配器”界面。打开dataset直接右键添加一个“table”(如图)

    微软的RDLC报表 - -锋起云涌- - _往事随锋_

    然后手动加上需要的数据字段,如 name(姓名)、income(收入)、dept(部门),income的datetype为decimal。其实dataset就是一个数据外壳罢了。

    三、设计报表

        从“工具栏”上拖一个“表”到报表上。此表默认有三行,header、detail、footer,顾名思义:header即是表头,detail就是要显示的内容,footer为表尾,可以在这里进行一些统计信息。并且对表格进行相应的格式设计,加上表格边宽,字体居中等,如图

    微软的RDLC报表 - -锋起云涌- - _往事随锋_

    下面的工作就是把相应的数据字段帮顶上去,看到上图的左边“website data sources”了,直接把刚才建的dataset的字段拖进去,在序号列加入报表的一个函数“=RowNumber(Nothing)”,RDLC中有许多函数可以用,右击某个单元格“属性”,在“value”中点“fx”会出现函数对话框。设计成如下图:

    微软的RDLC报表 - -锋起云涌- - _往事随锋_

    四、设计页面

        随便建一个aspx页面,从工具栏上拖入“reportviewer”控件,点击其右上方三角,选择刚刚建立的那张报表。这是页面上会多出一个ObjectDataSource1控件是用来获取数据的,我们手动赋值,所以就不用了,删除它。

    微软的RDLC报表 - -锋起云涌- - _往事随锋_

    接下来就是手动绑定数据源,具体参照以下代码:

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using Microsoft.Reporting.WebForms;

    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            DataTable dt = GetData();

            ReportDataSource rds = new ReportDataSource("DataSet1_DataTable1", dt);
            ReportViewer1.LocalReport.DataSources.Clear();
            ReportViewer1.LocalReport.DataSources.Add(rds);
            ReportViewer1.LocalReport.Refresh();
        }

        /// <summary>
        ///   模拟数据
        /// </summary>
        /// <returns></returns>
        private DataTable GetData() {
            DataTable dt = new DataTable("dataname");
            dt.Columns.Add(new DataColumn("Name", typeof(string)));
            dt.Columns.Add(new DataColumn("Income", typeof(decimal)));
            dt.Columns.Add(new DataColumn("Dept", typeof(string)));

            DataRow row = dt.NewRow();
            row["Name"] = "张三";
            row["Income"] = 1000.00m;
            row["Dept"] = "人事部门";
            dt.Rows.Add(row);

            row = dt.NewRow();
            row["Name"] = "李四";
            row["Income"] = 1200.00m;
            row["Dept"] = "人事部门";
            dt.Rows.Add(row);

            row = dt.NewRow();
            row["Name"] = "王五";
            row["Income"] = 2000.00m;
            row["Dept"] = "技术部门";
            dt.Rows.Add(row);

            return dt;
        }
    }

    值得注意的是:我上面红色标出的ReportDataSource rds = new ReportDataSource("DataSet1_DataTable1", dt);必须与html中  <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1_DataTable1" />对应,现在直接运行就可以看到效果:

    微软的RDLC报表 - -锋起云涌- - _往事随锋_

    五、加统计行

        打开报表,在footer行收入那列中键入“=Sum(Fields!income.Value)”即求和。

    六、分组统计

       点击表格,在左侧上右键“inert group”,插入一个分组

    微软的RDLC报表 - -锋起云涌- - _往事随锋_

    在“group on”(分组依据)中选择“=Fields!dept.Value”,并且选中“include group footer”,如图:

    微软的RDLC报表 - -锋起云涌- - _往事随锋_

    好下面再来预览一下最终效果:

    微软的RDLC报表 - -锋起云涌- - _往事随锋_

  • 相关阅读:
    汇编--基础分析:数据段在内存中的存放及空间
    汇编语言(王爽)第六章检测点与实验5
    C语言经典例题100(22~40)
    C:数组小结(3)
    随机不重复的取数组元素,并赋值给div使用
    关于Apple设备私有的apple-touch-icon属性详解
    测试你女友是否跟你结婚插件的源码
    CSS子元素设置margin-top作用于父容器?
    hybrid app开发中:苹果移动设备实用Meta标签
    chromium 修改chromium的设置选项
  • 原文地址:https://www.cnblogs.com/zhcnblog/p/2594062.html
Copyright © 2011-2022 走看看