多值参数和单值参数问题
报表参数是可以在表达式中引用的内置集合之一。 通过在表达式中包含参数,您可以基于用户的选择来自定义报表的数据和外观。 表达式可用于提供 (Fx) 或 <表达式> 选项的任何报表项属性或文本框属性。 表达式还可用于以其他方式控制报表的内容和外观。
在运行时比较参数值和数据集字段值时,所比较的两个项的数据类型必须相同。 报表参数可以是下列类型之一:Boolean、DateTime、Integer、Float 或 Text,它们表示基础数据类型 String。 如有必要,您可能必须转换参数值的数据类型以与数据集值相匹配。
为了在表达式中包含参数引用,必须了解如何指定正确的参数引用语法,该语法会因参数是单值参数还是多值参数而有所不同。
注意 |
在 SQL Server Data Tools 中,您可以在报表生成器和报表设计器中创建和修改报表定义 (.rdl)。每个创作环境提供了不同的方式来创建、打开和保存报表和相关项。有关详细信息,请参阅 Web 上 microsoft.com 中的“在报表设计器和报表生成器中设计报表 (SSRS)”。 |
下表显示了在表达式中包含对任何数据类型单值参数的引用时所用的语法示例。
示例 |
说明 |
=Parameters! <ParameterName>.IsMultiValue |
返回 False。 检查参数是否是多值。 如果是 True,则该参数是多值并且是一个对象集合。 如果是 False,则该参数是单值并且是单个对象。 |
=Parameters! <ParameterName>.Count |
返回整数值 1。 对于单值参数,该计数始终为 1。 |
=Parameters! <ParameterName>.Label |
返回参数标签,该参数标签通常用作可用值下拉列表中的显示名称。 |
=Parameters! <ParameterName>.Value |
返回参数值。 如果尚未设置 Label 属性,则此值会显示在可用值的下拉列表中。 |
=CStr(Parameters!<ParameterName> .Value) |
返回该参数值作为字符串。 |
=Fields(Parameters!<ParameterName>.Value).Value |
返回与参数同名的字段的值。 |
。
下表显示了在表达式中包含对任何数据类型多值参数的引用时所用的语法示例。
示例 |
说明 |
=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,", ") |
返回一个 String,它包含以逗号分隔的多值参数中的值列表。 可以在第二个参数中使用任何分隔符进行联接。 |