我在SSRS报告的下拉列表中看起来像apply
。
我想在其中一个文本框中仅显示100 - XYZ
。
我使用了如下所示的分割功能,
XYZ
上面的示例工作正常,但是当它转到其他情况时,它总是抛出错误。
你可以告诉我这个表达有什么不对吗?或者我的表情有什么问题?特别是它在=IIF(Parameters!Name.Value <> "",
"For Name" + Replace(Split(Parameters!Name.Value, "-").GetValue(1)," ", ""),
"For All Names")
下方显示红线,但正如我之前说的那样,它工作正常。
注意: 我最近也尝试了(1)
但没有成功。
答案 0 :(得分:1)
正如Jonnus在评论中提到的那样,
可能会显示错误,因为
expression
中的其他地方存在问题,而不仅仅是False
部分。 SSRS评估整个 执行前的表达,所以如果在任何地方都有问题 将抛出#Error
我找到了替代解决方案来实现我的预期结果。
=IIF(Parameters!Name.Label = "All",
"For All Names",
"For Name " + Replace(Right(Parameters!Name.Label,
Len(Parameters!Name.Label) - InStr(Parameters!Name.Label, "-"))," ",""))
我用Split
尝试了很多次,但我总是失败了。如果有人有想法用Split
来解决这个问题,那就太棒了。请分享您的观点。感谢Jonnus的快速回复。
答案 1 :(得分:0)
您似乎正在尝试检索原始字符串中-
之后的所有字符。如果您使用RIGHT,则不如进行SPLIT更容易理解和维护
=iif(Parameters!Name.Value <> "",
"For Name " & Right(Parameters!Name.Value,
Instr(Parameters!Name.Value, " - ") -1),
"For All Names")