我的报告有3个参数:RaceDate
,RaceCourse
,SilksColours
。 SilksColours
参数是可选的。
如果选择了SilksColours
参数,我想在报告中突出显示黄色的行,而所有其他行都保持白色。
这可能吗?
答案 0 :(得分:1)
对于要突出显示的行中的每个TextBox,您需要将Background Color属性设置为基于表达式,并将参数值与行中的值进行比较,如:
=IIf(Fields!Colour.Value = Parameters!SilksColours.Value, "Yellow", "White")
评论后编辑:
好的,正如你所说,这里有两个问题。
默认参数
您需要具有多值参数,并且能够特别指定无值。您无法设置多值来接受NULL
值,因此您需要向DataSet添加catch all值。因此,将参数基于类似于以下的值:
设置参数以使用此DataSet并将默认值设置为无:
现在我们有一个带默认值的参数,它不会突出显示任何行,因此用户可以根据需要忽略或选择值。
这里有一个小烦恼 - 用户可以选择无和其他值,它们不是互斥的,但它应该足够好。
突出显示行
下一步是为所有必需的TextBox设置背景颜色值。由于可以选择多种颜色,因此我们需要将多值参数与单一参数区别对待,例如:
=IIf(InStr(Join(Parameters!Colour.Value, ","), Fields!Colour.Value) > 0
, "Yellow"
, "White")
所以我们需要做的是使用JOIN
函数创建所选值的字符串列表,然后检查行值是否在该列表中的任何位置。把它们放在一起得到以下内容:
报告将立即加载,因为参数具有默认值,没有突出显示的行:
选择一种颜色并突出显示该行:
选择多种颜色以突出显示多行:
希望这一切都是你所追求的!