在SSRS表达式中使用拆分

时间:2015-12-14 09:51:47

标签: sql-server reporting-services ssrs-expression

我在SSRS报告的下拉列表中看起来像apply

我想在其中一个文本框中仅显示100 - XYZ

我使用了如下所示的分割功能,

enter image description here

XYZ

上面的示例工作正常,但是当它转到其他情况时,它总是抛出错误。

你可以告诉我这个表达有什么不对吗?或者我的表情有什么问题?特别是它在=IIF(Parameters!Name.Value <> "", "For Name" + Replace(Split(Parameters!Name.Value, "-").GetValue(1)," ", ""), "For All Names") 下方显示红线,但正如我之前说的那样,它工作正常。

注意: 我最近也尝试了(1)但没有成功。

2 个答案:

答案 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")