资源预览内容
第1页 / 共36页
第2页 / 共36页
第3页 / 共36页
第4页 / 共36页
第5页 / 共36页
第6页 / 共36页
第7页 / 共36页
第8页 / 共36页
第9页 / 共36页
第10页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
可以在 ReportViewer 报表中包括 Microsoft Visual Basic 表达式。可以使用表达式来计算报表项的值,或者计算样式和格式设置属性的值或其他报表项属性的值。可以使用所有 Visual Basic 函数,以及只有报表定义文件中支持的内置函数。字段表达式最基本类型的表达式是在文本框中显示字段值的表达式。这种类型的表达式称作字段表达式。若要将数据字段链接到报表项,表达式必须包括 Fields 集合、字段名称和 Value 属性。在您将字段拖至报表中时,会自动为您创建值。以下示例显示了在文本框中显示产品名称的表达式:=Fields!Product.Value表达式既可以是引用字段对象的短表达式,也可以是支持基于字段或其他报表项的判定函数或格式设置的长表达式。报表项和属性中的表达式必须以等号 (=) 开头。如果文本不以此字符开头,则将该文本作为字段的实际值进行计算。字段表达式的示例如下:以下表达式连接 FirstName 字段和 LastName 字段。=Fields!FirstName.Value & & Fields!LastName.Value以下表达式对 LineTotal 字段执行求和聚合 =Sum(Fields!LineTotal.Value)条件格式设置可以使用表达式来控制报表项的外观。例如,可以为文本框的 Color 属性编写一个表达式,以便根据不同的数据,以不同颜色显示数据。条件格式设置的示例如下。以下表达式(用于文本框的 Color 属性中)在“Cost”字段的值大于“Revenue”字段的值时,以红色显示值。在“Cost”字段的值小于或等于“Revenue”字段的值时,以黑色显示值。 =IIf(Fields!Cost.Value Fields!Revenue.Value, Red, Black)Reporting Services 函数Reporting Services 提供了许多可在表达式中使用的内置函数。这些函数包括标准聚合函数(例如 Sum、Min、Max 和 Count),以及其他一些函数(例如 RowNumber 和 RunningValue)。类引用和自定义代码报表中的表达式也可以包含对 Microsoft.VisualBasic、System.Convert 和 System.Math 命名空间中的类的引用。如果您使用其他系统命名空间的类或函数,则必须使用完整命名空间(如 System.Collections.ArrayList)。如果您需要使用 Reporting Services 函数或默认类未提供的其他功能,可以使用自定义代码、其他标准程序集或报表代码块。为此,可以先生成一个自定义程序集,然后在表达式内引用该程序集。报表中表达式的全局集合为在 ReportViewer 控件中处理的报表定义编写的表达式可包含对全局对象集合的引用。有五种全局对象集合可供使用:Fields、Globals、Parameters、ReportItems 和 User。要访问这些集合,您可以使用标准的 Visual Basic 集合语法。这种语法的示例如下:Collection!ObjectName=User!Language Collection.Item(ObjectName)=User.Item(Language) Collection(ObjectName)=User(Language) 您还可以使用属性语法来访问 Globals 和 User 集合中的各项。其示例如下:Collection.ObjectName=Globals.PageNumber Globals 和 Users 集合的成员会返回变量。如果您想在表达式中使用要求特定数据类型的全局变量,则必须先转换该变量。例如,CDate(Globals!ExecutionTime)。字段Fields 集合包含当前数据源中的各字段。这些字段通常用于显示报表的文本框中的数据,但也可以用在其他报表项、属性和函数中。Fields 集合中的项有两种属性:Value 和 IsMissing。Value 属性返回数据源中为该字段检索到的值。IsMissing 属性指示数据源中是否存在该字段。对于返回字段的变量集的查询,可以使用“IsMissing”属性。对于缺少的字段,其 Value 属性的值为 Null。访问字段对象的最常用语法是属性语法,例如 Fields!Product.Value。您还可以使用上述的集合语法来访问字段对象。有些数据源为字段提供了附加属性。您可以通过使用集合语法来访问这些属性。如果数据源不支持某属性,或在执行查询时找不到该字段,则属性的类型为 String 和 Object 时,其属性值为 Null;在属性的类型为 Integer 时,其属性值为 0。报表为它所包含的每一数据源包含一个虚拟的 Fields 集合。字段在一个集合内必须唯一,不过同一字段名称可以在多个集合中存在。如果引用数据区域中的字段,则该数据区域的数据表或业务对象会确定所使用的集合。如果引用聚合表达式中的字段,则范围的数据源会确定所使用的集合。GlobalsGlobals 集合包含报表的全局变量。下表对 Globals 集合的成员进行了说明。成员 类型 说明 ExecutionTime日期时间报表开始运行的日期和时间。PageNumber整型当前页码。该变量只能用在页眉和页脚中。ReportFolder字符串包含报表的文件夹的完整路径。它不包括报表服务器 URL。此成员仅适用于服务器报表。ReportName字符串存储在报表服务器数据库中的报表的名称。此成员仅适用于服务器报表。ReportServerUrl字符串正在运行该报表的报表服务器的 URL。此成员仅适用于服务器报表。TotalPages整型报表中的总页数。该变量只能用在页眉和页脚中。全局变量的示例如下:该表达式位于报表页脚的文本框中,提供了报表的页码和总页数。 =Globals.PageNumber & of & Globals.TotalPages以下表达式提供了报表的名称以及它运行的时间。时间格式使用短日期的 .NET Framework 格式字符串进行设置。 =Globals.ReportName & , dated & Format(Globals.ExecutionTime, d)参数Parameters 集合包含报表中的报表参数。参数可以用在筛选器中,或用在基于此参数改变报表外观的其他函数中。Parameters 集合中的项有两种属性:Value 和 Label。Value 属性返回参数(如 EmployeeID)的值。Label 属性返回参数(如 EmployeeName)的便于用户识别的标签。如果未指定标签,则 Label 属性值和 Value 属性的值相同。如果有多个标签与同一个值关联,则使用第一个匹配的标签。参数既可以通过属性语法访问,也可以通过集合语法访问。ReportItemsReportItems 集合包含报表内的文本框。ReportItems 集合内的项仅包含一个属性:Value。ReportItems 项的值可以用来显示或计算报表中其他字段的数据。若要访问当前文本框的值,请使用 Me.Value 或仅使用 Value。Me.Value 和 Value 不能在聚合函数内部使用。在聚合函数中请使用完整语法来访问文本框的值。报表项表达式的示例如下:该表达式位于文本框中,显示了文本框 Textbox1 的值。 =ReportItems!Textbox1.ValueUserUser 集合包含正在运行报表的用户的数据。下表对 User 集合的成员进行了说明。成员 类型 说明 Language字符串运行报表的用户的语言 ID。UserID字符串运行报表的用户的 ID。用于报表的内置函数ReportViewer 提供了可用于报表表达式的内置函数。内置函数可用于客户端报表定义 (.rdlc) 文件和在 SQL Server 2005 Reporting Services 报表服务器上处理的报表定义 (.rdl) 文件所包含的表达式中。ReportViewer 控件和 Reporting Services 提供对这些函数的支持。这些内置函数分为两类:聚合函数和杂项函数。聚合数据的示例包括使用 Sum 函数来计算特定字段中所有值的总和。可以在任何报表项的表达式中使用聚合函数。除了内置函数外,包含在报表中的表达式还可以使用任何 Visual Basic 函数。杂项函数下表介绍了可以使用的通用函数。函数 说明 InScope 函数(Visual Studio 报表设计器) 指明项的当前实例是否在指定范围内。Level 函数(Visual Studio 报表设计器) 返回递归层次结构中的当前深度级别。Previous 函数(Visual Studio 报表设计器) 返回指定范围内的前一个实例。标准聚合函数下表介绍了可以使用的标准聚合函数。函数 说明 Avg 返回指定表达式的所有非空值的平均值。Count 返回指定表达式的值的计数。CountDistinct 返回指定表达式的所有不同值的计数。CountRows 返回指定范围内的行的计数。First 返回指定表达式的第一个值。Last 返回指定表达式的最后一个值。Max 返回指定表达式的所有非空值中的最大值。Min 返回指定表达式的所有非空值中的最小值。StDev 返回指定表达式的所有非空值的标准偏差。StDevP 返回指定表达式的所有非空值的总体标准偏差。Sum 返回指定表达式的值的和。Var 返回指定表达式的所有非空值的方差。VarP 返回指定表达式的所有非空值的总体方差。运行聚合函数下表介绍了可以使用的运行聚合函数。函数 说明 RowNumber 返回指定范围内的所有行的运行计数。RunningValue 使用指定的函数返回指定表达式的运行聚合。自定义聚合函数下表介绍自定义聚合函数。函数 说明 Aggregate 按照数据访问接口的定义返回指定表达式的自定义聚合。Scope每个聚合函数都使用 Scope 参数,该参数定义执行聚合函数的范围。有效的范围值是分组、数据集或数据区域的名称。只有直接或间接包含表达式的分组或数据区域才能作为范围。如果表达式位于数据区域内,则对于所有聚合函数,Scope 都是可选参数。如果省略 Scope 参数,则聚合的范围就是报表项所属的最里面的数据区域或分组。如果将范围指定为 Nothing,则表示将范围设置为报表项所属的最外面的数据区域。如果表达式位于数据区域外,Scope 参数将引用数据表或业务对象。如果报表包含多个数据集,则必须使用 Scope 参数。如果报表只包含一个数据集,并且省略了 Scope 参数,则范围将设置为该数据集。如果报表项位于数据区域外,则不能为其指定 Nothing 关键字。在页眉或页脚中不能使用 Scope 参数。InScope 函数(Visual Studio 报表设计器)指明项的当前实例是否在指定范围内。InScope(Scope)参数Scope (String) 要对其应用函数的报表项所
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号