在表达式中使用参数

新建日期: 2006 年 7 月 17 日

本主题提供了大量语法示例,说明在表达式中使用报表参数引用时所需的语法。报表参数是可以从表达式中引用的全局集合之一。有关详细信息,请参阅在表达式中使用全局集合 (Reporting Services)

处理报表时为参数取值。表达式可以用于提供 (Fx) 或 <表达式> 选项的报表项属性和文本框属性的任意位置。有关在何处可以使用表达式的示例,请参阅 Reporting Services 中的表达式示例

报表参数可以是下列类型之一:Boolean、DateTime、Integer、Float 或 String。报表参数是单值参数或多值参数。可以为所有类型(除布尔值之外)设置多值属性。多值参数是一组以零为基的值。有关设置报表属性的详细信息,请参阅 创建报表参数和设置报表参数属性

单值参数

下表提供有关在表达式中使用单值参数的示例。

在表达式中使用单值参数

下表显示在表达式中包括对任意数据类型单值参数的引用时要使用的语法示例。

示例 说明

=Parameters!<ParameterName>.IsMultiValue

返回 False。

检查参数是否是多值。如果是 True,则该参数是多值并且是一个对象集合。如果是 False,则该参数是单值并且是单个对象。

=Parameters!<ParameterName>.Count

返回整数值 1。对于单值参数,计数始终为 1。

=Parameters!<ParameterName>.Label

返回参数标签,该参数标签通常用作可用值下拉列表中的显示名称。

=Parameters!<ParameterName>.Value

返回参数值。如果未设置标签属性,则该值会出现在可用值的下拉列表中。

=CStr(Parameters! <ParameterName>.Value)

返回该参数值作为字符串。

=Fields(Parameters!<ParameterName>.Value).Value

返回与参数同名的字段的值。

使用单值参数来设置筛选器

使用数据集、数据区域或数据分组属性页的**“筛选器”选项卡来设置筛选器。通过在“筛选器”**选项卡上的筛选器网格中输入值来定义筛选器表达式。下表表示的是筛选器网格。以下示例假定 Fields!EmployeeID.Value 和 Parameters!EmployeeID.Value 的值具有相同的数据类型。

(筛选器)表达式 运算符 和/或

= Fields!<FieldName>.Value

用来比较值的运算符。例如:

=

>=

<

=Parameters!<ParameterName>.Value

输入多个表达式时启用预设值。

多值参数

下表提供有关在表达式中使用多值参数的示例。

在表达式中使用多值参数

表达式可以用于提供 (Fx) 或 <表达式> 选项的报表项属性和文本框属性的任意位置。

示例 说明

=Parameters!<MultivalueParameterName>.IsMultiValue

返回 True 或 False。

检查参数是否是多值。如果是 True,则该参数是多值并且是一个对象集合。如果是 False,则该参数是单值并且是单个对象。

=Parameters!<MultivalueParameterName>.Count

返回整数值。

返回值的数目。对于单值参数,计数始终为 1。对于多值参数,计数为 0 或更多。

=Parameters!<MultivalueParameterName>.Value(0)

返回多值参数中的第一个值。

=Parameters!<MultivalueParameterName>.Value(Parameters!<MultivalueParameterName>.Count-1)

返回多值参数中的最后一个值。

=Split("Value1,Value2,Value3",",")

返回一组值。

为多值 String 参数创建一组值。可以在第二个参数中使用分隔符拆分。可以使用该表达式为多值参数设置默认值,或创建多值参数以发送至子报表或钻取报表。

=Join(Parameters!<MultivalueParameterName>.Value,", ")

返回包括多值参数中逗号分隔值列表的字符串。可以在第二个参数中使用任何分隔符进行联接。

使用多值参数来设置筛选器

使用数据集、数据区域或数据分组属性页的**“筛选器”**选项卡来设置筛选器。以下示例假定 Fields!EmployeeID.Value 和 Parameters!EmployeeID.Value 的值是相同数据类型。多值参数仅可以出现在值列中。

表达式 运算符 和/或

= Fields!<FieldName>.Value

测试集包含的运算符。唯一可以选择的是:IN

=Parameters!<MultivalueParameterName>.Value

输入多个表达式时设置的预设值。

从自定义代码中引用参数的示例

可以通过所提供的报表定义代码块中或自定义程序集中的自定义代码来引用全局参数集合。该参数集合是只读的并且没有公共迭代器。不可以使用 Visual Basic For Each 块来单步执行该集合。需要知道在报表定义中定义的参数名称后,才可以在代码中引用该参数。但是,可以遍历多值参数的所有值。有关详细信息,请参阅 在表达式中使用自定义代码引用 (Reporting Services)

说明 表达式中的引用 自定义代码定义

将整个全局参数集合传递给自定义代码。该函数会返回特定报表参数 MyParameter 的值。

=Code.DisplayAParameterValue(Parameters)

Public Function DisplayAParameterValue(

ByVal parameters as Parameters) as Object

Return parameters("MyParameter").Value

End Function

将单个参数传递给自定义代码。该示例会返回传入的参数值。如果该参数是多值参数,则返回字符串会是所有值的串联。

=Code.ShowParametersValues(Parameters!DayOfTheWeek)

Public Function ShowParameterValues(ByVal parameter as Parameter)
 as String
   Dim s as String 
   If parameter.IsMultiValue then
      s = "Multivalue: " 
      For i as integer = 0 to parameter.Count-1
         s = s + CStr(parameter.Value(i)) + " " 
      Next
   Else
      s = "Single value: " + CStr(parameter.Value)
   End If
   Return s
End Function

请参阅

任务

如何添加、编辑或删除报表参数(报表设计器)

参考

Reporting Services 中的表达式示例

概念

使用单值和多值参数

其他资源

Using Custom Assemblies with Reports
教程:将参数添加至基本表格报表
教程:使用参数的高级功能

帮助和信息

获取 SQL Server 2005 帮助