我有一个包含 3 个参数的报告:RaceDate
, RaceCourse
, SilksColours
. 该SilksColours
参数是可选的。
如果SilksColours
选择了该参数,我想用黄色突出显示报告中的行,而所有其他行保持白色。
这可能吗?
我有一个包含 3 个参数的报告:RaceDate
, RaceCourse
, SilksColours
. 该SilksColours
参数是可选的。
如果SilksColours
选择了该参数,我想用黄色突出显示报告中的行,而所有其他行保持白色。
这可能吗?
对于要突出显示的行中的每个 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
函数创建一个选定值的字符串列表,然后检查行值是否在该列表中的任何位置。将它们放在一起以获得以下内容:
报告将立即加载,因为参数具有默认值,没有突出显示的行:
选择一种颜色并突出显示该行:
选择多种颜色以突出显示多行:
希望这一切都是你所追求的!