-2

我有一个包含 3 个参数的报告:RaceDate, RaceCourse, SilksColours. 该SilksColours参数是可选的。

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

这可能吗?

4

1 回答 1

1

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

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

评论后编辑:

好的,正如您所指出的,这里有两个问题。

默认参数

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

在此处输入图像描述

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

在此处输入图像描述

在此处输入图像描述

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

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

突出显示行

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

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

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

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

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

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

于 2013-04-26T13:17:07.597 回答