`
strong_fee
  • 浏览: 179402 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

.Net RDLC报表

    博客分类:
  • .Net
阅读更多

一、创建报表

可以通过Report或者Report Wizard创建报表


右键 Insert-->Table, 可以为插入的Table选择或创建数据源


我们也可以跳过这一步,暂且生成一个空报表,动态地为报表设置数据源,关于这个在后边会提到。

关于报表的创建,可以参考

  1. Walkthrough: Creating a ReportViewer Report
  2. RDLC 报表系列(一) 创建一个报表
  3. WinForm中创建Rdlc报表Windows Forms Control in Local Processing Mode(Using a Business Object Data Source) 
  4. 官方教程
  5. 概述


二、报表数据源

 

添加DataSet数据源

在DataSet中新建一个TableAdapter,创建第一个DataAdapter时,会提示创建数据库连接。

当然,我们也可以不映射数据库中的字段,直接手动添加列,之后为这些DataSet复制,可以参考这里

 

为Rdlc报表生成数据源


配置Rdlc的数据源,当然可以在为Rdlc创建Table时根据Wizard配置好:

右键Table-->Tablix Properties-->General-->Data Set Name


接下来就可以把DataSet中的字段往Table中拖拽或者直接编辑该列的Expression。


添加页眉和页脚,Report-->Add Report Header, Add Report Foo。

如果不能在每页都显示页眉或页脚,请在RDLC源码<KeepWithGroup>After</KeepWithGroup>后加上<KeepWithGroup>After</KeepWithGroup>,如:


<TablixRowHierarchy>
          <TablixMembers>
            <TablixMember>
              <KeepWithGroup>After</KeepWithGroup>
              <RepeatOnNewPage>true</RepeatOnNewPage>
              </TablixMember>
            <TablixMember>
              <Group Name="详细信息" />
            </TablixMember>
            <TablixMember>
              <KeepWithGroup>Before</KeepWithGroup>
            </TablixMember>
          </TablixMembers>
        </TablixRowHierarchy>

报表的数据源还可以是某个类的方法,这个方法应该返回一个集合,可以参考这里,如:

/// <summary>
    /// The data source.
    /// </summary>
    public class DataSource
    {
        /// <summary>
        /// The get Meterials.
        /// </summary>
        /// <returns>
        /// </returns>
        public static IEnumerable<Meterial> GetMeterials()
        {
            return null;
        }

        public static IEnumerable<Meterial> GetMeterials2()
        {
            return null;
        }

    }

    /// <summary>
    /// The Meterial
    /// </summary>
    public class Meterial
    {
        /// <summary>
        /// Gets or sets Name.
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// Gets or sets Email.
        /// </summary>
        public string Email { get; set; }
    }


三、在apsx页面中显示报表

新建Aspx页面,拖拽一个ScriptManager(在Toolbox-->Ajax Extensions中)到具有runat="server"的控件之下,如<form id="form1" runat="server">,如


<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
</form>

 

插入ReportView控件

 

为报表的数据源初始化实例

点击上图的"ReportView Tasks"-->Choose Data Source

 

在弹出的Wizard中,选择“Object”,输入Data Source Id, 点击OK确认,此时可以选择在”报表数据源“中创建的TableAdapter。当然,我们可以通过代码来创建数据源,代码如下:


ObjectResult<MeterialReturnResult> meterials = DbEntities.BusinessScale();
var rdsMeterials = new ReportDataSource(
                    "MeterialDataSet", meterials );

localReport.DataSources.Clear();
localReport.DataSources.Add(rdsMeterials );
localReport.Refresh();

我在以上代码中使用EF调用存储过程发挥的结果作为报表的数据源。


四、报表参数

报表参数的值只能通过程序来设定,在报表上无法接收参数值的输入,只能显示。通过右键“Report Data” View的“Parameters”添加参数,如:

设置报表参数的值:


var reportDateParameter = new ReportParameter("ReportDate", reportDate);
reportParameters.Add(reportDateParameter);

多次添加相同参数名的报表参数,前者将会被覆盖。


五、报表变量和常量



ExecutionTime

生成报表的时间

PageNumber

当前的页号

ReportFolder

包含报表的文件路径

ReportName

报表的名称

ReportServerUrl

执行报表Server的路径(这里没有用Server,所以没有,如果用ReportService那就就存在了)

TotalPages

总行数

UserID

当前执行报表的人

Language

执行报表Server的系统语言

显示页码:

Globals!PageNumber.ToString() & "/" && Globals!TotalPages.ToString()


显示行号:

=RowNumber("MeterialDataSet") 

参考:RDLC 报表系列(三) 参数、常量及常用表达式的使用


六、报表表达式

 

回车拼接字符串:

=Fields!FirstName.Value & vbCrLf & Fields!LastName.Value

其他表达式请参考:rdlc报表表达式应用(字符串和转换)

可以两个小应用可以参考:

 

  1. RDLC报表中给Matrix矩阵控件中的小计subtotal行加上背景色
  2. RDLC报表中Matrix矩阵控件空值替换成0

 

七、子报表

如果希望单击报表中某个值后,弹出一个新的报表,即钻取报表或自报表,则

右键报表的某个单元格-->Text Box Property-->制定钻取报表和传递给钻取报表的参数

在钻取报表中添加一个参数已接收主报表传递过来的参数,参数名和主报表传递给钻取报表的参数名相同。

捕获主报表的Drillthrough事件,实例化钻取报表的数据源,如:


private void reportViewer1_Drillthrough(object sender, DrillthroughEventArgs e)
        {
            LocalReport lp = (LocalReport)e.Report;
            string customerid = lp.GetParameters()["customerid"].Values[0].Trim();

            lp.DataSources.Clear();
            lp.DataSources.Add(new ReportDataSource("NorthwindDataSet_Orders",
                new NorthwindDataSetTableAdapters.OrdersTableAdapter().GetDataByCustomerID(customerid)));
        }

详细请参考:使用RDLC报表(四)--钻取式报表


八、分组

对于新建的Table,有一个默认的分组,名为Details,但是没有制定分组的字段,我们可以为这个分组设置分组字段,如:

参考:VS中RDLC报表分组的实现


九、在报表中插入图片

将图片复制到工程,右键“Report Data”视图中的Image,选择“Add”,将图片引入报表。之后便可以将图标拖到报表中,我们这里插入图片的方式为Embedded,参考这里

 

十、阅读

  1. 蜡人张
  2. gotreportviewer

 

  • 大小: 72.9 KB
  • 大小: 54.5 KB
  • 大小: 36.9 KB
  • 大小: 43.7 KB
  • 大小: 43.8 KB
  • 大小: 23.9 KB
  • 大小: 39.3 KB
  • 大小: 64.5 KB
  • 大小: 29.6 KB
  • 大小: 11.9 KB
  • 大小: 59.3 KB
  • 大小: 41.2 KB
分享到:
评论

相关推荐

    ASP.NET RDLC报表实例代码,对学习报表的很有用

    ASP.NET RDLC报表是微软提供的一种用于创建动态数据报告的工具,它允许开发者在Web应用程序中集成复杂的报表功能。RDLC(Report Definition Language Client Report)是 Reporting Services 的客户端版本,适用于...

    asp.net rdlc报表代码实例

    下面将详细阐述如何在ASP.NET中使用RDLC报表以及相关的代码实例。 1. **RDLC报表简介** - RDLC报表是一种XML格式,用于定义报告的布局和数据源。 - 它们在ASP.NET中提供了一种灵活的方式来呈现和交互与数据,如...

    VS .NET报表开发之RDLC报表随笔

    ### VS .NET报表开发之RDLC报表知识点详解 #### 一、RDLC报表概述 **RDLC报表**是在Microsoft Visual Studio .NET环境下用于创建报表的一种技术。它利用**Report Definition Language (RDL)**来定义报表的结构和...

    VS.NET RDLC报表使用.rar

    但是,Microsoft似乎并不容忍在自己的超级工具中竟然没有报表工具,于是Report Viewer Control出现了,我把它的报表称为RDLC报表。 在VS .NET 2005之前,SQL Server Reporting Services中已经提供了一种被称为报表...

    asp.net -rdlc报表教程

    ASP.NET中的RDLC报表是一种基于微软技术的报表生成工具,全称为Report Definition Language for Client-Side Processing。在Visual Studio .NET 2005及之后的版本中,RDLC报表得到了广泛的应用,作为对水晶报表...

    rdlc报表资料pdf

    2. **VS.NET RDLC报表使用.pdf**:此手册可能更侧重于在Visual Studio .NET环境下使用RDLC报表的指南。内容可能包括如何在VS.NET环境中启动报表项目,使用Report Designer,调试报表,以及解决常见问题的方法。 **...

    asp.net-rdlc:asp.net-rdlc 报表入门

    ASP.NET RDLC报表是微软开发的一种用于在ASP.NET应用程序中创建和展示报表的技术。它基于SQL Server Reporting Services (SSRS)的Report Definition Language (RDL)格式,但可以直接在Web应用程序中运行,无需服务器...

    MVC下使用RDLC报表的示例

    本示例将探讨如何在ASP.NET MVC应用程序中集成和使用RDLC报表。 首先,我们需要了解MVC的基本组成部分。模型(Model)负责处理业务逻辑和数据管理,视图(View)负责显示用户界面,控制器(Controller)则处理用户...

    asp.net 报表 rdlc官方例子下载

    在提供的"ReportViewer Demo.doc"文件中,可能包含了一个详细的步骤指南,展示了如何将`ReportViewer`控件集成到ASP.NET Web应用程序中,以及如何配置和运行RDLC报表。 "sample.log"文件可能是日志文件,它可能记录...

    Asp.net的ReportViewer的RDLC设计及动态绑定数据源

    总结,Asp.net的ReportViewer结合RDLC文件,提供了强大的报表设计和动态数据绑定能力。开发者可以根据实际需求,灵活地调整报表结构,从各种数据源获取数据,甚至实现交互式报表功能,提升用户体验。在实际项目中,...

    ASP.NET下使用RDLC操作报表

    RDLC报表基于SSRS(SQL Server Reporting Services)的技术,但不需要SQL Server的服务器端组件,可以在ASP.NET Web Forms或MVC项目中本地运行。 在"RDLC报表使用.doc"文档中,你可能会学习到如何创建和配置RDLC...

    RDLC报表绑定到数据集的简单使用.zip

    RDLC报表是微软提供的一种用于在Windows Forms和ASP.NET应用程序中创建和展示报表的解决方案。在本示例中,"RDLC报表绑定到数据集的简单使用.zip" 文件旨在演示如何将RDLC报表与数据集相结合,以显示虚拟人物的消费...

    Rdlc打印一维码二维码打印

    在本文中,我们将深入探讨如何在C# WinForm应用程序中使用RDLC报表来实现一维码和二维码的打印功能。RDLC(Report Definition Language Client)是Microsoft开发的一种用于设计和生成报表的工具,广泛应用于.NET ...

    Rdlc报表设计器,设计ReportViewer报表必备利器

    **Rdlc报表设计器——ReportViewer报表设计的得力助手** 在IT行业中,数据可视化是至关重要的,而报表则是数据展现的重要方式。`Rdlc`( Reporting Services Report Definition Language Client-Side)报表设计器...

    WPF程序中RDLC报表的使用及参数传递

    在本教程中,我们将深入探讨如何在WPF程序中集成和使用RDLC报表,以及如何通过代码传递参数。 首先,我们需要了解RDLC报表的基本结构。RDLC报表由多个元素组成,如数据区域(例如表格、矩阵、图表)、文本框、图像...

    C# RDLC报表相关安装程序

    在IT领域,报表系统是数据分析和展示的重要工具,而C# RDLC报表是.NET Framework下用于创建和展示本地数据报表的一种强大解决方案。本安装程序专为C#开发者设计,旨在帮助他们轻松集成RDLC报表到自己的应用程序中,...

    RDLC报表设计器

    RDLC报表设计器是一种用于创建和设计报表的强大工具,尤其在C#编程环境中广泛使用。它全称为Report Definition Language Client Reports Designer,是微软.NET框架的一部分,主要用于Windows Forms应用程序。RDLC...

    rdlc报表表达式应用(字符串和转换)

    rdlc报表表达式应用(字符串和转换) rdlc报表表达式是一种强大的工具,用于在报表中处理和转换字符串、日期、数字等数据类型。本文将详细介绍rdlc报表表达式在字符串和转换方面的应用,包括格式化字符串、日期和...

    RDLC报表应用例子

    总的来说,RDLC报表在.NET开发中提供了强大的数据呈现功能,尤其适用于那些需要自定义报告和交互式用户体验的项目。通过研究和实践这些示例,开发者能够深入理解RDLC的工作原理,掌握如何在自己的应用程序中有效地...

    rdlc报表制作详细步骤

    ### RDLC报表制作详细步骤解析 #### 一、创建数据源与项目 RDLC报表,全称为Report Definition Language XML,是一种用于Visual Studio中创建报表的XML格式。在本指南中,我们将详细介绍如何在Visual Studio 2005...

Global site tag (gtag.js) - Google Analytics