我查看了很多教程并提出了问题,并且找不到解决问题的方法。
假设我的数据集有两列:sort_order
和field_value
。 sort_order
是整数,field_value
是数字(10,2)。
我想将某些行格式化为#,#0
,将其他行格式化为#,#0.00
。
通常我会做
iif( fields!sort_order.value = 1 or fields!sort_order.value = 23 or .....
不幸的是,名单相当长。
我想做相当于if fields!sort_order.value in (1,2,21,63,78,...) then...)
正如另一篇文章所推荐的,我尝试了以下内容(如果在列表中排序,则只输出0,否则为1.这只是为了测试IN运算符的功能):
=iif( fields!sort_order.Value IN split("1,2,3,4,5,6,8,10,11,15,16,17,18,19,20,21,26,30,31,33,34,36,37,38,41,42,44,45,46,49,50,52,53,54,57,58,59,62,63,64,67,68,70,71,75,76,77,80,81,82,92,98,99,113,115,116,120,122,123,127,130,134,136,137,143,144,146,147,148,149,154,155,156,157,162,163,164,165,170,171,172,173,183,184,185,186,192,193,194,195,201,202,203,204,210,211,212,213,263",","),0,1)
但是,它看起来不像SSRS表达式编辑器想要接受“IN”运算符。这很奇怪,因为我发现解决这个问题的所有例子都使用IN运算符。
有什么建议吗?
答案 0 :(得分:0)
尝试使用IndexOf
功能:
=IIF(Array.IndexOf(split("1,2,3,4,...",","),fields!sort_order.Value)>-1,0,1)
注意所有值必须在引号内。
考虑@Jakub的推荐,我推荐这个解决方案 您正在通过SP提交报告,但您无法触摸它。
如果有帮助,请告诉我。