XtraReport
学习笔记
Jephy
2011/8/19
本文档是学习过程中所做笔记,对于更多深层次的知识还为了解清楚,有待大家共同学
习研究。
1
目录
一、基本概念............................................................................................................... 1
二、页面构建时用到的事件....................................................................................... 1
三、报表结构............................................................................................................... 2
四、报表常用属性....................................................................................................... 3
五、报表控件............................................................................................................... 4
1.WEB 页面控件...................................................................................................... 4
2.报表设计时控件:..............................................................................................4
六、报表类型............................................................................................................... 5
1.静态报表.................................................................................................................5
2.表格报表................................................................................................................5
3.主从报表.................................................................................................................5
4.多栏报表.................................................................................................................5
5.交叉表报表.............................................................................................................6
6.并列报表.................................................................................................................6
7.DRILL-THROUGH 报表................................................................................................ 6
8.邮件合并报表.........................................................................................................6
9.标签报表.................................................................................................................6
七、报表数据源........................................................................................................... 7
1.数据源..................................................................................................................7
2.绑定数据的方法..................................................................................................7
2.1.使用 .NET 数据提供程序绑定报表...............................................................7
2.2.把报表绑定到 List...........................................................................................7
2.3.把报表绑定到 XML 数据...............................................................................7
八、数据绑定与报表预览........................................................................................... 8
1.设计时绑定..........................................................................................................8
2.运行时绑定..........................................................................................................8
3.CHART 控件绑定....................................................................................................8
九、数据呈现............................................................................................................... 9
1.数据分组与排序..................................................................................................9
2.数据筛选............................................................................................................10
2.1.在报表级筛选.............................................................................................. 10
2.2.在数据源级筛选.......................................................................................... 10
3.数据格式化........................................................................................................10
十、外观设置............................................................................................................. 10
1.外观属性............................................................................................................10
2
2.样式....................................................................................................................11
2.1 奇偶行样式.................................................................................................. 11
2.2.样式表.......................................................................................................... 11
3.附条件格式设置................................................................................................11
十一、交互导航......................................................................................................... 11
1.超链接................................................................................................................11
2.文档地图............................................................................................................12
十二、其他................................................................................................................. 12
十三、应用程序部署................................................................................................. 12
3
XtraReport
一、基本概念:
XtraReports 中的每个报表都由 XtraRepot 类的一个实例表示,或者由该类的子
类来表示(这种情况更常见)。 因此,每个报表都作为带区的容器使用,而每个带
区中都包含报表控件。XtraReports 中的每个报表都可以被绑定到数据,或者不
绑定。 要创建绑定报表,则首先要把报表绑定到数据源,然后指定每个报表控
件的数据绑定选项。报表控件、带区 和报表自身的所有大小和位置,都以报表
内相同的单位度量。 度量单位由报表的 XtraReport.ReportUnit 属性指定,可以
设置为下列类型之一:百分之一英寸:当 ReportUnit 属性值被设置为
ReportUnit.HundredthsOfAnInch 时使用。 十分之一毫米:当 ReportUnit 属性值
被设置为 ReportUnit.TenthsOfAMillimeter 时使用。
二、页面构建时用到的事件
Before Print:
在 预览/打印/导出 报表期间,在 XRControl 对象创建其图像之前,
XRControl.BeforePrint 事件发生,主要用于以程序方式改变报表的属性、带区
的属性、以及存放在 DetailBand 细节带区中的控件的属性。
在此事件中可以执行大部分任务 (例如改变 XRControl.Visible、
XRControl.BackColor、XRControl.BorderColor 以及其他属性),可以被轻松执
行,而 无需编写代码,只是使用 格式设置规则。 此外,BeforePrint 事件可
以被接管,从而重新指派控件的样式,并且调整其 XRControl.LocationF 属性。
1
在 BeforePrint 事件中,可以使用 XtraReportBase.GetCurrentColumnValue
方法为数据绑定控件获取数据列的当前值。 注意,在此事件中,修改控件的绑
定信息就太迟了。 因此,对于数据绑定控件,可以只调整其静态文本。
示例代码:
private void xrLabel1_BeforePrint(object sender, PrintEventArgs e)
{
if (Convert.ToDouble(this.GetCurrentColumnValue("UnitPrice")) > 30)
{
XRControl control = this.FindControl("xrLabel1", true);
control.LocationF = new PointF(15F, 15F);
control.Styles.Style = this.StyleSheet[0];
}
}
三、报表结构
整个报表是由多个绑定带区组成,绑定带区如下:
绑定带区
TopMarginBand
ReportHeaderBand
PageHeaderBand
GroupHeaderBand
DetailBand
DetailReportBand
GroupFooterBand
ReportFooterBand
说明
每个页面上面都显示的空白(天头),在 PageHeaderBand
或者 ReportHeaderBand 上面
在报表起始位置(报表头), 此带区被设计用于显示某些
概述信息,例如报表的封面。
在 每 个 页 面 的 上 方 ( 页 眉 ), 在 TopMarginBand 或 者
ReportHeaderBand 下方
在每组的起始位置,或者在分跨多个页时而位于组的上方
(分组标头)。 此带区指定分组标准,并被用于显示每组
记录起始位置的信息
在页面上所有其他带区之间(细节)。 此带区每行只显示
绑定数据源中的一条记录,或者当没有为报表指定数据源
时而简单地持有非绑定控件。
在 DetailBand 的下方(从表),被设计用于在创建主/从报
表时持有从报表
在每组的结束位置,或者在分跨多个页时而位于组的下方
(分组脚注)。 此带区主要被设计用于显示每组的总结信
息。
在报表结束位置(报表脚注)。 此带区被设计用于显示某
些终极信息,例如报表总结。
2
PageFooterBand
在每个页面的下方(页脚)在 ReportFooterBand 下方和
BottomFooterBand 上方,此带区被设计用于从之前页面接
续的页码或表尾
BottomMarginBand 每个页面底部的空白(地脚),在 PageFooterBand 的下方。
四、报表常用属性
属性
BackColor
Bands
BorderColor
BorderDashStyle
Borders
BorderWidth
CalculatedFiled
DataAdapter
DataMember
DataSource
DataSourceSchema
DesignerOptions
说明
设置报表控件的背景色
报表包含的带区,用于放置各种控件(集合)
报表中控件边框颜色
报表中控件边框样式
报表中控件边框
边框宽度
计算字段,主要被用于 data-aware(数据感
知) 报表中(集合)
数据源 Adapter 对象
数据源中用于绑定报表的具体表
报表数据源
指定数据源框架文件(XML/XSD 文件)
ShowDesignerHints(bool):设计时显示提示
ShowDesignerWarnings(bool):设计时显示
警告提示
ShowPrintingWarnings(bool):打印提示
设置打印的页数
DetailPrintCount
DetailPrintCountOnEmptyDataSource 当数据源为空时打印的次数
DrawGrid(bool)
ExportOptions
FilterString
PageColor
FormattingRules
FormattingSheet
PagerKind
Parameters
PrintOnEmptyDatasource(bool) 设置当数据源为空时是否打印
RequestParameters(bool)
SnapGridSize
SnappingModel
SnapToGrid(bool)
StyleSheet
设置是否要绘制对齐网格
用于设置报表导出时的相关属性(集合)
报表数据过滤字符串
报表页面颜色
设置格式化样式
格式化样式集合
设置纸张类型
设置报表参数
设置是否在参数 Submit 后再创建报表
设置报表对齐网格大小
设置对齐模式(SnapToLines&SnapToGrid)
设置是否对齐到网格
设置控件引用的样式
3
StyleSheetPath
TextAlignment
Watermark
XmlDataPath
五、报表控件
设置引用外部样式文件
设置报表字体对齐方式
(属性集合)用于设置报表的水印,包括图
片和文字
设置数据源为 Xml 文件的数据源路径
报表控件在 Web 应用程序中分为 Web 页面控件和报表设计控件
1.Web 页面控件
控件
说明
ReportDocumentMap 用于在 Web 页面显示报表中的书签,需要指定该控
件的 ReportViewer 属性。
ReportParameterPanel 用于 Web 页面传递参数给报表,需要指定该控件的
ReportViewer 属性。
用于 Web 页面呈现报表,需指定该控件的 Report
属性为要显示的报表实例。
与 ReportViewer 控件配合使用,实现翻页,打印,
导出等功能。
ReportViewer
ReportToolbar
2.报表设计时控件:
控件
XRLabel
XRCheckBox
XRRichText
XRPictureBox
XRPanel
XRTable
XRLine
XRShape
XRBarCode
说明
标签控件,允许把单行或多行文本插入到报表中。此文本
可能是静态的,也可能是动态绑定。
复选框控件,被设计用于在报表中显示 True/False 或
选中/未选中/不确定 状态。
富文本控件,被设计用于显示、输入和操作设置格式的文
本。
图片框控件,用于显示报表中的图像。
面板控件,可以包含其他报表控件。
表格控件,用于插入表格 (包括行和单元格)。
线条控件,用于在报表中绘制垂直线、水平线或斜线。
形状控件,用于把简单的图形嵌入到报表中。
条形码控件,允许把许多不同的条形码类型插入到报表
中。
4
XRZipCode
XRChart
XRPivotGrid
XRPageInfo
邮政编码控件,允许把表示邮政编码的数字插入到报表
中。
图表控件,可以用于以图形视图呈现数据。
透视网格控件,用于以交叉表的形式呈现下层数据源中的
数据,从而创建交叉表报表。
显示某些辅助信息的控件。 使用此控件可以在报表中显
示页码、当前日期或用户信息。
分页符控件,用作标记报表应开始新页面。
XRPageBreak
XRCrossBandLine 可以跨多个带区的线条控件。
XRCrossBandBox 可以跨多个带区的方框控件。
XRSubReport
子报表控件,用于显示子报表。
六、报表类型
1. 静态报表 是简单呈现某些静态信息的报表。 这种报表通常不绑 到数据源,
并且在一页上显示单个控件或一组控件。如果需要多次重复相同的报表内容,
那么使用 XtraReportBase.DetailPrintCount 属性。
2. 表格报表 是以表格形式呈现信息的报表。 这些信息被存储在报表的绑定数
据源中(也可以运行时从数据库中读取),并且通常此数据源不分层级 (例
如,只包含一个数据表)。使用 XRTable 控件,并且绑定表格的单元格来呈
现数据源中的数据;
3. 主从报表 如果某个报表被用于显示分层级的数据源中的数据,则通常把它称
为 主/从 报表。创建主/从报表的两种主要方法。 第一种方法: 是以使用 从
报表带区为基础(使用 DetailReportBand 带区),当数据源包含主实例和从实
例之间的 ADO.NET 关系时,使用这种方法使用。 第二种方法:是创建两个
不同的报表类,并且把从报表作为子报表而合并到主报表中(使用
XRSubReport 控件,指定此控件的 ReportSource 属性为子报表)。
4. 多栏报表 是以多个列或行 (取决于当前的多栏设置) 呈现数据的报表。 这
种报表是有用的,例如,当每个细节带区都只显示少量数据、并且需要在一
列的右侧打印下一个细节带区的外观时,这样就能充分利用整个页面宽度。
此外,当创建有相同内容的 卡片或邮寄地址签、并且需要在许多报表页面上
打印大量相同尺寸的卡片时,多栏报表也是有用的。
由于多栏布局主要影响报表的细节带区,因此可以通过 Detail 带区的
5