没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
在 Reporting Services 中使用表达式
已更新:
2005
年
12
月
5
日
表达式在整个报表定义过程中被广泛用于检索、计算、显示、分组、排序、筛选、参数化以及格式化报表内容。有些表达式是自动
创建的(例如,将字段从数据集窗口拖动到表单元格时,检索该字段值的表达式将显示在文本框中)。但是,在大多数情况下,需
要创建自己的表达式以便在报表中获取下列功能类型:
数据的聚合,以显示特定行集的总和、平均值、百分比或乘积。
条件格式,其中文本或背景的格式随定义的逻辑而更改。
条件文本,其中报表标题随运行报表人员的改变而改变。
来自多个数据集字段和常量的连接文本。
从数据源中检索后又经过筛选的报表数据。
参数化钻取报表。
数据分组和排序。
动态页眉和页脚内容。
在
Reporting Services
中,了解如何创建并使用表达式是一项基本技能,通过此项技能您可以创建丰富且功能完备的报表。表达
式以
Microsoft Visual Basic
语言编写。有关多个表达式示例的列表,请参阅在
Reporting Services
中使用表达式 。
本节内容
在
Reporting Services
中使用表达式
介绍表达式并讨论它们在报表中的应用位置。
在
Reporting Services
中创建表达式
介绍如何创建表达式。
在表达式中使用全局集合
(Reporting Services)
介绍在表达式中引用全局集合。
在表达式中使用报表函数
(Reporting Services)
介绍在表达式中引用内置报表功能。
在表达式中使用自定义代码引用
(Reporting Services)
介绍在表达式中引用自定义代码、自定义报表项以及自定义程序集。
为
Analysis Services
数据库使用扩展字段属性
介绍
Analysis Services
数据扩展插件提供的自定义字段属性。
Reporting Services
中的表达式示例
提供常用表达式示例。
在 Reporting Services 中使用表达式
新建日期:
2005
年
12
月
5
日
在
Reporting Services
中,表达式用于动态地、灵活地控制报表的内容和外观。有些表达式是自动创建的。例如,当创建新报表
并将字段从数据集拖动到报表项时,文本框的值将自动设置为按名称引用数据集字段的表达式。在报表处理过程中,每个表达式都
计算出在报表呈现时可替换该表达式的一个值。同时,在整个报表定义过程中,表达式还被用来指定或计算报表项属性、文本框属
性、参数、查询、书签、文档结构图、筛选器以及分组和排序定义的值。
可以在文本框、属性窗口中输入文本或通过对话框创建报表项的表达式。表达式是以
Microsoft Visual Basic
编写的。表达式以
等号
(=)
开头,其中包括对常量、运算符、函数以及包含字段和参数的内置报表全局集合的引用。也可以创建对报表处理以外的
.NET Framework
类、自定义代码以及程序集的引用。有关创建表达式的详细信息,请参阅在
Reporting Services
中创建表达
式。
本主题概述了报表定义中可使用表达式的位置。本主题中的示例以创建基本报表教程中所创建的
AdventureWorks
数据集为基础。
若要从这些示例开始学习,请参阅
Reporting Services
中的表达式示例 。
使用字段表达式
可以使用表达式引用数据集中的字段,并在文本框中显示它的值。若要将检索的数据与报表项进行关联,字段表达式必须使用
Fields
全局集合、字段名称和
Value
属性。
如果将字段从数据集窗口拖动到报表项,则字段表达式将自动添加到文本框中。
示例:
=Fields!LastName.Value
结果:
Reiter
Reiter
Saraiva
可以将多个字段或常量中的数据进行组合。
示例:
=Fields!FirstName.Value & " " & Fields!LastName.Value
结果:
Tsvi Reiter
Tsvi Reiter
Jose Saraiva
有关可在表达式中使用的所有引用类型的列表,请参阅在
Reporting Services
中创建表达式 。
使用
Reporting Services
内置函数
您可使用表达式引用大量来自表达式的内置报表函数。这些函数既包括
Sum
、
Min
、
Max
和
Count
之类的用于计算行分组值的
标准聚合函数,也包括
RowNumber
和
RunningValue
之类的在详细信息行中使用以提供每行的值的函数。
使用聚合函数
Count
计算名为
SalesOrder
的数据集的
LastName
字段中的姓氏数目。尽管可将表达式放在表
的详细信息行中,但还是会看到在
3906
行的每一行中都输入了相同的值。聚合函数旨在用于汇总详细信息行,通
常在数据区域或数据区域分组的表头行或表尾行的文本框中使用。
示例:
="Number of Names: " & Count(Fields!LastName.Value)
结果:
Number of Names: 3906
使用聚合函数
Sum
汇总
TotalDue
字段。将其放在表的表尾行中。请注意,此值未设置格式。
示例:
="Total Sold: " & Sum(Fields!TotalDue.Value)
结果:
Total Sold: 108266245.7018
使用
Format
函数和
Microsoft .NET Framework
格式设置字符串
C
设置数值的格式。
示例:
="Total Sold: " & Format(Sum(Fields!TotalDue.Value),"C")
结果:
Total Sold: $108,266,245.70
使用
RowNumber
函数计算行数。
示例:
=RowNumber(Nothing)
结果:
1
2
3
使用
RunningValue
聚合指定范围内的运行总计。
示例:
=Format(RunningValue(Fields!TotalDue.Value,Sum,Nothing),"C")
结果:
$27,231.55
$28,947.73
有关可从表达式中引用的报表内置函数的完整列表,请参阅在表达式中使用报表函数
(Reporting Services)
。
作用域
因为可能已经定义了多个组,所以可指定聚合函数将使用的作用域。作用域是可传递给聚合函数以指示如何计算聚合的名称。例如,
对于定义了多个组的表,可能需要从内部组表头行引用外部组。
Nothing
作用域将通知函数使用最外面的作用域。对于没有分组
的简单表数据区域,只有一个作用域。
若要标识对于报表项分组有效的作用域,请打开“属性”对话框,单击“分组”选项卡,查看可用于标识作用域的组标签列表。
使用
.NET Framework
和系统命名空间
可使用表达式引用
Microsoft.VisualBasic
运行时库的内置命名空间、
.NET Framework
命名空间
System.Convert
和
System.Math
。若要引用其他
.NET Framework CLR
(公共语言运行时)命名空间,必须使用完全限定的命名空间,例如
System.Text.StringBuilder
。对于外部程序集的引用,则需要通过报表属性来标识程序集,并确保可在报表服务器中使用此程序
集。有关详细信息,请参阅如何向报表添加程序集引用(报表设计器)和
Referencing Assemblies in an RDL File
。
使用自定义代码和类引用
可使用表达式引用自己的自定义实例和类实例。为此,可通过报表属性将代码直接添加到报表中,或生成自定义程序集,然后从表
达式内部引用此程序集。有关详细信息,请参阅在表达式中使用自定义代码引用
(Reporting Services)
。
使用条件格式
可以使用表达式来控制报表项的外观。例如,可以为用于以不同颜色(具体取决于数据)显示数据的文本框的
Color
属性编写表
达式。下面的示例中,如果
TotalDue
字段中的值小于
10000
,则将以红色显示此值。如果条件不满足,则文本显示为黑色。
复制代码
=Iif(Fields!TotalDue.Value < 10000,"Red","Black")
若要为报表项输入格式设置表达式,请打开“属性”窗口,针对要设置格式的属性,在值字段中键入表达式。有关条件格式的详细信
息,请参阅添加条件格式。
使用查询表达式
可使用表达式定义包含在数据集内的查询。您可以使用此功能来设计报表,报表中的查询可以根据用户的输入、其他数据集中的数
据或其他变量进行更改。有关查询的详细信息,请参阅定义报表数据集。
使用筛选、分组和排序表达式
可使用表达式定义筛选器,从而限制报表中显示的数据量和数据类型。筛选器应用于从数据源中检索的数据。您可以针对数据集、
数据区域和数据区域分组定义筛选器。有关筛选的详细信息,请参阅如何添加筛选器(报表设计器)和筛选报表中的数据。
可使用表达式为数据区域定义组。您经常使用表达式计算分组数据的聚合。可通过在数据区域上创建组头来定义组。有关分组数据
的详细信息,请参阅对报表中的数据进行分组和如何向表中添加组(报表设计器)。
可使用表达式定义数据区域的排序。可对数据集、数据区域上的详细信息行和分组进行排序。有关数据排序的详细信息,请参阅在
报表是对数据进行排序和如何对表中的数据进行排序(报表设计器)。
使用内置报表集合
可使用表达式引用内置报表集合类。除了前面介绍的
Fields
集合,还可创建引用下列集合中各项的表达式:
Globals
、
User
、
Parameters
、
ReportItems
、
DataSets
和
DataSources
。当在表达式中使用时,这些集合可访问在报表处
理过程中动态确定的报表属性和数据。有关详细信息,请参阅在表达式中使用全局集合
(Reporting Services)
。
使用区域设置
您可以使用表达式通过
User.Language
值来引用客户机上的区域设置,从而确定如何向用户显示报表。例如,可
创建基于区域值而使用不同查询表达式的报表。查询可以根据返回的语言发生相应更改,从不同的列中检索本
地化信息。您还可以根据此变量在报表或报表项的语言设置中使用表达式。
注意:
在更改报表的语言设置时,必须注意由此引发的显示问题。例如,更改报表的区域设置可以更改报表的日期格式,但也可以更改
货币格式。除非对货币进行适当的转换,否则上述更改可能导致在报表中显示错误的货币符号。要避免这种情况,可对要更改的
各个报表项设置语言信息,或将包含货币数据的项设置为特定语言。
如何添加表达式(报表设计器)
已更新:
2005
年
12
月
5
日
表达式将用在报表项属性、筛选器、组定义、排序定义、连接字符串、查询和报表参数的整个报表定义中。表达式使用常用语法和
常用用户界面元素,这些用户界面元素有助于您识别属性何时可为表达式。在您编辑表达式时,表达式编辑器提供
Intellisense
说明和语法检查。
表达式可以使用常量、全局集合、内置和外部函数引用以及自定义代码和类实例。表达式编辑器提供有关表达式元素的上下文相关
信息。如果要为其编写表达式的报表项或报表对象属性不同,则可用于表达式元素的信息种类也会有所不同。
有关表达式编辑器的详细信息,请参阅编辑表达式(报表设计器)和在
Reporting Services
中创建表达式 。有关表达式和报表的
详细信息,请参阅在
Reporting Services
中使用表达式 。
不使用表达式编辑器在文本框中添加表达式
1.
在“布局”视图中,单击要为其添加表达式的文本框。
2.
再次单击该文本框,然后在文本框中键入表达式。
也可以在“属性”窗口(从“视图”菜单中,单击“属性”窗口)或“属性”对话框(右键单击该文本框,然后从上下文菜单中选
择“属性”)的“值”属性中键入表达式。
剩余24页未读,继续阅读
资源评论
DJ2008
- 粉丝: 103
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功