• Asp.net报表ReportViewer设计(RDLC)


    ReportViewer是微软的报表控件,其设计文件为RDLC,数据架构为数据集。效果图如下:


    其中序号调用的是内置函数,姓名、收入、所属部门绑定的是数据源,头像绑定的是URL指向的外部图片。下面是实现过程。

    一.新增数据集

    1.在创建Web空项目后,在项目上右键->添加->新建项->数据->选择数据集,见下图


    2.将数据集命名为DataSet1_DataTable1

    3.双击DataSet1_DataTable1.xsd,然后在界面上右击,添加数据表。


    4.在数据表DataTable1中添加相应的列。


    5.将Income列的数据类型设置为Decimal. 

    选中字段Income,右击->属性->设置DataType


    二.设计RDLC

    1.创建RDLC。

    项目中右击->添加->新建项->Reporting->报表。

    命名为Report1.rdlc


    2.添加参数.

    双击Report.rdlc,添加参数。


    3.使用参数

    在工具箱中拖入一个文本框,选中文本框->右击->文本属性->fx->设置参数。具体见下图。




    如果需要在参数前增加固定的文字,需要将文字用双引号引起来,并用&连接,如果后面所连接的文字是数字的,需要使用Format函数将其转化为字符串。


    3.设计数据表

    (1).加入数据集


    (2).工具箱中拖入一个“表”,再从报表数据->数据集->选择相应字段->拖入到表中,再设置对应的标题。


    (3).序号列




    (4).头像列



    三.aspx页面

    1.新建default.aspx页

    2.在页面中增加控件ScriptManager和ReportViewer

    3.为ReportViewer配置报表Report1


    4.删除不需要的代码


    5.后端代码

      public partial class _default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    ReportViewer1.LocalReport.EnableExternalImages = true;
                    ReportViewer1.LocalReport.ReportPath = "Report1.rdlc";
                    ReportViewer1.LocalReport.SetParameters(new ReportParameter("ReportParameter1", Guid.NewGuid().ToString()));
                    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)));
                dt.Columns.Add(new DataColumn("Picture", typeof(string)));
    
                DataRow row = dt.NewRow();
                row["Name"] = "张三";
                row["Income"] = 1000.00m;
                row["Dept"] = "人事部门";
                row["Picture"] = "http://localhost:60000/demo_pictures/person1.jpg";
                dt.Rows.Add(row);
    
                row = dt.NewRow();
                row["Name"] = "李四";
                row["Income"] = 1200.00m;
                row["Dept"] = "人事部门";
                row["Picture"] = "http://localhost:60000/demo_pictures/person2.jpg";
                dt.Rows.Add(row);
    
                row = dt.NewRow();
                row["Name"] = "王五";
                row["Income"] = 2000.00m;
                row["Dept"] = "技术部门";
                row["Picture"] = "http://localhost:60000/demo_pictures/person3.jpg";
                dt.Rows.Add(row);
    
                return dt;
            }
        }
    其中localhost:60000是自己IIS架设的服务器,图片是网上找来放进去的。
    附代码下载 http://download.csdn.net/detail/xxdddail/8674951

    转载请注明出处

  • 相关阅读:
    缓存架构设计细节二三事
    数据库软件架构设计些什么
    100亿数据1万属性数据架构设计
    这才是真正的表扩展方案
    啥,又要为表增加一列属性?
    究竟啥才是互联网架构“高可用”
    究竟啥才是互联网架构“高并发”
    Linux用过的命令
    Xshell远程连接工具
    oracle分组取第一条
  • 原文地址:https://www.cnblogs.com/sparkleDai/p/7604967.html
Copyright © 2020-2023  润新知