




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、xtrareport学习笔记jephy2011/8/19本文档是学习过程中所做笔记,对于更多深层次的知识还为了解清楚,有待大家共同学习研究。目录一、基本概念1二、页面构建时用到的事件1三、报表结构2四、报表常用属性3五、报表控件41web页面控件42报表设计时控件:4六、报表类型51.静态报表52.表格报表53.主从报表54.多栏报表55.交叉表报表66.并列报表67.drill-through 报表68.邮件合并报表69.标签报表6七、报表数据源71数据源72绑定数据的方法72.1.使用 .net 数据提供程序绑定报表72.2.把报表绑定到 list72.3.把报表绑定到 xml 数据7八、
2、数据绑定与报表预览81设计时绑定82运行时绑定83chart控件绑定8九、数据呈现91数据分组与排序92数据筛选102.1.在报表级筛选102.2.在数据源级筛选103数据格式化10十、外观设置101外观属性102样式112.1奇偶行样式112.2.样式表113附条件格式设置11十一、交互导航111超链接112文档地图12十二、其他12十三、应用程序部署12 xtrareport一、基本概念:xtrareports 中的每个报表都由 xtrarepot 类的一个实例表示,或者由该类的子类来表示(这种情况更常见)。 因此,每个报表都作为带区的容器使用,而每个带区中都包含报表控件。xtrarepo
3、rts 中的每个报表都可以被绑定到数据,或者不绑定。 要创建绑定报表,则首先要把报表绑定到数据源,然后指定每个报表控件的数据绑定选项。报表控件、带区 和报表自身的所有大小和位置,都以报表内相同的单位度量。 度量单位由报表的 xtrareport.reportunit 属性指定,可以设置为下列类型之一:百分之一英寸:当 reportunit 属性值被设置为 reportunit.hundredthsofaninch 时使用。 十分之一毫米:当 reportunit 属性值被设置为 reportunit.tenthsofamillimeter 时使用。二、页面构建时用到的事件before prin
4、t:在 预览/打印/导出 报表期间,在 xrcontrol 对象创建其图像之前,xrcontrol.beforeprint 事件发生,主要用于以程序方式改变报表的属性、带区的属性、以及存放在 detailband 细节带区中的控件的属性。在此事件中可以执行大部分任务 (例如改变 xrcontrol.visible、xrcontrol.backcolor、xrcontrol.bordercolor 以及其他属性),可以被轻松执行,而 无需编写代码,只是使用 格式设置规则。 此外,beforeprint 事件可以被接管,从而重新指派控件的样式,并且调整其 xrcontrol.locationf 属
5、性。在 beforeprint 事件中,可以使用 xtrareportbase.getcurrentcolumnvalue 方法为数据绑定控件获取数据列的当前值。 注意,在此事件中,修改控件的绑定信息就太迟了。 因此,对于数据绑定控件,可以只调整其静态文本。示例代码:private void xrlabel1_beforeprint(object sender, printeventargs e) if (convert.todouble(this.getcurrentcolumnvalue(unitprice) 30) xrcontrol control = this.findcontrol
6、(xrlabel1, true); control.locationf = new pointf(15f, 15f); control.styles.style = this.stylesheet0; 三、报表结构整个报表是由多个绑定带区组成,绑定带区如下:绑定带区说明topmarginband每个页面上面都显示的空白(天头),在pageheaderband或者reportheaderband上面reportheaderband在报表起始位置(报表头), 此带区被设计用于显示某些概述信息,例如报表的封面。pageheaderband在每个页面的上方(页眉),在topmarginband或者re
7、portheaderband下方groupheaderband在每组的起始位置,或者在分跨多个页时而位于组的上方(分组标头)。 此带区指定分组标准,并被用于显示每组记录起始位置的信息detailband在页面上所有其他带区之间(细节)。 此带区每行只显示绑定数据源中的一条记录,或者当没有为报表指定数据源时而简单地持有非绑定控件。detailreportband在detailband的下方(从表),被设计用于在创建主/从报表时持有从报表groupfooterband在每组的结束位置,或者在分跨多个页时而位于组的下方(分组脚注)。 此带区主要被设计用于显示每组的总结信息。reportfooterb
8、and在报表结束位置(报表脚注)。 此带区被设计用于显示某些终极信息,例如报表总结。pagefooterband在每个页面的下方(页脚)在reportfooterband下方和bottomfooterband上方,此带区被设计用于从之前页面接续的页码或表尾bottommarginband每个页面底部的空白(地脚),在pagefooterband的下方。四、报表常用属性属性说明backcolor设置报表控件的背景色bands报表包含的带区,用于放置各种控件(集合)bordercolor报表中控件边框颜色borderdashstyle报表中控件边框样式borders报表中控件边框borderwid
9、th边框宽度calculatedfiled计算字段,主要被用于 data-aware(数据感知) 报表中(集合)dataadapter数据源adapter对象datamember数据源中用于绑定报表的具体表datasource报表数据源datasourceschema指定数据源框架文件(xml/xsd文件)designeroptionsshowdesignerhints(bool):设计时显示提示showdesignerwarnings(bool):设计时显示警告提示 showprintingwarnings(bool):打印提示detailprintcount设置打印的页数detailpri
10、ntcountonemptydatasource当数据源为空时打印的次数drawgrid(bool)设置是否要绘制对齐网格exportoptions用于设置报表导出时的相关属性(集合)filterstring报表数据过滤字符串pagecolor报表页面颜色formattingrules设置格式化样式formattingsheet格式化样式集合pagerkind设置纸张类型parameters设置报表参数printonemptydatasource(bool)设置当数据源为空时是否打印requestparameters(bool)设置是否在参数submit后再创建报表snapgridsize设置
11、报表对齐网格大小snappingmodel设置对齐模式(snaptolines&snaptogrid)snaptogrid(bool)设置是否对齐到网格stylesheet设置控件引用的样式stylesheetpath设置引用外部样式文件textalignment设置报表字体对齐方式watermark(属性集合)用于设置报表的水印,包括图片和文字xmldatapath设置数据源为xml文件的数据源路径五、报表控件报表控件在web应用程序中分为web页面控件和报表设计控件1web页面控件控件说明reportdocumentmap用于在web页面显示报表中的书签,需要指定该控件的reportvie
12、wer属性。reportparameterpanel用于web页面传递参数给报表,需要指定该控件的reportviewer属性。reportviewer用于web页面呈现报表,需指定该控件的report属性为要显示的报表实例。reporttoolbar与reportviewer控件配合使用,实现翻页,打印,导出等功能。2报表设计时控件:控件说明xrlabel标签控件,允许把单行或多行文本插入到报表中。此文本可能是静态的,也可能是动态绑定。xrcheckbox复选框控件,被设计用于在报表中显示 true/false 或 选中/未选中/不确定 状态。xrrichtext富文本控件,被设计用于显示、
13、输入和操作设置格式的文本。xrpicturebox图片框控件,用于显示报表中的图像。xrpanel面板控件,可以包含其他报表控件。xrtable表格控件,用于插入表格 (包括行和单元格)。xrline线条控件,用于在报表中绘制垂直线、水平线或斜线。xrshape形状控件,用于把简单的图形嵌入到报表中。xrbarcode条形码控件,允许把许多不同的条形码类型插入到报表中。xrzipcode邮政编码控件,允许把表示邮政编码的数字插入到报表中。xrchart图表控件,可以用于以图形视图呈现数据。xrpivotgrid透视网格控件,用于以交叉表的形式呈现下层数据源中的数据,从而创建交叉表报表。xrpa
14、geinfo显示某些辅助信息的控件。 使用此控件可以在报表中显示页码、当前日期或用户信息。xrpagebreak分页符控件,用作标记报表应开始新页面。xrcrossbandline可以跨多个带区的线条控件。xrcrossbandbox可以跨多个带区的方框控件。xrsubreport子报表控件,用于显示子报表。六、报表类型1. 静态报表 是简单呈现某些静态信息的报表。 这种报表通常不绑 到数据源,并且在一页上显示单个控件或一组控件。如果需要多次重复相同的报表内容,那么使用 xtrareportbase.detailprintcount 属性。2. 表格报表 是以表格形式呈现信息的报表。 这些信息
15、被存储在报表的绑定数据源中(也可以运行时从数据库中读取),并且通常此数据源不分层级 (例如,只包含一个数据表)。使用 xrtable 控件,并且绑定表格的单元格来呈现数据源中的数据;3. 主从报表 如果某个报表被用于显示分层级的数据源中的数据,则通常把它称为 主/从 报表。创建主/从报表的两种主要方法。 第一种方法: 是以使用 从报表带区为基础(使用detailreportband带区),当数据源包含主实例和从实例之间的 ado.net 关系时,使用这种方法使用。 第二种方法:是创建两个不同的报表类,并且把从报表作为子报表而合并到主报表中(使用xrsubreport控件,指定此控件的repor
16、tsource属性为子报表)。4. 多栏报表 是以多个列或行 (取决于当前的多栏设置) 呈现数据的报表。 这种报表是有用的,例如,当每个细节带区都只显示少量数据、并且需要在一列的右侧打印下一个细节带区的外观时,这样就能充分利用整个页面宽度。 此外,当创建有相同内容的 卡片或邮寄地址签、并且需要在许多报表页面上打印大量相同尺寸的卡片时,多栏报表也是有用的。由于多栏布局主要影响报表的细节带区,因此可以通过 detail 带区的 detailband.multicolumn 属性来指定多栏模式。 要启用多栏模式,则把 multicolumn.mode 属性设置为除去 none 之外的其他取值栏数固定
17、,栏宽度相同并且被自动计算。为此,应该把 multicolumn.mode 属性设置为 multicolumnmode.usecolumncount,并把 multicolumn.columncount 属性设置为所需的栏数。 自动计算栏数,所有栏的宽度都是相同的固定宽度。为此,应该把 multicolumn.mode 属性设置为 multicolumnmode.usecolumnwidth,并且把 multicolumn.columnwidth 属性设置为所需的栏宽度。5. 交叉表报表 是以交叉表形式呈现信息的报表。 交叉表 (或透视表) 类似于简单的普通 数据绑定表格,但是改为在单个表格中
18、呈现多维的分层级的信息,并含有每行和每列的自动排序、计数、合计和累计。使用xrpivotgrid控件,并为此控件指定数据源、绑定字段到列,同时要保证报表的数据源为null,如果两者使用相同的数据源,那么xrpivotgrid控件将被打印与数据源行数相同的次数。6. 并列报表 在报表中显示两栏相同的或者不同的信息,主要依赖于xrsubreport控件。7. drill-through 报表 类似于主从报表,但是子报表是通过超链接来访问的。超链接的设置将在下面数据绑定部分介绍。8. 邮件合并报表 试图创建 e-mail 模板时,经常会遇到困难。 在这些模板中,某些文本是不变的,某些字段 (通常被使
19、用预定义的标记括起来) 应该在创建文档时填充来源于数据库的数据。 此项功能也被称为 邮件合并,并且使用 xtrareports 可以轻松实现。大体上,要创建嵌入字段,则需要把由 中括号 括起的数据字段名称插入到控件的文本中,如果在当前的数据上下文中,字段是有效的,那么当报表被预览或导出时,它将被替换为一个适当的数据值。9. 标签报表 此报表与多栏报表相类似。七、报表数据源1数据源通过 xtrareport 对象的 xtrareportbase.datasource 属性把它绑定到数据源,而与特定的数据源类型和所使用的数据绑定方法无关。 唯一的例外是当使用 xml 数据源时,需要指派到 xtra
20、reportbase.xmldatapath 属性,同时要求把 xtrareportbase.datasource 属性设置为 null。2绑定数据的方法2.1.使用 .net 数据提供程序绑定报表这种方法意味着数据被存储在数据库中。 使用已提供的两种数据适配器组件之一,就可以把报表绑定到这种数据:oledbdataadapter,使用 ole db 访问公开的数据源; sqldataadapter,被设计用于使用由 microsoft sql server 7.0 或后续版本提供的数据源。这些数据适配器都使用连接对象来绑定数据,并且能够生成包含数据表的 dataset 对象。 然后通过把数据
21、表 (或绑定到表的数据视图) 直接指派到 xtrareportbase.datasource 属性,它们就可以被绑定报表。 也可以把生成的 dataset 对象指派到 xtrareportbase.datasource 属性,并且使用 xtrareportbase.dataadapter 属性来指定数据适配器的名称。2.2.把报表绑定到 list在运行时刻创建的数据对象必须支持 ilist、itypedlist 或 ibindinglist 接口,并且被指派到 xtrareportbase.datasource 属性。 注意,你不需要创建自定义的数据源对象。 例如,可以在运行时刻使用填充了数据
22、的 datatable 对象。2.3.把报表绑定到 xml 数据这种方法使用存储在 xml 文件中的数据。 可以以两种方式之一来访问这种数据。把 xtrareportbase.datasource 属性值设置为根据 xml 文件创建的数据集; 直接把 xml 文件指派到 xtrareportbase.xmldatapath 属性。八、数据绑定与报表预览1设计时绑定在设计时绑定数据源,需要把相应的数据源添加到应用程序中,即在应用程序中添加dataset程序集,然后在报表设计界面,把报表的数据源指定到相应的数据集上,打开field list字段列表,将相应的字段用鼠标拖到相应的控件上即可。点击pr
23、eview 即可预览报表。2运行时绑定在运行时绑定数据源,更具灵活性,它可以根据需要从数据库中读取有用的数据来呈现在报表上。对于运行时绑定数据源,其数据绑定操作要在报表的构造函数中完成。在报表设计器中只需把相应的控件放置好即可。报表控件中都有一个databindings属性,此属性的add方法可以把数据绑定到控件上。示例代码:void databind()datasource=tb / tb为datatablexrlabel1.databinds.add(”text”,null,”column1”);xrlabel2.databinds.add(”text”,null,”column2”,”f
24、ormatstring:0”);在报表的构造函数中调用以上方法就可以将数据绑定到xrlabel上,其中add方法有两个重载:control.databinds.add(控件属性,数据源,绑定字段)control.databinds.add(控件属性,数据源,绑定字段,格式化设置)每个控件可绑定的属性可能有所不同,可以通过该控件的databinds属性来查看。3chart控件绑定 chart控件与pivotgrid控件都需要独立指定数据源,同时,如果这两个控件被放置detail带区中,报表不能指定数据源,不然,该控件将被显示与报表数据源行数相同的次数。 对与chart控件的数据绑定,要把相应字段
25、绑定到对应的series上,argumentdatamember为x轴绑定字段,valuedatamembersserializable为y轴字段。 一个图表中可以有多个series,可以通过series索引或者name来找到相应的series.chart控件中series集合表示图表,titles集合是对应series的标题。 示例代码: protected void databind() string sqlstr = select unitprice,productname from productsales group by productname,unitprice; this.xr
26、chart1.datasource = helper.getdatatable(sqlstr); this.xrchart1.series0.argumentdatamember = productname; this.xrchart1.series0.valuedatamembersserializable = unitprice; this.xrchart1.series0.name = price; this.xrchart1.series0.legendpointoptions.pointview = pointview.argument; his.xrchart1.legend.vi
27、sible = false; 九、数据呈现由于数据源提供方式分为设计时与运行时,所以数据呈现也有所不同。对于运行时提供数据源的报表,分组、排序都需要通过代码添加到报表中,而设计时提供数据源则可以直接通过图形化界面进行设置。1数据分组与排序运行时分组需要在数据绑定函数中加入如下代码:this.groupheader1.groupfields.add(new groupfield(studentid,xrcolumnsortorder.descending);groupfield的两个参数分别为分组字段,排序方式。2数据筛选2.1.在报表级筛选在报表中添加parameters属性中添加筛选参数,并
28、设置筛选条件,在web页面上parameters中的参数列表将被显示在reportparameterpanel控件中,报表中添加参数以后,默认状态预览报表需要点击submit后报表才被创建,若要不提供参数也创建报表,需要将报表的requestparameters属性设置为false。2.2.在数据源级筛选在数据级筛选数据,主要是通过sql语句的where条件,要将where条件的参数传递到报表类中,可以通过报表的构造函数,其他方式有待研究。同时结合在报表级的数据筛选,可以方便点的在页面上呈现出需要的数据。3数据格式化通过控件的formatstring属性可以根据需要设置相应的格式化输出样式。通
29、过控件的summary属性来设置各种统计功能。十、 外观设置1外观属性外观属性如下表:属性说明backcolor获取或设置报表元素及其子控件的背景色bordercolor获取或设置报表元素及其子控件的边框色。borderdashstyle获取或设置报表元素及其子控件的边框虚线样式。borders获取或设置报表元素及其子控件的可视边框 (上、右、下、左)。borderwidth获取或设置报表元素及其子控件的边框宽度。font获取或设置报表元素及其子控件的字体选项 (字体名称、大小等)。forecolor获取或设置报表元素及其子控件的前景色。padding获取或设置用于绘制报表元素及其子控件内容的
30、缩进量。textalignment获取或设置报表元素及其子控件的文本对齐方式。 2样式2.1奇偶行样式它允许在视觉上把报表中连续的数据字段划分开,从而有更好的可读性。 要把这些样式应用于控件,则应该使用其 xrcontrol.oddstylename 和 xrcontrol.evenstylename 属性。2.2.样式表在设计时刻可以使用 styles editor(样式编辑器) 来管理报表的样式表、定制样式表、存储到文件以及从文件中加载。 因此,可以创建多个样式表,并且在设计时刻或运行时刻加载。保存报表的样式表的方式有两种。 第一种方式是保存为外部文件 (有 repss 扩展名),然后使用 xtrareport.stylesheetpath 属性,以只读模式加载到报
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030中国水果店行业市场深度调研及投资策略及有效策略与实施路径评估报告
- 贫血的题库及答案
- 中小学生防溺水安全常识测试题含答案
- 2025年汽车行业供应链韧性与风险管理技术创新与应用
- c数组题目及答案
- 艺术市场数字化交易平台在2025年的艺术品流通效率提升研究报告
- 2025年人工智能(AI)训练师职业技能鉴定考试题(附答案)
- 2025-2030玻璃餐具铅镉迁移量检测新方法对出口企业的合规预警
- 2025-2030物流园区REITs融资模式创新与投资回报周期测算报告
- 2025-2030烟气脱硫系统运行故障诊断与预防性维护市场报告
- DL T774-2015规程试题库(含答案)
- 2023年电气工程师职称评审个人业务自传
- CB/T 3780-1997管子吊架
- 【表格】面试评估表(模板)
- 胫骨横向骨搬移在糖尿病足治疗中的运用
- 物资供应投标书范本
- 汉译巴利三藏中部3-后五十篇
- 眼震视图结果分析和临床意义
- 2011-2017国民经济行业分类标准转换对照表
- 《现代汉语》PPT课件(223页PPT)
- 福建省电力系统污区分布图修订说明
评论
0/150
提交评论