首页 > 解决方案 > 从水晶报告翻译的 ssrs 中的上一个/下一个表达式

问题描述

我得到了这个表达:

=Switch(Fields!Kod.Value=1, "text",
Fields!Kod.Value=2, "text",
Fields!Kod.Value=3, "text",
Fields!Kod.Value=4, "text",
Previous(Fields!Kod.Value) = 4 and (Fields!Kod.Value = 5 or 
Fields!Kod.Value = 6 or fields!Kod.Value = 7 or 
fields!Kod.Value=8), "more text",
Fields!Kod.Value=5, "   text",
Fields!Kod.Value=6, "   text",
Fields!Kod.Value=7, "   text",
Fields!Kod.Value=8, "   text",
Fields!Kod.Value=9, "text")

这一行

 Previous(Fields!Kod.Value) = 4 and (Fields!Kod.Value = 5 or Fields!Kod.Value = 6 or fields!Kod.Value = 7 or fields!Kod.Value=8)

导致错误:

“范围参数必须设置为等于包含组名称、包含数据区域名称或数据集名称的字符串常量”

有问题的行是尝试翻译这个来自抑制的水晶报告公式:

if {SP;1.Kod} = 4 and 
(next({SP;1.Kod})=5 or
next({SP;1.Kod})=6 or
next({SP;1.Kod})=7 or
next({SP;1.Kod})=8
)
 then false
else true

但我在想我可以把这两个公式放在一起,得到“更多的文字”来显示如果上一个(kod = 4)和下一个(kod)= 5、6、7、8。

我怎样才能使这个表达式起作用?还是我这样做是错误的?

标签: reporting-servicescrystal-reportsssrs-2012

解决方案


您需要为上一个函数添加范围。例如,这可能只是您的数据集名称(也可以是组名等),如下所示。

PREVIOUS(Fields!Kod.Value, "dataset1")

注意:引号必需的。


推荐阅读