`
isiqi
  • 浏览: 16592337 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

RDL(C) Report Design Step by Step 2: SubReport

阅读更多


前两天,有网友在Blog上评论要求将子报表的配置贴出来,由于这两天有些别的事情,所以耽搁了;另外,自己也比较懒,有些东西明明应该早就写出来的。呵呵,说声“对不起”,然后还有“谢谢你”!

OK,这篇随笔就讲一下RDLC报表中子报表SubReport的实现步骤。

首先来看一下,本文的示例的运行结果。


图1 主子报表示例运行结果

主子报表的数据源显然也应该是两个具有主子关系的数据表,本文示例依然使用Northwind数据库的订单和订单明细表作为数据源。

1、在Visual Studio 2005中创建一个Windows应用程序RDLCSR。

2、在项目中添加数据源,数据源并不一定用来为报表提供数据(当然Visual Studio 2005提供的操作非常方便),主要是在报表设计时可以方便向报表中进行字段拖曳。添加数据源意味着在项目中添加了一个数据集Orders.xsd文件,当报表的数据不是来源于关系型数据库(如Flat Files或Web Services等)时,我们可以自己定义一个xsd文件作为报表设计时的数据源,而在程序中重新为报表载入数据。

3、在项目中添加报表rptOrder.rdlc和rptOrderDetail.rdlc分别作为示例的主报表和子报表。

4、为子报表rptOrderDetail.rdlc添加参数pOrderId,指定其数据类型为Integer,然后如图2进行子报表的布局设计。


图2 子报表rptOrderDetail.rdlc布局设计

5、为主报表rptOrder.rdlc进行如图3所示的布局设计。


图3 主报表rptOrder.rdlc布局设计

6、在主报表rptOrder.rdlc的子报表控件上单击右键,使用“属性”菜单调出“子报表属性”对话框。在“常规”选项卡中的子报表下拉列表中选择rptOrderDetail;切换到“参数”选项卡,在“参数名称”列中,系统会自动检测到步骤4中定义的子报表的参数pOrderId,并在“参数值”列中指定参数值为=Fields!订单ID.Value。

7、在子报表rptOrderDetail.rdlc中选择表格控件,使用右键菜单“属性”调出“表属性”对话框,在“筛选器”选项卡中进行入图4的设置。这主要是为了在订单明细中筛选当前订单的明细数据,当然这一步骤可以在程序中用代码指定。


图4 在子报表rptOrderDetail.rdlc中指定筛选器

好了,至此报表布局的设置已经完成了,下面需要在应用程序中显示报表并给主子报表分别提供数据。

8、在窗体frmMain中添加ReportViewer控件rptMain,并在rptMain的“ReportViewer任务”中选择报表rptOrder.rdlc。

9、在窗体frmMain中添加图5所示的代码:


图5 窗体frmMain的代码

可见,必须对ReportViewer控件的LocalReport对象添加SubReportProcessing事件,而该事件主要也就是为了子报表提供数据。

现在就可以运行应用程序查看结果了,如图6所示。


图6 示例运行结果(未给列表指定分组)

在图6中,我们看到出现两个订单显示在同一页面,而在实际应用中,我们可能希望,每个页面

上只显示一条订单。此时,可以进行以下的设置:

10、在主报表rptOrder.rdlc中,选择列表控件,右键“属性”弹出“列表属性”对话框,在“常规”选项卡中,单击按钮“编辑详细信息组”弹出“分组和排序属性对话框”并进行如图7所示的设置。


图7 为列表指定分组并设置分页显示选项

事实上,主子报表和钻取报表有着相似的地方,所以如果看了这篇随笔有什么不明白的地方,可以参看一下我的另一篇随笔RDLC Report Step by Step 1: DrillThrough Report

Demo下载

分享到:
评论

相关推荐

    Microsoft RDL ReportBuilder3

    微软官方提供,用于依托SSRS设计rdl或者(rdlc)报表的工具。可以脱离Visual Studio提供的Report Designer。

    Report Designer 使用说明书

    《Report Designer 5.0u 使用说明书》详细解读与应用指南 一、Report Designer 5.0u概览 Report Designer 5.0u是一款专为数据报告设计和创建而开发的强大工具,它旨在帮助用户轻松高效地创建、编辑和管理各种复杂...

    ReportViewer (Reporting Service RDL/RDLC ) 例子

    这些报表可以基于RDL(Report Definition Language)或RDLC(Report Definition for Local Reports)格式,两者都是XML格式,用于定义报表的结构、样式和数据源。 **RDL与RDLC的区别** RDL文件是SQL Server ...

    微软的RDLC打印报表.rar

    RDLC前身是RDL,嵌套在sql中的一个ReportBuilder工具。 微软vs以前用水晶报表,慢慢开始推广自己的RDL、RDLC格式。 微软做了两种设计器:嵌入for visual studio的、独立于程序运行的。 另外还有一个第三方的设计器...

    C#利用RDL报表系统源码

    结合RDL(Report Definition Language)报表系统,我们可以创建强大的自定义报表解决方案。 RDL是微软SQL Server Reporting Services (SSRS) 使用的一种XML格式,用于定义和描述报表的结构、样式和数据源。它允许...

    C1report子报表C#实现

    subReport.FileName = "PathToYourSubReport.rdl"; // 替换为实际的子报表文件路径 // 设置子报表数据源 subReport.DataSource = someDataSource; // 这里的someDataSource应替换为实际的数据源 subReport.Data...

    Ruby-RDL一个轻量级的系统添加合约到Ruby中

    2. 契约:RDL支持预条件(在方法执行前检查的条件)和后条件(在方法执行后检查的条件)。这些契约可以确保方法的正确使用,例如,确保方法的输入符合预期,或者方法完成后状态的正确性。通过这种方式,RDL可以捕获...

    RDL WIN2008R2 SP1漏洞解决补丁包

    RDL WIN2008R2 SP1漏洞解决补丁包 先安装kb5039339,后安装kb5040498,打完了部分电脑会出现引导区错误,需要工具重新修复一下。或者先把引导区需要的数字签名先禁用。

    SQL Server 2008 商业智能与实战\快速入门 之五 使用Report Builder设计报表

    Report 项目需要创建一个项目文件,其中包含 .SLN、.SUO、RDL 等文件,而 Report Builder 2.0 只需要创建一个 RDL 文件。 Report Builder 的报表设计工具 Report Builder 2.0 是一个类似 Office 的简单易用的报表...

    Python库 | rdl-1.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:rdl-1.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    rdl:Ruby的类型,类型检查和协定

    在RDL中,类型可用于装饰方法: require 'rdl'extend RDL :: Annotate # add annotation methods to current scopetype '(Integer, Integer) -> String'def m ( x , y ) ... end 这表明如果给定两个Integer参数,则...

    RDL:很棒的东西!

    RDL,全称为Report Definition Language,是微软SQL Server Reporting Services(SSRS)中的一种XML格式,用于定义报表的结构、样式和数据源。RDL文件是报表设计的核心,它允许开发人员通过编程方式创建和控制复杂的...

    rdl-engine_source

    【rdl-engine_source】是一个专为开发者设计的工具,它允许在没有安装Report Service或特定rdlc运行环境的情况下,进行rdlc报表的开发工作。这个工具的出现极大地简化了rdlc报表的创建流程,提高了开发效率,使得在...

    Report Definition Language Specification

    报告定义语言(Report Definition Language,简称RDL)是一种XML格式,用于定义和设计报表的结构、样式和数据源。RDL被广泛应用于SQL Server Reporting Services(SSRS)和其他类似的报表生成工具中,允许开发人员...

    ActiveReport报表使用案例

    在Demo中,可能有保存的报表设计文件(.rdl或.gdl),这些文件可以直接在Visual Studio或其他支持ActiveReport的IDE中打开编辑。 3. **数据源连接**:示例可能涵盖了连接不同类型的数据源,例如SQL Server、Oracle...

    ActiveReport设计器VB6源码,不需安装ActiveReport

    同时,为了确保用户能够在应用程序内方便地保存和加载报表设计,源码可能还包含了对ActiveReport报表文件(.rdl或.rdx)的读写操作。 ARDesigner作为压缩包中的文件,很可能是这个报表设计器的主程序或核心组件。...

    人民电器RDL20断路器样本.pdf

    人民电器RDL20断路器样本pdf,人民电器RDL20断路器选型参数介绍

    人民电器RDL18断路器样本.pdf

    人民电器RDL18断路器样本pdf,人民电器RDL18断路器选型参数介绍

    ReportViewer报表各版本必须的dll文件vs2012报表rdl

    标题中的“ReportViewer报表各版本必须的dll文件vs2012报表rdl”涉及到的是微软的ReportViewer控件在VS2012环境下与RDL(Report Definition Language)报表的相关内容。ReportViewer是一个用于在ASP.NET或Windows ...

Global site tag (gtag.js) - Google Analytics