Xtrareport 报表的一些属性及控件

报表结构

整个报表是由多个绑定带区组成,绑定带区如下:


绑定带区


说明


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属性为要显示的报表实例。


ReportToolbar


与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方法可以把数据绑定到控件上。

示例代码:

Void DataBind()

{

DataSource=tb   // tb为DataTable

xrLabel1.DataBinds.Add(”Text”,null,”Column1”);

xrLabel2.DataBinds.Add(”Text”,null,”Column2”,”FormatString:{0}”);

}

在报表的构造函数中调用以上方法就可以将数据绑定到xrLabel上,其中Add方法有两个重载:

Control.DataBinds.Add(控件属性,数据源,绑定字段)

Control.DataBinds.Add(控件属性,数据源,绑定字段,格式化设置)

每个控件可绑定的属性可能有所不同,可以通过该控件的DataBinds属性来查看。

3.Chart控件绑定

   Chart控件与PivotGrid控件都需要独立指定数据源,同时,如果这两个控件被放置Detail带区中,报表不能指定数据源,不然,该控件将被显示与报表数据源行数相同的次数。

对与Chart控件的数据绑定,要把相应字段绑定到对应的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.xrChart1.DataSource = helper.getDataTable(sqlStr);

this.xrChart1.Series[0].ArgumentDataMember = "ProductName";

this.xrChart1.Series[0].ValueDataMembersSerializable = "UnitPrice";

this.xrChart1.Series[0].Name = "Price";

this.xrChart1.Series[0].LegendPointOptions.PointView = PointView.Argument;

his.xrChart1.Legend.Visible = false;

}

数据呈现

由于数据源提供方式分为设计时与运行时,所以数据呈现也有所不同。对于运行时提供数据源的报表,分组、排序都需要通过代码添加到报表中,而设计时提供数据源则可以直接通过图形化界面进行设置。

1.数据分组与排序

运行时分组需要在数据绑定函数中加入如下代码:

this.GroupHeader1.GroupFields.Add(new GroupField("StudentID",XRColumnSortOrder.Descending));

GroupField的两个参数分别为分组字段,排序方式。

2.数据筛选

2.1.在报表级筛选

在报表中添加Parameters属性中添加筛选参数,并设置筛选条件,在Web页面上Parameters中的参数列表将被显示在ReportParameterPanel控件中,报表中添加参数以后,默认状态预览报表需要点击Submit后报表才被创建,若要不提供参数也创建报表,需要将报表的RequestParameters属性设置为false。

2.2.在数据源级筛选

在数据级筛选数据,主要是通过SQL语句的where条件,要将Where条件的参数传递到报表类中,可以通过报表的构造函数,其他方式有待研究。同时结合在报表级的数据筛选,可以方便点的在页面上呈现出需要的数据。

3.数据格式化

通过控件的FormatString属性可以根据需要设置相应的格式化输出样式。通过控件的Summary属性来设置各种统计功能。

外观设置

1.外观属性

外观属性如下表:


属性


说明


BackColor


获取或设置报表元素及其子控件的背景色


BorderColor


获取或设置报表元素及其子控件的边框色。


BorderDashStyle


获取或设置报表元素及其子控件的边框虚线样式。


Borders


获取或设置报表元素及其子控件的可视边框 (上、右、下、左)。


BorderWidth


获取或设置报表元素及其子控件的边框宽度。


Font


获取或设置报表元素及其子控件的字体选项 (字体名称、大小等)。


ForeColor


获取或设置报表元素及其子控件的前景色。


Padding


获取或设置用于绘制报表元素及其子控件内容的缩进量。


TextAlignment


获取或设置报表元素及其子控件的文本对齐方式。

2.样式

2.1奇偶行样式

它允许在视觉上把报表中连续的数据字段划分开,从而有更好的可读性。 要把这些样式应用于控件,则应该使用其 XRControl.OddStyleName 和 XRControl.EvenStyleName 属性。

2.2.样式表

在设计时刻可以使用 Styles Editor(样式编辑器) 来管理报表的样式表、定制样式表、存储到文件以及从文件中加载。 因此,可以创建多个样式表,并且在设计时刻或运行时刻加载。保存报表的样式表的方式有两种。 第一种方式是保存为外部文件 (有 REPSS 扩展名),然后使用 XtraReport.StyleSheetPath 属性,以只读模式加载到报表 (这种方式在 如何: 创建和存储报表样式表 主题中进行了描述)。 第二种方式是把样式表存储在报表内 (使用 XtraReport.StyleSheet 属性),因此可以按照需要进行修改,并和报表本身一起被保存。

3.附条件格式设置

通过控件的FormattingRuls属性设置格式化规则,当满足该规则时,将以定义的样式显示该行数据。同一个报表的FormattingRules被放置在FormattingRulesSheet属性中。

交互导航

1.超链接

示例代码:

为xrLabel添加超链接

xrLabel.DataBinds.Add(“NavigateUrl”,null,”Colunm”,”http://www.quantacn.com?id={0}”);

解释:在报表已指定数据源的情况下(设计时或者运行时)可以用以上方法对控件绑定NavigateUrl属性,同时格式化Url地址与要穿的的参数。

2.文档地图

在报表中若设置了Bookmark属性,报表将生成文档地图,在Web页面中用ReportDocumentMap控件来显示。

示例代码:

为xrPanel添加文档地图

xrPanel.DataBinds.Add(“Bookmark”,null,”Column”,”FormatString:{0}”);

其他

不使用ReportToolBar来打印,导出报表。

步骤:

1.在web页面设置ReportViewer控件的ClientInstanceName属性(例如:viewer)

2.添加ASPxButton控件到web页面

3.点击ASPxButton控件的智能标签,取消AutoPostBack,点击Client-Side-Events;

4.在Click事件中添加如下代码

function(s, e) {

viewer.SaveToDisk(‘PDF’); //保存为PDF格式

viewer.Print(); //打印报表

}

原文地址:https://www.cnblogs.com/xiaowie/p/8984820.html

时间: 2024-10-29 03:13:41

Xtrareport 报表的一些属性及控件的相关文章

MFC 模仿编译器属性 设置控件

1.VS 编译器 属性设置控件的实现. 完整工程下载地址: 

重新想象 Windows 8.1 Store Apps (77) - 控件增强: 文本类控件的增强, 部分控件增加了 Header 属性和 HeaderTemplate 属性, 部分控件增加了 PlaceholderText 属性

[源码下载] 重新想象 Windows 8.1 Store Apps (77) - 控件增强: 文本类控件的增强, 部分控件增加了 Header 属性和 HeaderTemplate 属性, 部分控件增加了 PlaceholderText 属性 作者:webabcd介绍重新想象 Windows 8.1 Store Apps 之控件增强 文本类控件的增强 为一些控件增加了 Header 属性和 HeaderTemplate 属性 为一些控件增加了 PlaceholderText 属性 示例1.演示

WinForm-利用Anchor和Dock属性缩放控件

转自:http://www.cnblogs.com/tianzhiliang/articles/2144692.html 有一点让许多刚接触WinForms编程的开发者感到很棘手,就是在用户调整各种控件的大小时,怎样使它们的窗体保持同步,并与父窗体相称.这可以成为一种让人非常沮丧的情况,尤其是对于有着Web编程背景,转为WinForms的开发者来说.为了缓解这个问题,.NET框架允许你对子控件设置属性,命令在调整父窗体大小时,它们应该如何运作.用来命令控件在调整大小时动作的两个属性就是“Dock

Android开发技巧之使用weight属性实现控件的按比例分配空间

从今天开始,把看书时候的知识点整理成博客, 这个比较简单,估计有经验的都用过,weight属性 在做Android布局的时候,经常遇到需要几个控件按比例分配空间的情况 比如下图效果 在底部设置两个button,占据底部宽度一部分的同时,保持1:3的比例, 当然了,这么难看的布局用处不大,仅是用来说明weight的用法 布局代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" x

根据对象属性给控件赋值

当界面控件比较多的时候,给控件赋值就是一件比较困难的事情了,但是我们可以使用下面这样的办法给控件赋值 /// <summary> /// 绑定帮助类 /// </summary> public class QueryBondHelper { /// <summary> /// 绑定属性到控件 /// </summary> /// <param name="control">control</param> /// &

【转】黑马程序员_WPF基础属性、控件和语法

1.WPF事件中的sender --WPF中所有事件响应方法第一个参数都是sender,代表触发事件的控件对象,是object类型,需要类型转换使用. --应用:多个按钮的Click共享一个事件处理方法 2.集合List<T> --有时候不能预先确定长度或者需要动态修改内容和长度,这时候可以使用List<T>泛型集合. --List<T>,可以看做是动态的数组.Add.Clear.Count.Remove.RemoveAt.ToArray(转换为数组) --List&l

Qt属性表控件的使用 QtTreePropertyBrowser

属性表是vs2003时引入的的新控件,用于流量和设置大量的信息,现在,很多软件上都能看到它的身影,如vs,Qt Creator等IDE的详细设置里都离不开属性表. 下图是Qt Creator里的属性表 虽然,再Qt Creator里,属性表到处可见,但是,却没有集成到常用控件里面,vs2008 fp里就给MFC添加了CMFCPropertyGridCtrl,大Qt当然不能没有它,Qt的项目里是有这个控件的,很可能是此控件的设计和其他的风格有点差别,所以还没被Qt正式收录.下载地址:https:/

Android UI之android:layout_weight属性以及控件的比例控制

这两天在做一个Android界面的时候采用了linearlayout线性布局,并在其中放置了textview控件,设置android:layout_width属性为wrap_content时,eclipse提示说这里使用0dp取代wrap_content能获得更好的体验,顿时产生了好奇,为什么使用0dp会更好?于是探究了一番,网上已有相关的文章,学习之后作了一个总结. 首先解释一下Android:layout_weight属性的作用,其实简单理解就是用来分配空间大小,至于怎么分配,分配的是哪些空

WindowsForm 窗体属性和控件

一窗体属性 1 布局 (1)Autoscoll  --滚动条 (2)AutoSize   --自动调节大小以适用内容大小 (3)Location和 StartPosition (确定窗体第一次出现的位置) ①CenterParent(窗体在其父窗体中居中) ②CenterScreen ( 窗体在当前显示窗口中居中) ③Manual (窗体的位置由 Location 属性确定) ④WindowsDefaultBounds  (窗体定位在 Windows默认位置,其边界也由Windows默认决定);