RDLC报表使用手册Word文档格式.docx

上传人:b****4 文档编号:7928635 上传时间:2023-05-09 格式:DOCX 页数:52 大小:1.26MB
下载 相关 举报
RDLC报表使用手册Word文档格式.docx_第1页
第1页 / 共52页
RDLC报表使用手册Word文档格式.docx_第2页
第2页 / 共52页
RDLC报表使用手册Word文档格式.docx_第3页
第3页 / 共52页
RDLC报表使用手册Word文档格式.docx_第4页
第4页 / 共52页
RDLC报表使用手册Word文档格式.docx_第5页
第5页 / 共52页
RDLC报表使用手册Word文档格式.docx_第6页
第6页 / 共52页
RDLC报表使用手册Word文档格式.docx_第7页
第7页 / 共52页
RDLC报表使用手册Word文档格式.docx_第8页
第8页 / 共52页
RDLC报表使用手册Word文档格式.docx_第9页
第9页 / 共52页
RDLC报表使用手册Word文档格式.docx_第10页
第10页 / 共52页
RDLC报表使用手册Word文档格式.docx_第11页
第11页 / 共52页
RDLC报表使用手册Word文档格式.docx_第12页
第12页 / 共52页
RDLC报表使用手册Word文档格式.docx_第13页
第13页 / 共52页
RDLC报表使用手册Word文档格式.docx_第14页
第14页 / 共52页
RDLC报表使用手册Word文档格式.docx_第15页
第15页 / 共52页
RDLC报表使用手册Word文档格式.docx_第16页
第16页 / 共52页
RDLC报表使用手册Word文档格式.docx_第17页
第17页 / 共52页
RDLC报表使用手册Word文档格式.docx_第18页
第18页 / 共52页
RDLC报表使用手册Word文档格式.docx_第19页
第19页 / 共52页
RDLC报表使用手册Word文档格式.docx_第20页
第20页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

RDLC报表使用手册Word文档格式.docx

《RDLC报表使用手册Word文档格式.docx》由会员分享,可在线阅读,更多相关《RDLC报表使用手册Word文档格式.docx(52页珍藏版)》请在冰点文库上搜索。

RDLC报表使用手册Word文档格式.docx

2、RDLC简单Demo

本文所有RDLC例子都是基于VS2005C#,所有ReportViewer的处理模式都是Local模式。

本报表Demo显示上文中提到的RDLC手册各节内容,下述为Demo的详细steps。

1)新建项目,选择Windows应用程序项目类型,输入工程名称RDLCDev;

2)修改Form1窗体名称为FrmRdlcUserGuide,在工具箱—>

数据Tab选项卡中选择ReportViewer控件,将其拖入到FrmRdlcUserGuide,默认命名为reportViewer1,调整ReportViewer控件的大小和布局;

3)在解决方案资源管理器中选择RDLCDev工程,鼠标右击RDLCDev工程,添加新建项,在添加新项模板中选择“报表”,取名为rdlcuserguide.rdlc,单击添加按钮,然后在解决方案资源管理器中RDLCDev工程下会增加一个rdlcuderguide.rdlc文件,并且会自动打开RDLC设计器;

4)在RDLC设计器中添加11个TextBox控件,1个作为标题,其余10个作为RDLC使用手册具体内容,对每个TextBox控件进行TextAlign、Color、BorderStyle、Font和TextDecoration等相关属性设置,设计完毕之后,大致如下图所示。

5)在FrmRdlcUserGuide窗体Load事件中添加下述代码

privatevoidForm1_Load(objectsender,EventArgse)

{

this.reportViewer1.ProcessingMode=Microsoft.Reporting.WinForms.ProcessingMode.Local;

this.reportViewer1.LocalReport.ReportPath="

rdlcuserguide.rdlc"

;

this.reportViewer1.RefreshReport();

}

6)编译、运行RDLCDev工程,运行结果大致如下图所示。

 

3、RDLC常用控件介绍

RDLC设计工具箱上总共有9种控件:

文本框(TextBox)、折线(Line)、表(Table)、矩阵(Matrix)、矩形(Rectangle)、列表(List)、子报表(SubReport)、图表控件(Chart)、图像控件(Image)。

下图ctlsDemo.rdlc设计器所示为所有控件的设计演示。

1)由于表格控件、矩阵控件、列表控件和图表控件必须填充数据集,因此把所有控件布局完毕之后,创建一个数据集。

解决方案资源管理器中,选中RDLCDev工程,右击添加新建项,在新建项类型模板里选择“数据集”,取名“ctlsDemo.xsd”,单击“添加”。

ctlsDemo.xsd添加完毕之后,在解决方案资源管理器中会增加一个ctlsDemo.xsd文件,并前VSIDE会自动打开ctlsDemo.xsd设计页面。

在设计页面中右击,添加Datatable,将其命名为vSales,该表描述的是产品的销售额信息,为vSales表添加列,列信息如下:

ProdCatSystem.String

SubCatSystem.String

OrderYearSystem.Int32

OrderQtrSystem.String

SalesSystem.Double

2)文本框控件、折线控件、矩形控件使用相对简单,这里不细说;

3)Image控件,现在RDLC设计器模式下,选择“报表”菜单,“嵌入图像”,在“嵌入图像”对话框中,载入一个本地图像文件即可。

然后设置Image控件的Source属性为Embedded,设置Value属性为刚才处理的嵌入图像即可。

当然还有别的方式可以显示图像,大家可以Google一下,关键字为RDLC、嵌入图像;

4)图表控件,使用图表控件的一个关键是要设置好图表属性页面中的数据TAB页相关内容。

主要有值、类别组和序列组定义,大家可以参考Demo;

5)表格控件、矩阵控件和子报表控件,在后续内容中会详细介绍;

4.1表格控件使用介绍

1)Table控件是RDLC报表显示数据的一个核心控件,关于Table控件,在微软提供的RDLC规范里有详细的介绍,其大致内容可以用下述的一张类UML图来表示;

2)新建报表文件,命名为ctlTableDemo.rdlc;

3)在ctlTableDemo.rdlc设计器中,拖入Table控件,默认情况下是3行3列,其中第1行为表头行(我们理解为列标题行),第二行为详细信息行(我们理解为报表内容展示区域),第三行为表尾行(我们理解为汇总区域)。

可以整行选中,然后右击鼠标添加行或者删除行,也可以整列选中,然后右击鼠标添加或者删除列。

上文中提到的数据集合有5个字段,因此需要5列来显示,为此需要增加两列。

4)在数据源窗口中(如果没有显示的话,选择【数据】菜单下的【显示数据源】即可)选择上文中创建的ctlsDemo.xsd数据集,将ProdCat、SubCat、OrderYear、OrderQtr和Sales分别拖入到Table控件的详细信息行的不同列中去。

5)设置标题行文字显示都居中,Sales的内容显示右对齐,ProdCat、SubCat、OrderYear、OrderQtr和Sales文本框的字体颜色全部设置成Blue,Sales文本框由于显示的内容为销售额,因此需设置数字显示格式,小数位数。

鼠标右击Sales文本框,选择【属性】,在文本框属性窗口中,选择格式Tab页,在格式代码处,选择数字1,234.00格式即可,选择完毕之后该文本框的数字就以逗号千分位作为分割符,保留2位小数显示,效果如下图所示。

6)插入一个组实现分组统计功能。

选中整行,鼠标右击,选择【插入组】,弹出分组和排序属性对话框,设置分组名称、分组方式、是否显示组头或者组尾等属性即可,本文分组设置如下:

·

分组名称:

table1_Group1

分组表达式:

=Fields!

ProdCat.Value;

SubCat.Value;

OrderYear.Value,实现产品年度销售额汇总统计功能。

不显示组头、显示组尾(至于组头、组尾是个什么样的东西,大家只要动手试一下就一目了然了)

在textbox15中输入汉字“合计”,在textbox16文本框中输入合计表达式=Sum(CDbl(Fields!

Sales.Value)),设置完之后效果如下图所示。

7)新建窗体FrmCtlTableDemo,然后在该窗体上添加ReportViewer控件,在窗体FrmCtlTableDemo代码窗口里输入以下代码:

privatevoidFrmCtlTableDemo_Load(objectsender,EventArgse)

this.reportViewer1.LocalReport.ReportPath=@"

rdlc\ctlTableDemo.rdlc"

//

reportViewer1.LocalReport.DataSources.Add(newReportDataSource("

ctlsDemo_vSales"

LoadData()));

privateDataTableLoadData()

DataSetdataSet=newDataSet();

dataSet.ReadXml(@"

data\ctlsDemo.xml"

);

returndataSet.Tables[0];

8)运行效果如下图所示

4.2矩阵控件使用介绍

1)矩阵控件主要用于显示CrossTable之类的报表,因此其列数可以是Static的,也可以是Dynamic并且Cangrow的,关于矩阵控件,在RDLC协议规范里也有介绍,其大致内容可以用下图表示。

2)新建报表文件,命名为ctlMatrixDemo.rdlc;

3)在ctlMatrixDemo.rdlc设计器中,拖入Matrix控件,默认情况下是2行2列,左上角单元格为空白区域(通常用来显示报表摘要信息如产品/年度等),右上单元格显示为“列”,单击此处可以增加列分组,左下单元格显示为“行”,单击此处可以添加行分组,右下单元格显示为“数据”,单击此处可以添加静态行、静态列。

4)在矩阵左上角单元格空白区域拖入矩形控件,然后在该矩形控件中拖入一个折线控件和两个文本框控件,折线当做矩形的对角线,两个文本框内容为产品和年度分布在折线两侧。

5)增加两个行分组,分别为matrix1_RowGroup1和matrix1_RowGroup2,matrix1_RowGroup1的表达式为=Fields!

ProdCat.Value,matrix1_RowGroup2的表达式为=Fields!

SubCat.Value。

6)增加两个列分组,分别为matrix1_ColumnGroup1何matrix1_ColumnGroup2,matrix1_ColumnGroup1的表达式为=Fields!

OrderYear.Value,matrix1_ColumnGroup2的表达式为=Fields!

OrderQtr.Value。

7)在“数据”单元格中编辑表达式=Sum(CDbl(Fields!

Sales.Value))

8)设计完之后,效果如下图所示;

9)新建窗体FrmCtlMatrixDemo,然后在该窗体上添加ReportViewer控件,在窗体FrmCtlMatrixDemo代码窗口里输入以下代码:

privatevoidFrmCtlMatrixDemo_Load(objectsender,EventArgse)

rdlc\ctlMatrixDemo.rdlc"

10)运行效果如下图所示

4.3子报表控件使用介绍

子报表作为主报表的一个补充,在显示明细内容的时候比较管用,本文从如何填充子报表数据,如何传递参数两方面介绍子报表如何使用。

1)新建RDLC报表,命名为subReportDemo.rdlc;

2)在subReportDemo.rdlc设计器中,拖入一个文本框和一个子报表控件;

3)设置文本框的文本显示为“子报表控件演示”;

4)设置子报表控件属性,主要设置其“子报表”的值,这里设为上文讲到的ctlTableDemo报表,效果如下图所示;

5)新建一个窗体FrmSubReportDemo,添加如下代码

privatevoidFrmCtlSubReportDemo_Load(objectsender,EventArgse)

reportViewer1.LocalReport.SubreportProcessing+=newSubreportProcessingEventHandler(LocalReport_SubreportProcessing);

rdlc\subReportDemo.rdlc"

voidLocalReport_SubreportProcessing(objectsender,SubreportProcessingEventArgse)

e.DataSources.Add(newReportDataSource("

}

这里,区别于其它显示RDLC报表程序的代码就是对子报表的处理,本文在FrmCtlSubReportDemo_Load事件里添加了一个对子报表事件的处理:

reportViewer1.LocalReport.SubreportProcessing+=newSubreportProcessingEventHandler(LocalReport_SubreportProcessing);

6)关于子报表参数如何传递,在RDLC报表参数介绍一文中介绍;

7)运行效果如下图所示

4、RDLC参数介绍

5.1报表参数处理

1)修改上文提高的ctlTableDemo.rdlc报表为例,该报表用于显示产品每季度的销售额。

修改该报表,给该报表添加一个参数prod_cat,用于过滤只显示产品系统为参数prod_cat值对应的产品季度销售额。

2)在ctlTableDemo.rdlc设计器中,选择【报表】菜单,【报表参数】菜单,在报表参数界面中,添加一个报表参数取名为“prod_cat_sub”,类型为String,提示信息为“输入产品系列名称”,允许空白值;

3)选中table1控件,鼠标右击,选择【属性】,选中【筛选器】Tab页,在筛选器列表中添加:

ProdCat.Value==Parameters!

prod_cat_sub.Value;

4)在FrmCtlTableDemo窗体中添加下述代码,用红色表示的2行代码:

ReportParameterp=newReportParameter("

prod_cat_sub"

"

Component"

reportViewer1.LocalReport.SetParameters(newReportParameter[]{p});

5)运行结果如下图所示,显示Component产品系列的产品季度销售额;

5.2子报表参数处理

1)在程序里面,本人还未找到直接向子报表传递参数的方法,但是可以用其它的方法变通实现,在主报表的subreport控件属性里面设置参数,通过主报表传递过去。

2)以上文提到的FrmSubReportDemo为例,其主报表为subReportDemo.rdlc,先设置主报表的参数。

在subReportDemo.rdlc报表设计器中选择【报表】,【报表参数】,在报表参数对话框中,增加一个参数。

参数名称为prod_cat,参数类型为String,参数提示为“输入产品系列名称”。

3)选中子报表subreport1,鼠标右击,选择【属性】,选择【参数】tab页,添加一个参数。

参数名称为“prod_cat_sub”,参数值=Parameters!

prod_cat.Value。

为此,主报表的参数名与子报表的参数名称要不一致。

4)打开subreport1对应的子报表设计器,本文为ctlTableDemo.rdlc,该ctlTableDemo.rdlc的参数在上文中已经设置,这里不再赘述。

5)运行效果如下图所示。

(源码网整理:

5、RDLC钻取功能实现

本Demo在主报表会显示一个部门列表(部门ID、部门名称等),然后通过钻取功能可实现特定部门的员工信息展示,下述为具体操作步骤。

1)准备好两个数据源,本文为2个xml文件(departments.xml和Employees.xml),这两个文件放在项目的Data文件夹下,特别注意的是这两个文件的【复制到输出目录】属性要选择“始终复制”,负责工程编译的时候不会将这两个文件生成到bin目录下。

2)新建报表,命名为“drillthrough.rdlc”;

新建一个数据集,命名为“departments”,在该数据集中添加一个Datatable,表结构如下:

DepartmentIDInt32

NameString

GroupNameString

ModifiedDateDateTime

rowguidString

3)在drillthrough.rdlc设计器中,拖入一个文本框和一个Table控件。

文本框显示内容为“DrillThroughDemo”,在Table控件中拖入DepartmentID和Name两列。

4)添加Name列的导航、钻取功能。

右击Name文本框,选择【属性】,选择【导航】Tab页,在“超级”处选择“跳至报表”(该报表为显示钻取实现的目标报表,假设为drillthroughDetail.rdlc,且已经存在,因此在实践时,可以再本操作之前,先创建一个drillthroughDetail.rdlc报表),设置“跳至报表”为drillthroughDetail,点击【参数】按钮,会弹出参数设置对话框。

在对话框中,添加一个参数,名称为DepartmentID,值为=Fields!

DepartmentID.Value;

5)设计drillthroughDetail.rdlc报表,先新建一个该报表对应的数据集,名称为employees,添加一个DataTable,名称为employee,employee表部分内容如下:

<

table>

EmployeeID>

1<

/EmployeeID>

FirstName>

Terri<

/FirstName>

AddressID>

/AddressID>

ShiftID>

/ShiftID>

LastName>

Duffy<

/LastName>

MiddleName>

Lee<

/MiddleName>

NameStyle>

false<

/NameStyle>

NationalIDNumber>

245797967<

/NationalIDNumber>

Title>

VPEngineering<

/Title>

HireDate>

1998-03-03T00:

00:

00.0000000-08:

00<

/HireDate>

BirthDate>

1961-09-01T00:

00.0000000-07:

/BirthDate>

LoginID>

adventure-works\Terri<

/LoginID>

EmailAddress>

Terri@adventure-works<

/EmailAddress>

DepartmentID>

/DepartmentID>

MaritalStatus>

S<

/MaritalStatus>

EmergencyContactName>

TadOrman<

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2