【问题标题】:Highlighting a row once a parameter has been selected in SSRS在 SSRS 中选择参数后突出显示一行
【发布时间】:2013-04-26 10:43:16
【问题描述】:

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

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

这可能吗?

【问题讨论】:

  • 这似乎是一个基本的 SSRS 任务,但也许您的问题缺少信息?您能tell us what you've tried 并具体说明您遇到的问题吗?
  • 你所说的参数是可选的,你的意思是它接受NULL 值吗?
  • 早上好,我认为你是对的 Jereon 我已经正确地解释了自己。我有 3 个参数: Racedate - 必须选择 Racecourse - 必须选择 Silkcolours - 如果人不想选择,则不需要选择,如果没有选择(或留空),所有行都将留白,但是,如果一个人从参数下拉选项中选择一种颜色,则该颜色出现在报告中的该行将突出显示为黄色,而所有其他行将显示为白色。我希望这已经澄清了我的问题。谢谢

标签: reporting-services


【解决方案1】:

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

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

在 cmets 之后编辑:

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

默认参数

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

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

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

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

突出显示行

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

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

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

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

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

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

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

【讨论】:

  • Hi Ian =IIf(Fields!SilksName.Value = Parameters!Colours.Value(0), "Yellow", "White") 这很有效,但我需要选择0 (默认)或选择许多,但当我这样做时只显示一个突出显示的字段。第一个问题 - 如何让参数默认为 none 第二个问题 - 如何让参数在选中时显示多个突出显示的单元格?
  • 对不起,我不确定我是否完全理解...这是一个多值参数吗?在这种情况下,您必须更新表达式。对于要突出显示的每个单元格,请将 Background Color 属性设置为表达式。您能否在您的问题中添加一个简化示例以帮助展示您的要求?
  • 嗨 Ian 这些是我的参数 Racedate - 必须选择 Racecourse - 必须选择空白)所有行都将保留为白色,但是如果一个人从参数下拉选项中选择一种颜色,则该颜色出现在报告上的该行将突出显示为黄色,所有其他行将是白色的。我希望这已经澄清了我的问题。谢谢
  • 对不起,这不会改变上面的答案。我仍然不知道这是一个单值参数还是多值参数,是否允许 NULL,或者您面临的具体问题。您可以使用显示问题的屏幕截图更新您的答案吗?只需几行就足够了。请准确描述参数的工作原理、您使用的表达式、您当前看到的内容以及您期望看到的内容。不要担心任何不会影响手头问题的事情,例如。其他参数。
  • 嗨 Ian 我不知道如何将屏幕截图粘贴到本网站,但我会尝试回答您的问题:这是一个多值参数,可以选择无颜色或黑色或蓝色或红色或任何颜色的组合 这是参数的数据集 SELECT SilksImages.id,SilksImages.Silks_Skey AS [SilksImages Silks_Skey],SilksImages.filestream_data,Silks.Silks_Skey AS [Silks Silks_Skey],Silks.SilksName FROMSilks INNER JOIN SilksImages ON Silks.Silks_Skey = SilksImages.Silks_Skey
猜你喜欢
  • 2013-09-10
  • 1970-01-01
  • 2015-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-15
  • 2016-02-13
  • 1970-01-01
相关资源
最近更新 更多