在SSRS中选择参数后突出显示一行

时间:2013-04-26 10:43:16

标签: reporting-services

我的报告有3个参数:RaceDateRaceCourseSilksColoursSilksColours参数是可选的。

如果选择了SilksColours参数,我想在报告中突出显示黄色的行,而所有其他行都保持白色。

这可能吗?

1 个答案:

答案 0 :(得分:1)

对于要突出显示的行中的每个TextBox,您需要将Background Color属性设置为基于表达式,并将参数值与行中的值进行比较,如:

=IIf(Fields!Colour.Value = Parameters!SilksColours.Value, "Yellow", "White")

评论后编辑:

好的,正如你所说,这里有两个问题。

默认参数

您需要具有多值参数,并且能够特别指定无值。您无法设置多值来接受NULL值,因此您需要向DataSet添加catch all值。因此,将参数基于类似于以下的值:

enter image description here

设置参数以使用此DataSet并将默认值设置为

enter image description here

enter image description here

现在我们有一个带默认值的参数,它不会突出显示任何行,因此用户可以根据需要忽略或选择值。

这里有一个小烦恼 - 用户可以选择和其他值,它们不是互斥的,但它应该足够好。

突出显示行

下一步是为所有必需的TextBox设置背景颜色值。由于可以选择多种颜色,因此我们需要将多值参数与单一参数区别对待,例如:

=IIf(InStr(Join(Parameters!Colour.Value, ","), Fields!Colour.Value) > 0
    , "Yellow"
    , "White")

所以我们需要做的是使用JOIN函数创建所选值的字符串列表,然后检查行值是否在该列表中的任何位置。把它们放在一起得到以下内容:

报告将立即加载,因为参数具有默认值,没有突出显示的行:

enter image description here

选择一种颜色并突出显示该行:

enter image description here

选择多种颜色以突出显示多行:

enter image description here

希望这一切都是你所追求的!