如何解决基于多个参数的SSRS填充颜色表示
我在SSRS报表中有一个表格,我试图根据单元格中包含的值是否落在几个用户输入的参数内来设置其中一列的填充颜色。
该报告允许用户输入最小值和最大值,但都不是必需的。
例如,用户可以输入最小值5(无最大值),最大值5(无最小值)或最小值和最大值。
输入此信息后,如果返回的值小于输入的最小值或大于输入的最大值,则需要将该输入的相应单元格的填充颜色设置为红色。
我当前使用的表达式在同时输入最小值和最大值时有效,而在仅输入最小值时无效。
这是我目前正在使用的表达方式。我感到自己正在使自己的工作变得比需要做的要艰辛,但我不确定要做什么。任何帮助,将不胜感激。谢谢。
IIF(Parameters!YSMin.Value<>"" AND Parameters!YSMax.Value <>"",IIF(Fields!Yield_Strength.Value<Parameters!YSMin.Value OR Fields!Yield_Strength.Value>Parameters!YSMax.Value,"Red","Transparent"),IIF(Parameters!YSMin.Value<>"" AND Parameters!YSMax.Value ="",IIF(Fields!Yield_Strength.Value<Parameters!YSMin.Value,"Transparent"))
解决方法
由于您的逻辑实质上返回相同的条件到let x: ListTerminatedWith<int,string> = [ 1;2;3;"6"]
或max
之下(如果可用),因此您可以在此处使用min
表达式简化条件逻辑,该表达式只需检查无论哪种情况。无需检查switch
语句中的所有各种组合。
简单地说,如果“有一个最小值并且我们在其下”或“有一个最大值并且我们在其下”是正确的,则背景为iif
,否则保持透明,因此:
Red
,
我将其重构为使用SWITCH,因为我觉得它更易于理解。
尝试一下(未试用)
=SWITCH(
NOT(IsNothing(Parameters!YSMin.Value)) AND Fields!Yield_Strength.Value < Parameters!YSMin.Value,"Red",NOT(IsNothing(Parameters!YSMax.Value)) AND Fields!Yield_Strength.Value > Parameters!YSMax.Value,True,Nothing
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。