Xtrareport报表的⼀些属性及控件
基本概念:
XtraReports 中的每个报表都由 XtraRepot 类的⼀个实例表⽰,或者由该类的⼦类来表⽰(这种情况更常见)。 因此,每个报表都作为带区的容器使⽤,⽽每个带区中都包含报表控件。XtraReports 中的每个报表都可以被绑定到数据,或者不绑定。 要创建绑定报表,则⾸先要把报表绑定到数据源,然后指定每个报表控件的数据绑定选项。报表控件、带区 和报表⾃⾝的所有⼤⼩和位置,都以报表内相同的单位度量。 度量单位由报表的 XtraReport.ReportUnit 属性指定,可以设置为下列类型之⼀:百分之⼀英⼨:当 ReportUnit 属性值被设置为ReportUnit.HundredthsOfAnInch 时使⽤。 ⼗分之⼀毫⽶:当 ReportUnit 属性值被设置为 ReportUnit.TenthsOfAMillimeter 时使⽤。
页⾯构建时⽤到的事件
Before Print:
在 预览/打印/导出 报表期间,在 XRControl 对象创建其图像之前,XRControl.BeforePrint 事件发⽣,主要⽤于以程序⽅式改变报表的属性、带区的属性、以及存放在 DetailBand 细节带区中的控件的属性。
在此事件中可以执⾏⼤部分任务 (例如改变 XRControl.Visible、XRControl.BackColor、XRControl.Bord
erColor 以及其他属性),可以被轻松执⾏,⽽ ⽆需编写代码,只是使⽤ 格式设置规则。 此外,BeforePrint 事件可以被接管,从⽽重新指派控件的样式,并且调整其XRControl.LocationF 属性。
在 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每个页⾯上⾯都显⽰的空⽩(天头),在PageHeaderBand或者ReportHeaderBand上⾯ReportHeaderBand在报表起始位置(报表头), 此带区被设计⽤于显⽰某些概述信息,例如报表的封⾯。PageHeaderBand在每个页⾯的上⽅(页眉),在TopMarginBand或者ReportHeaderBand下⽅
GroupHeaderBand 在每组的起始位置,或者在分跨多个页时⽽位于组的上⽅(分组标头)。 此带区指定分组标准,并被⽤于显⽰每组记录起始位置的信息
DetailBand 在页⾯上所有其他带区之间(细节)。 此带区每⾏只显⽰绑定数据源中的⼀条记录,或者当没有为报表指定数据源时⽽简单地持有⾮绑定控件。
DetailReportBand在DetailBand的下⽅(从表),被设计⽤于在创建主/从报表时持有从报表
GroupFooterBand 在每组的结束位置,或者在分跨多个页时⽽位于组的下⽅(分组脚注)。 此带区主要被设计⽤于显⽰每组的总结信息。
ReportFooterBand在报表结束位置(报表脚注)。 此带区被设计⽤于显⽰某些终极信息,例如报表总结。
PageFooterBand 在每个页⾯的下⽅(页脚)在ReportFooterBand下⽅和BottomFooterBand上⽅,此带区被设计⽤于从之前页⾯接续的页码或表尾
BottomMarginBand每个页⾯底部的空⽩(地脚),在PageFooterBand的下⽅。
报表常⽤属性
属性说明
BackColor设置报表控件的背景⾊
Bands报表包含的带区,⽤于放置各种控件(集合)
BorderColor报表中控件边框颜⾊
控件的使用BorderDashStyle报表中控件边框样式
Borders报表中控件边框
BorderWidth边框宽度
CalculatedFiled计算字段,主要被⽤于 data-aware(数据感知) 报表中(集合)DataAdapter数据源Adapter对象
DataMember数据源中⽤于绑定报表的具体表
DataSource报表数据源
DataSourceSchema指定数据源框架⽂件(XML/XSD⽂件)
DesignerOptions ShowDesignerHints(bool):设计时显⽰提⽰ShowDesignerWarnings(bool):设计时显⽰警告提⽰ShowPrintingWarnings(bool):打印提⽰
DetailPrintCount设置打印的页数DetailPrintCountOnEmptyDataSource当数据源为空时打印的次数
DrawGrid(bool)设置是否要绘制对齐⽹格ExportOptions⽤于设置报表导出时的相关属性(集合)
FilterString报表数据过滤字符串
PageColor报表页⾯颜⾊
FormattingRules设置格式化样式
FormattingSheet格式化样式集合
PagerKind设置纸张类型
Parameters设置报表参数
PrintOnEmptyDatasource(bool)设置当数据源为空时是否打印
RequestParameters(bool)设置是否在参数Submit后再创建报表
SnapGridSize设置报表对齐⽹格⼤⼩
SnappingModel设置对齐模式(SnapToLines&SnapToGrid)
SnapToGrid(bool)设置是否对齐到⽹格
StyleSheet设置控件引⽤的样式
StyleSheetPath设置引⽤外部样式⽂件
TextAlignment设置报表字体对齐⽅式
Watermark(属性集合)⽤于设置报表的⽔印,包括图⽚和⽂字
XmlDataPath设置数据源为Xml⽂件的数据源路径
报表控件
报表控件在Web应⽤程序中分为Web页⾯控件和报表设计控件
1.Web页⾯控件
控件说明
ReportDocumentMap⽤于在Web页⾯显⽰报表中的书签,需要指定该控件的ReportViewer属性。ReportParameterPanel⽤于Web页⾯传递参数给报表,需要指定该控件的ReportViewer属性。ReportViewer⽤于Web页⾯呈现报表,需指定该控件的Report属性为要显⽰的报表实例。ReportToolb
ar与ReportViewer控件配合使⽤,实现翻页,打印,导出等功能。
2.报表设计时控件:
控件说明
XRLabel标签控件,允许把单⾏或多⾏⽂本插⼊到报表中。此⽂本可能是静态的,也可能是动态绑定。
XRCheckBox复选框控件,被设计⽤于在报表中显⽰ True/False 或 选中/未选中/不确定 状态。
XRRichText富⽂本控件,被设计⽤于显⽰、输⼊和操作设置格式的⽂本。
XRPictureBox图⽚框控件,⽤于显⽰报表中的图像。
XRPanel⾯板控件,可以包含其他报表控件。
XRTable表格控件,⽤于插⼊表格 (包括⾏和单元格)。
XRLine线条控件,⽤于在报表中绘制垂直线、⽔平线或斜线。
XRShape形状控件,⽤于把简单的图形嵌⼊到报表中。
XRBarCode条形码控件,允许把许多不同的条形码类型插⼊到报表中。
XRZipCode控件,允许把表⽰的数字插⼊到报表中。
XRChart图表控件,可以⽤于以图形视图呈现数据。
XRPivotGrid透视⽹格控件,⽤于以交叉表的形式呈现下层数据源中的数据,从⽽创建交叉表报表。XRPageInfo显⽰某些辅助信息的控件。 使⽤此控件可以在报表中显⽰页码、当前⽇期或⽤户信息。XRPageBreak分页符控件,⽤作标记报表应开始新页⾯。
XRCrossBandLine可以跨多个带区的线条控件。
XRCrossBandBox可以跨多个带区的⽅框控件。
XRSubReport⼦报表控件,⽤于显⽰⼦报表。
报表类型
1. 静态报表 是简单呈现某些静态信息的报表。 这种报表通常不绑 到数据源,并且在⼀页上显⽰单个控件或⼀组控件。如果需要多次重
复相同的报表内容,那么使⽤ XtraReportBase.DetailPrintCount 属性。
2. 表格报表 是以表格形式呈现信息的报表。 这些信息被存储在报表的绑定数据源中(也可以运⾏时从数据库中读取),并且通常此数据
源不分层级 (例如,只包含⼀个数据表)。使⽤ XRTable 控件,并且绑定表格的单元格来呈现数据源中的数据;
3. 主从报表如果某个报表被⽤于显⽰分层级的数据源中的数据,则通常把它称为 主/从 报表。创建主/从报表的两种主要⽅法。 第⼀种
⽅法: 是以使⽤ 从报表带区为基础(使⽤DetailReportBand带区),当数据源包含主实例和从实例之间的 ADO.NET 关系时,使⽤这种⽅法使⽤。 第⼆种⽅法:是创建两个不同的报表类,并且把从报表作为⼦报表⽽合并到主报表中(使⽤XRSubReport控件,指定此控件的ReportSource属性为⼦报表)。
4. 多栏报表 是以多个列或⾏ (取决于当前的多栏设置) 呈现数据的报表。 这种报表是有⽤的,例如,当每个细节带区都只显⽰少量数
据、并且需要在⼀列的右侧打印下⼀个细节带区的外观时,这样就能充分利⽤整个页⾯宽度。 此外,
当创建有相同内容的 卡⽚或邮寄地址签、并且需要在许多报表页⾯上打印⼤量相同尺⼨的卡⽚时,多栏报表也是有⽤的。
由于多栏布局主要影响报表的细节带区,因此可以通过 Detail 带区的 DetailBand.MultiColumn 属性来指定多栏模式。 要启⽤多栏模式,则把 MultiColumn.Mode 属性设置为除去 None 之外的其他取值
栏数固定,栏宽度相同并且被⾃动计算。
为此,应该把 MultiColumn.Mode 属性设置为 MultiColumnMode.UseColumnCount,并把 MultiColumn.ColumnCount 属性设置为所需的栏数。
⾃动计算栏数,所有栏的宽度都是相同的固定宽度。
为此,应该把 MultiColumn.Mode 属性设置为 MultiColumnMode.UseColumnWidth,并且把 MultiColumn.ColumnWidth 属性设置为所需的栏宽度。
5.交叉表报表 是以交叉表形式呈现信息的报表。 交叉表 (或透视表) 类似于简单的普通 数据绑定表格,但是改为在单个表格中呈现多维的分层级的信息,并含有每⾏和每列的⾃动排序、计数、合计和累计。使⽤XRPivotGrid控件,并为此控件指定数据源、绑定字段到列,同时要保证报表的数据源为NULL,如果两者使⽤相同的数据源,那么XRPivotGrid控件将被打印与数据源⾏数相同的次数。
6. 并列报表在报表中显⽰两栏相同的或者不同的信息,主要依赖于XRSubReport控件。
7. Drill-Through 报表类似于主从报表,但是⼦报表是通过超链接来访问的。超链接的设置将在下⾯数据绑定部分介绍。8. 邮件合并报表试图创建 e-mail 模板时,经常会遇到困难。 在这些模板中,某些⽂本是不变的,某些字段 (通常被使⽤预定义的标记括起来) 应该在创建⽂档时填充来源于数据库的数据。 此项功能也被称为 邮件合并,并且使⽤ XtraReports 可以轻松实现。
⼤体上,要创建嵌⼊字段,则需要把由 [中括号] 括起的数据字段名称插⼊到控件的⽂本中,如果在当前的数据上下⽂中,字段是有效的,那么当报表被预览或导出时,它将被替换为⼀个适当的数据值。
9. 标签报表此报表与多栏报表相类似。
报表数据源
1.数据源
通过 XtraReport 对象的 XtraReportBase.DataSource 属性把它绑定到数据源,⽽与特定的数据源类型和所使⽤的数据绑定⽅法⽆关。唯⼀的例外是当使⽤ XML 数据源时,需要指派到 XtraReportBase.XmlDataPath 属性,同时要求把 XtraReportBase.DataSource 属性设置为 null。
2.绑定数据的⽅法
2.1.使⽤ .NET 数据提供程序绑定报表
这种⽅法意味着数据被存储在数据库中。 使⽤已提供的两种数据适配器组件之⼀,就可以把报表绑定到这种数据:
OleDbDataAdapter,使⽤ OLE DB 访问公开的数据源;
SqlDataAdapter,被设计⽤于使⽤由 Microsoft SQL Server 7.0 或后续版本提供的数据源。
这些数据适配器都使⽤连接对象来绑定数据,并且能够⽣成包含数据表的 DataSet 对象。 然后通过把数据表 (或绑定到表的数据视图) 直接指派到 XtraReportBase.DataSource 属性,它们就可以被绑定报表。 也可以把⽣成的 DataSet 对象指派到
XtraReportBase.DataSource 属性,并且使⽤ XtraReportBase.DataAdapter 属性来指定数据适配器的名称。
2.2.把报表绑定到 List
在运⾏时刻创建的数据对象必须⽀持 IList、ITypedList 或 IBindingList 接⼝,并且被指派到 XtraReportBase.DataSource 属性。 注意,你不需要创建⾃定义的数据源对象。 例如,可以在运⾏时刻使⽤填充了数据的 DataTable 对象。
2.3.把报表绑定到 XML 数据
这种⽅法使⽤存储在 XML ⽂件中的数据。 可以以两种⽅式之⼀来访问这种数据。把 XtraReportBase.DataSource 属性值设置为根据XML ⽂件创建的数据集; 直接把 XML ⽂件指派到 XtraReportBase.XmlDataPath 属性。
数据绑定与报表预览
1.设计时绑定
在设计时绑定数据源,需要把相应的数据源添加到应⽤程序中,即在应⽤程序中添加DataSet程序集,然后在报表设计界⾯,把报表的数据源指定到相应的数据集上,打开Field List字段列表,将相应的字段⽤⿏标拖到相应的控件上即可。点击Preview 即可预览报表。
2.运⾏时绑定
在运⾏时绑定数据源,更具灵活性,它可以根据需要从数据库中读取有⽤的数据来呈现在报表上。对于运⾏时绑定数据源,其数据绑定操作要在报表的构造函数中完成。在报表设计器中只需把相应的控件放置好即可。报表控件中都有⼀个DataBindings属性,此属性的Add⽅法可以把数据绑定到控件上。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论